Está en la página 1de 7

UNIVERSIDAD NACIONAL DE TRUJILLO INGENIERA INFORMTICA

COMPUTACIN GRFICA I GUIA DE PRCTICAS


Yensi Vega Lujn yensi.vega@gmail.com INTRODUCCIN Las prcticas del curso sern desarrolladas usando Python, con el mdulo pyOpenGL, que permite usar la librera grfica libre: OpenGL en el lenguaje de programacin Python.

SESIN N 01 INTRODUCCIN A PYHTON En esta se presenta a Python como un lenguaje de programacin nuevo para los alumnos, pero no pretende ser un curso completo de Python ni de programacin, dado que se asume que el alumno tiene experiencia de programacin con al menos un lenguaje de programacin. Adems el alumno debe contar con Python 2.7 y pyOpenGL instalado. (Ver el anexo de instalacin de python y pyopengl) Ahora si, como dijo el pollo: al grano, y para ello se tomar el primer programa empleado en (Blank, 2008): 1. Primer programa en Python. Abrir IDLE (IDE por defecto de Python) o cualquier otro IDE de su preferencia y escribir el siguiente cdigo:

Figura : Primer Programa

Antes de empezar a describir lnea por lnea el cdigo de la , veamos ciertas particularidades de Python: No hay una funcin main como punto de entrada como en el lenguaje C++. Python es interpretado, y las sentencias son ejecutadas de arriba hacia abajo. Las sentencias no necesariamente terminan con un punto y coma (;) No es necesario crear una funcin para para poder usar sentencias de control, tales como for, if, else. No existen delimitadores de bloques, como las llaves en C++ y Java.

Los bloques son determinados por la identacin del cdigo, por ello es imprescindible una correcta identacin. No es necesario una declaracin de variables, ni de su tipo. Python es totalmente Orientado a Objetos, es decir que cada variable es realmente un objeto; sin embargo se puede usar como un lenguaje procedural, pero es bueno recordar que todo es un objeto (enteros, strings, flotantes, booleanos, )

Ahora si, vayamos lnea por lnea: Las lneas 1,2 indican comentarios de lnea al estilo // de C++ y Java. Y son usados como en todos los lenguajes de programacin, para crear notas al programador y que el compilador y/o intrprete ignoran. Los comentarios comienzan con el caracter #. La lnea 4, importa una librera como el #include <librara.h> o #include librera.h de C++. La sentencia import es usado para extender el lenguaje Python. Por lo general estn al inicio de un programa o mdulo (archivo py). El comando import string aade comandos para manejar cadenas, tal como la lnea 8. En Python un string es una cadena de letras o una mezcla de letras y nmeros encerrados en comillas dobles (cadena) o simples (cadena) Cuando Python encuentra la sentencia input, como en la lna 5, detiene y espera que el usuario escriba algo. Lo que el usuario escriba hasta presionar Enter, es almacenado en la variable i. El smbolo = acta como sentencia de asignacin. Adems que el texto entre comillas es mostrado en la pantalla de la consola o Shell. En lnea 6, se hace uso del bucle FOR. El bucle se repita para cada n que este en el rango 0-i. En general, un bucle for se repite las veces que la variable a iterar tenga un valor diferente en un conjunto. En este ejemplo: range(i) crea un conjunto de nmeros. Si el usuario ingres 1000 para la variable i, n recorrer de uno en uno desde 0 hasta 999. Lo que se repetir en el bucle est determinado por la identacin. En el cdigo mostrado, las lneas 7 y 8 pertenecen al FOR de la lnea 6. La sentencia de control for de Python, tiene varias variantes que se deja al alumno investigar, que adems iremos descubriendo en sesiones futuras. Notar que la sentencia for termina con dos puntos (:) La sentencia de la lnea 7 es una asignacin: x = 3*n**3. Ac tenemos un operador nuevo **, que indica potencia.

En la lnea 8, tenemos la sentencia condicional if, donde adems se hace uso de una funcin strng.find contenida en el mdulo string importado en la lnea 4. La funcin str(x) es propia de Python (no necesita import string para usarse) y convierte el objeto de su parmetro a un string. Se hace uso del operador <>, que indica que el valor resultante de la parte izquierda es diferente a la de la parte derecha. La funcin string.find devuelve el ndice dentro de la cadena generada por str(x) en que encuentra 333. Si la encuentra retorna -1. Notar que las sentencias if, tambin terminan con dos puntos (:) y que al igual que el for, es necesario identacin para saber las sentencias que forman parte del bloque. Finalmente, en la lnea 9 se hace uso de la funcin de Python print, que imprime directamente objetos (recordar que Python es O.O) cuando la sentencia de la lnea 8 es verdadera. El resultado del cdigo mostrado en , est dada por:

Figura : Resultado del primer programa

En donde se puede apreciar que los nmeros de la derecha contienen 333. 2. Funciones en Python Veamos el programa de la seccin anterior, usando funciones:

Figura : Funcin isSuper3

Al igual que en la seccin anterior, antes de detallar el cdigo de Figura : Funcin isSuper3, escribir algunas particularidades de Python respecto a funciones: No es necesario indicar de antemano que retornar la funcin. Se permite retornar ms de un valor, no necesariamente del mismo tipo, dentro de una tupla.

En la lnea 6 se define la funcin isSuper3(n) con un solo parmetro. Otra vez la identacin indica que las lneasa 7 y 8 pertenecen al bloque de la funcin isSuper3. Esta funcin retorna 2 valores en simultneo: un nmero x que es el triple del cubo de n, y un booleano que es el resultado de comparar el ndice retornado por string.find con -1. En la lnea 10 se declara otra funcin: incio. Para este ejemplo no es necesario definir esta funcin, sin embargo a modo de ejemplo me he permitido hacerlo, de manera tal que simula una funcin main de C++. Esta funcin no tiene parmetros, y dentro de su bloque no existe la sentencia return, aunque podra existir sin nada a la derecha en la lnea 17 a la altura del bloque for. La sentencia return al igual que en C++ permite terminar la ejecucin de una funcin, devolviendo el control a quien la haya invocado. En la lnea 13 se muestra una llamada a una funcin que devuelve una tupla. (x, esSuper3) es una tupla con las variables que recibirn los resultados de isSuper3(n). Sin embargo, las variables en Python pueden ser tuplas, por lo que reemplazando las lneas 13 por x =isSuper3(n) y la

14 por if x[1]: (en donde se accede al segundo elemento de la tupla x) tendremos un resultado ligeramente distinto al de Figura : Resultado del primer programa. Que se muestra en la siguiente figura:

Figura : Resultados como tuplas

Finalmente, en la lnea 17 se hace llamado a la funcin inicio, que acta como punto de entrada (funcin main en C++). 3. Ejercicios de clase: a. Modificar el programa para que muestre los nmeros Super 4 (buscar la ocurrencia de 4444 y de Super 5 (ocurrencia de 55555). b. Crear una funcin para hallar las races reales de una ecuacin de segundo grado ax^2 + bx + c. Si no tuviese races reales, retornar False. 4. Ejercicios para casa: c. Modificar el programa de Figura : Funcin isSuper3, para un Super5, que en lugar de usar for, use while. d. Crear una funcin para que ordene un arreglo de n elementos.

ANEXOS A. Instalacin de Python y pyOpenGL

Bibliografa
Stan Blank, P. (2008). Python Programming in OpenGL. Wayne City, Illinois.

También podría gustarte