User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/2013-i/actividad_4.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
teaching:ie0117:2013-i:actividad_4

This is an old revision of the document!


Actividad 5. Python, objectos, matrices, gráficos, acceso a mouse.

En esta actividad se practicarán conceptos asociados a programación en python.

Preguntas de la actividad

  • Qué es un paradigma de programación y cómo me afecta a la hora de programar?
  • Qué es un lenguaje de programación?
  • Qué es un lenguaje interpretado? Compilado?
  • Cómo programo de forma básica con python?
  • Qué es un objeto?
  • Cómo programo en Python usando objetos?
  • Qué es una estructura de datos?
  • Qué estructura de datos debo usar para mi aplicación?
  • Qué es sobrecarga de operadores? Y cómo lo uso en python?
  • Herencia?
  • Cómo programo una aplicación gráfica?
  • Cómo interactuo con el mouse y el teclado?

Temas tentativos a cubrir

  • ipython
  • for, enumerate, zip
  • list comprenhesions
    • xrange
    • map
    • reduce
  • lambda
  • functions
  • lists
  • ints
  • strings
  • floats
  • dicts
  • while
    • break, continue
  • pass
  • tuples
  • sets
  • immutable
  • First program
    • Accepting arguments: sys.argv, optparse
  • input, output, open, pickle
  • exceptions
  • classes
  • Numpy
  • Objetos
  • Clases
  • Sobrecarga de operadores
  • Referencias
  • Documentación en el código
  • self: objetos en C
  • python QT
  • pygame

Instrucciones

  • Escriba el siguiente programa y nombre el archivo matrix.py:
#!/usr/bin/env python

class Matrix(object):
    def __init__(self, data, shape):
        print "Initializing object"
        self.data=data
        self.shape=shape

    def imprimir(self):
        for i in xrange(self.shape[0]):
            print self.data[self.shape[1]*i:self.shape[1]*(i+1)]
        print "good bye"

    def add(self, o_matrix):
        result=Matrix(self.data, self.shape)
        for i in xrange(self.shape[0]):
            for j in xrange(self.shape[1]):
                result.data[i*result.shape[1]+j]=self.data[i*self.shape[1]+j]+o_matrix.data[i*o_matrix.shape[1]+j]
        return(result)

    def __len__(self):
        return(self.shape[0]*self.shape[1])

def main():
    data=[1,2,3,4,5,6,7,8,9,10,11,12]
    shape=(4,3)
    matrix1=Matrix(data, shape)
    matrix1.imprimir()
    data2=[1]*shape[0]*shape[1]
    data2=range(12)
    data2.reverse()
    matrix2=Matrix(data2, shape)
    matrix2.imprimir()
    matrix3=matrix1.add(matrix2)
    matrix3.imprimir()
    print len(matrix3)

if __name__=="__main__":
    main()
  • Ejecútelo.
  • Ahora sobrecarge el método “add” para poder usar el símbolo “+”
  • Siga las instrucciones del profesor para agregar una excepción.
  • Agregue el método de multiplicación matricial (dot product).
  • Sobrecarge el método de multiplicación matricial para usar el símbolo “*”.

Python QT

sudo apt-get install libqt4-dev   qt4-dev-tools python-qt4-dev pyqt4-dev-tools libtclap-dev
import sys
from PyQt4 import QtGui,QtCore
app=QtGui.QApplication(sys.argv)
main_widget=QtGui.QWidget()
button=QtGui.QPushButton("test", main_widget)
main_widget.show()
main_widget.setWindowTitle("test application")
def testprint():
   print "Works"
QtCore.QObject.connect(button,QtCore.SIGNAL("clicked()"),testprint)
sys.exit(app.exec_())

Simulador de fuerzas

  • Usando QT, yarp y pygame construya un programa que obtiene la información del mouse (usando pygame), la transmite con yarp y es recibida en otro módulo de yarp que la despliega gráficamente en forma de barras.

Evaluación

Se evaluará el visualizador de posición de mouse, con tres grados de libertad (DOFs), usando los movimientos en x, y y “scroll” del mouse (3 ejes, o 3D).

~~DISCUSSION~~

teaching/ie0117/2013-i/actividad_4.1456507779.txt.gz · Last modified: 2022/09/20 00:08 (external edit)