Sei sulla pagina 1di 374

UNIVERSIDAD TCNICA DE MACHALA FACULTAD DE INGENIERA CIVIL ESCUELA DE INFORMTICA

CARRERA DE INGENIERA EN SISTEMAS PORTAFOLIO DE:

PROGRAMACIN III
CURSO SEPTIMO SEMESTRE A (10ma. PROMOCIN) ALUMNO

AREVALO VILLATA DANIEL STALIN


DOCENTE

ING. MARIUXI PAOLA ZEA ORDOEZ, MG. SC.


PERODO DEL 7 DE JUNIO AL 30 DE AGOSTO DEL 2013 TIEMPO 4 HORAS EN DOS JORNADAS DE 2 HORAS

2013 - 2014

MACHALA EL ORO ECUADOR

NTRODUCCIN

La creacin de este portafolio tiene como objetivo recopilar las clases impartidas por el docente, las tareas realizadas, la exposicin de los avances y logros en el desarrollo del mdulo de "Programacin III", la retroalimentacin recibida durante el proceso, as como la revelacin de los aprendizajes obtenidos y los desaciertos que producen experiencia y nuevos conocimientos acerca de programar con herramientas como son Python, IronPython y Shardevelop. las siguientes

A continuacin se detallan ms ampliamente cada uno de los trabajos expuestos en el mdulo de Programacin III, se expresan los comandos y procedimientos elaborados para resolver cada uno de los ejercicios planteados con el lenguaje de programacin Python.

Contenido
SYLLABUS DE LA ASIGNATURA .................................................................................................................8 UNIVERSIDAD TCNICA DE MACHALA ..................................................................................................25 Visin: .....................................................................................................................................................25 FACULTAD DE INGENIERA CIVIL ............................................................................................................25 Misin: ....................................................................................................................................................25 Visin: .....................................................................................................................................................25 ESCUELA DE INFORMTICA ....................................................................................................................26 Misin: ....................................................................................................................................................26 Visin: .....................................................................................................................................................26 DIARIO METACOGNITIVO .......................................................................................................................27 UNIDAD I: INTRODUCCIN A LA PROGRAMACIN PYTHON .................................................................28 Desarrollar de acuerdo a lo que se vio en clase ...............................................................................29 1.1. Diagnstico ..................................................................................................................................29 INTRODUCCIN A PYTHON ....................................................................................................................35 INTRODUCCIN A IRONPYTHON STUDIO...........................................................................................40 1.5 ELEMENTOS DE IRONPYTHON ......................................................................................................52 1.6 LA CONSOLA DE IRONPYHTON .....................................................................................................54 Principios de programacin Consola de IronPython Studio ............................................................56 1.7. Tipos de Datos .............................................................................................................................58 1.8. Referencia de objetos .................................................................................................................58 Datos interesantes discutidos: ...............................................................................................................58 Descriptores analizados .........................................................................................................................58 Actividades durante la clase ...................................................................................................................58 1.7 TIPOS DE DATOS .......................................................................................................................59 ASIGNACIN MULTIPLE DE VARIABLES ..................................................................................................60 1.8 REFERENCIAS DE OBJETOS. ..............................................................................................................60 UNIDAD II: Elementos principales de Python.........................................................................................65 UNIDAD III: Tipos de Datos .....................................................................................................................68 1.9 Coleccin de Tipo de Datos. .........................................................................................................69 2.1 Operaciones Lgicas. ....................................................................................................................72 Operaciones lgicos ...........................................................................................................................74 o o El operador de identidad. .......................................................................................................75 El Operador de pertenencia. ..................................................................................................75 3

OPERACIONES LGICAS. ....................................................................................................................75 Los operadores lgicos sirven para agrupar elementos y usarlos en condicionales. ....................75 El operador de identidad. ..............................................................................................................75 Operadores de comparacin. ........................................................................................................75 El Operador de pertenencia. .........................................................................................................77 Operadores Lgicos. ......................................................................................................................77 ............................................................................................................................................................78 ............................................................................................................................................................78 SENTENCIA DE FLUJOS DE CONTROL..............................................................................................78 UNIDAD IV: Estructuras de control y funciones .....................................................................................81 OPERADORES ARITMTICOS: .............................................................................................................82 Operadores aritmticos .................................................................................................................83 Operadores de comparacin .........................................................................................................83 Operadores de Asignacin ............................................................................................................84 Resumen de la clase: .........................................................................................................................84 Operadores aritmticos.....................................................................................................................84 Entrada/Salida. ..................................................................................................................................91 Elemento 7. Entrada / Salida .............................................................................................................93 Actividades durante la clase..................................................................................................................93 Descriptores analizados.........................................................................................................................93 2.5. Funciones de creacin y llamadas ...................................................................................................96 Funciones de creacin y llamada. ..................................................................................................96 UNIDAD V: Tipos de Datos .....................................................................................................................98 2.6. Identificadores y palabras claves ....................................................................................................99 Tipos Integrales ................................................................................................................................103 Tipos Enteros ....................................................................................................................................103 Tipos Booleanos ...............................................................................................................................103 Tipos Integrales. ...................................................................................................................................104 Nmeros .......................................................................................................................................105 NUMEROS DE PUNTO FLOTANTE .........................................................................................................109 Tipos de punto flotante ....................................................................................................................111 NUMEROS DE PUNTO FLOTANTE ....................................................................................................113 2.9. Cadenas .....................................................................................................................................115 2.10. Ejemplos ..................................................................................................................................115 4

2.11. Ejercicios Propuestos ..............................................................................................................115 2.9. Cadenas .....................................................................................................................................117 2.10. Ejemplos..................................................................................................................................117 2.11. Ejercicios Propuestos...........................................................................................................120 Diccionarios......................................................................................................................................127 Colecciones de tipos de datos 2.16. Ejemplos 2.17. Ejercicio .........................................................128 UNIDAD VI: Estructuras de control y funciones ...................................................................................134 Estructuras de control y funciones ...................................................................................................135 Manejo de Excepciones ....................................................................................................................140 2.19 2.20 Manejo bsico de excepciones........................................................................................141 Funciones diseadas .....................................................................................................144

UNIDAD VII: Programacin de Base de Datos ......................................................................................146 Descriptores analizados ...................................................................................................................147 Resumen conceptual de lo que se vio, incluyendo imgenes, etc. ..................................................148 Desarrollar de acuerdo a lo que se vio en clase ...................................................................................149 Contenidos: ......................................................................................................................................149 Base de datos, MySQL server, SQL server y Pg-Admin lll Postgres, conexin, lenguajes de programacin, cdigo. .....................................................................................................................150 Resumen conceptual de lo que se vio, incluyendo imgenes, etc. ..................................................150 Clasificacin de las Base de Datos ........................................................................................................150 Conexin a base de datos mediante sql server ............................................................................150 Conexin a base de datos mediante mysql ..................................................................................150 Conexin a base de datos mediante pgadmin lll - postgresql......................................................150

Descripcin de cada BD ........................................................................................................................150 CONEXIN A BASE DE DATOS MEDIANTE SQL SERVER ........................................................................150 CONEXIN A BASE DE DATOS MEDIANTE MYSQL................................................................................151 CONEXIN A BASE DE DATOS MEDIANTE PGADMIN LLL - POSTGRESQL.............................................152 Tipos de conexiones .............................................................................................................................153 Desarrollar de acuerdo a lo que se vio en clase ...................................................................................154 Contenidos: ......................................................................................................................................154 Objetivos de desempeo: ................................................................................................................154 Competencia General:......................................................................................................................154 Datos interesantes discutidos: .........................................................................................................154 Descriptores analizados ...................................................................................................................155 5

Lista de instaladores que debemos utilizar ......................................................................................155 Creacin de la Base de Datos pata SQL Server 2008........................................................................155 Conexin a base de datos SqlServer mediante consola ...................................................................157 Conexin a Base de Datos SqlServer mediante Formularios ...........................................................162 CONEXIN A BASE DE DATOS MEDIANTE MYSQL................................................................................167 Lista de Instaladores que deberemos Instalar ..................................................................................167 Creacin de la Base de datos para MySQL .......................................................................................168 Conexin a base de datos MySQL mediante Consola ......................................................................170 Conexin a base de datos MySQL mediante Formulario .................................................................175 Conexin a base de datos mediante pgAdmin lll - PostgreSQL ...........................................................179 Instalacin de PostgreSQL: ...............................................................................................................180 Creamos una base de datos de pgAdmin ll-Postgre: ........................................................................188 Conexin a base de datos PostgreSQL mediante consola ...............................................................189 Conexin a Base de Datos PostgresSQL mediante Formularios ......................................................196 UNIDAD VIII: Introduccin a la programacin GUI...............................................................................204 Introduccin a la programacin GUI ................................................................................................205 Para crear un formulario MDI primario en tiempo de diseo ...................................................230 UNIDAD IX: Manejo de Eventos ...........................................................................................................234 CLASES Y MTODOS .............................................................................................................................261 CLASE: ...............................................................................................................................................261 Inicializacin de una clase: ...........................................................................................................262 Para inicializar una clase se usa el mtodo especial __init__. .....................................................262 Instanciando una clase: ................................................................................................................262 Atributos:......................................................................................................................................262 Referenciar un Atributo de Dato: .................................................................................................262 MTODOS .........................................................................................................................................262 Mtodo __init__: ..........................................................................................................................263 Ejemplo:............................................................................................................................................263 HERENCIA SIMPLE Y MULTIPLE EN PYTHON ....................................................................................266 Herencia Simple: ..........................................................................................................................266 Herencia Mltiple: ........................................................................................................................268 ENCAPSULAMIENTO .........................................................................................................................269 POLIMORFISMO ...............................................................................................................................270 Manejo de Eventos...........................................................................................................................273 6

CREACIN DE ENTORNO ..................................................................................................................274 Manual de Mtodos de Programacin.............................................................................................276 ACTIVIDADES DE APRENDIZAJE INTRA Y EXTRA CLASE ........................................................................294 Framework ...........................................................................................................................300 SharpDevelop .......................................................................................................................300

RESUMEN: ............................................................................................................................................323 ENSAYO ACERCA DE LAS DIFERENCIAS ENTRE PYTHON CON OTROS LENGUAJES CONOCIDOS. .........324 EVALUACIONES PARCIALES ..................................................................................................................353 PROYECTO FINAL ..................................................................................................................................355 INTRODUCCIN ....................................................................................................................................357 1. ESTUDIO PRELIMINAR ......................................................................................................................358 1.1. Propsito ...................................................................................................................................358 1.2. Datos de la empresa ..................................................................................................................359 1.3. Cometido de la empresa ...........................................................................................................359 1.4. Organigrama estructural ...........................................................................................................360 1.5. Croquis.......................................................................................................................................360 2. ORGANIZACIN DEL EQUIPO DE TRABAJO ..................................................................................361 2.1. Estructura del equipo ...........................................................................................................361

..............................................................................................................................................................361 2.2. Roles y Responsabilidades....................................................................................................361

Anexo. 1................................................................................................................................................362 Anexo. 2................................................................................................................................................362 3. SISTEMA SISCHACAGUASAY ......................................................................................................364 3.1 3.2. 3.3. Identificacin Y Priorizacin De Problemas /Oportunidades ...............................................364 Clasificacin de problemas por Proceso...............................................................................365 mbito del Sistema ..............................................................................................................365

DESCRIPCIN DEL SISTEMA ..................................................................................................................369 FUNCIONES GENERALES ...................................................................................................................369 GESTIONES PRINCIPALES ..................................................................................................................369 CARACTERSTICAS TECNICAS ................................................................................................................370 REQUERIMIENTOS MNIMOS DEL SITIO ...........................................................................................370 REQUERIMIENTOS DEL SISTEMA PARA UN PTIMO RENDIMIENTO ...............................................370 DESARROLLADORES DEL SOFTWARE ...................................................................................................370

SYLLABUS DE LA ASIGNATURA

UNIVERSIDAD TCNICA DE MACHALA


FACULTAD DE INGENIERA CIVIL CARRERA DE INGENIERA DE SISTEMAS

SYLLABUS ESTANDARIZADO
1.- DATOS GENERALES
Asignatura: PROGRAMACIN III Eje Curricular de la Asignatura: PROFESIONAL Horas presenciales teora: 1 horas de clases tericas por semana / 40 horas Semestrales. Horas presenciales prctica: 4 horas de clase presenciales en laboratorios o en el campo por semanas / 40 horas Semestrales. Horas atencin a estudiantes: Horas trabajo autnomo: 5 horas semanales / 80 horas semestrales Fecha de Inicio: 6/Mayo/2013 Prerrequisitos: IS602 Programacin II Correquisitos: Fecha de Finalizacin: 28/Septiembre/2013 Nmero de crditos: 5 (CINCO) Cdigo de la Asignatura: IS702 Ao: 2013 - 2014 Ciclo/Nivel: 7mo. Semestre

2.- JUSTIFICACION DE LA ASIGNATURA Programacin III es una asignatura de aplicacin prctica y tcnica perteneciente al eje profesional de los Ingenieros de Sistemas, que sirve para la construccin de sistemas informticos que permitan resolver las necesidades o requerimientos de empresas e instituciones comerciales pblicas o privadas; por lo que est orientada para que el

estudiante sea capaz de desarrollar sistemas informticos tomando en cuenta los avances tecnolgicos de la era moderna, de acuerdo a las necesidades de la empresa y los usuarios mediante el lenguaje de programacin Python 3.- OPERACIONALIZACION DE LA ASIGNATURA CON RESPECTO A LAS COMPETENCIAS DEL PERFIL PROFESIONAL 3.1 Objeto de estudio de la asignatura El Objeto de estudio de la asignatura es: programacin en lenguaje Python. 3.2 Competencia de la asignatura Analizar, Disear e implementar Sistemas de Informacin. 3.3 Relacin de la asignatura con los resultados de aprendizaje
CONTRIBUCIN (alta, media, baja)

RESULTADOS DEL APRENDIZAJE

EL ESTUDIANTE DEBE:

a) Habilidad

para

aplicar

el BAJA

Aplicar procedimientos y leyes de la lgica matemtica para la implementacin de cdigo de programacin para la eficiencia y la efectividad de soluciones informticas.

conocimiento de las Ciencias Bsicas de la profesin b) Pericia para disear y

Levantar e interpretar datos de los procesos de negocio, a travs de encuestas, entrevistas y observacin, para el BAJA modelamiento y diseo de la aplicacin, as como su verificacin mediante pruebas de unidad. Disear componentes de cdigo reutilizables, para su ALTA implementacin entre diferentes proyectos de desarrollo de software aplicables en distintos contextos de negocio. MEDIA Integrar y colaborar en el desarrollo del proyecto de aplicacin final donde se analizar problemtica de diferente

conducir experimentos, as como para analizar e

interpretar datos. c) Destreza para el manejar procesos de Ingeniera de Sistemas d) Trabajo multidisciplinario.

10

ndole: financiera, comercial, mdica, educativa, entre otras.

e) Resuelve

problemas

de

Identificar problemas informticos generales que involucren ALTA parmetros comunes y determinen subrutinas reutilizables.

Ingeniera de Sistemas.

Asumir la participacin en las actividades con f) Comprensin responsabilidades profesionales y ticas de sus MEDIA responsabilidad. Demostrar su participacin e innovacin de nicamente los involucrados y entregarlo a tiempo Utilizar un lenguaje simplificado, ordenado y estructurado para explicar la factibilidad y las ventajas del producto que g) Comunicacin efectiva ALTA han desarrollado. Desarrollar manuales de usuario claros y didcticos, de tal manera que las dudas del usuario se puedan resolver fcilmente. h) Impacto en la profesin y en el contexto social i) Aprendizaje para la vida BAJA Practicar la investigacin para comprender la necesidad de seguir capacitndose continuamente. Analizar problemas de actualidad y ms comunes del j) Asuntos contemporneos BAJA negocio, que se resuelvan con soluciones informticas de escritorio. Conocer nuevas metodologas y tcnicas de programacin k) Utilizacin de tcnicas e BAJA que simplifiquen procesos de extraccin y transformacin de datos Dirigir grupos de trabajo, liderando su rea de mayor BAJA competencia con empata. instrumentos modernos l) Capacidad gestionar proyectos para o liderar, ----------

emprender

3.4 Proyecto o producto de la asignatura: Los estudiantes elaborarn un trabajo o proyecto de aplicacin de la asignatura en el desarrollo de software de escritorio para una empresa de la localidad. El proyecto de investigacin estar orientado hacia la utilizacin de las tcnicas de programacin en la resolucin de problemas, que brinde seguridad, acceso y navegacin, utilizando el lenguaje de programacin Python. 4.- PROGRAMA DE ACTIVIDADES:
11

4.1 Estructura de la asignatura por unidades:


UNIDAD I. INTRODUCCIN A LA PROGRAMACIN PYTHON COMPETENCIAS 1.- Identificar los objetivos del lenguaje Python 2.- Identificar los elementos principales de Python 3.- Navega y utiliza la ayuda. 3.- Identificar los componentes del IDE de Python II. INTRODUCCIN A LA PROGRAMACIN POR PROCEDIMIENTOS 1.- Identificar las normas que controlan la codificacin Python 2.- Manejar los tipos de datos y las colecciones de datos. 3.- Analizar las estructuras de control y la forma de producir excepciones. 4.- Crear excepciones II. INTERFACE GRFICA 1.- Conectar una Base de Datos con el lenguaje de programacin C#. 2.- Crea interfaces grficas amigables y 2.- Gestionar la informacin de la Base de Datos. 3.3.- Manejar controles que se pueden utilizar para que la interfaz grfica sea amigable. 4.- Aplicar y emplear el lenguaje Python para el desarrollo, y Programa mtodos que muestren caractersticas de bajo acoplamiento y alta cohesin. 4.- Construye mdulos que valida el ingreso de datos para la integridad de la informacin. flexibles. 1.- Escribe programas que se conectan a una base de datos y muestren la informacin. 1.- Escribe el cdigo de acuerdo a las normas de Python. 2.- Utiliza los tipos y las colecciones de datos en la creacin de programas. 3.- Escribe programas utilizando las respectivas estructuras de control y controlando los errores que se pueden producir. de programacin RESULTADOS DE APRENDIZAJE 1.- Describe conceptos y terminologa sobre el lenguaje de programacin. 2.- Reconoce los componentes del IDE de Python.

implementacin

mantenimiento de los sistemas.

12

4.2 Estructura detallada por temas:

UNIDAD I: INTRODUCCIN A LA PROGRAMACIN PYTHON


SEMANAS DE ESTUDIO

TEMAS

CONTENIDOS

ESTRATEGIAS DE APRENDIZAJE

HORAS

1.06/05/13 11/05/13

Principios programacin

de

1.1. Diagnstico 1.2. Historia, Presentacin Python 1.3. Introduccin a de

Elaboracin del objetivo personal para el mdulo. Lectura: El camino del programa. Pg 1 9, tomado del libro: Aprenda a Pensar como un Programador con Python. Downey, A.; Elkner, J.; Meyers C. (ThinkCSpy.pdf) Elaboracin de lnea de tiempo sobre evolucin de Python. Cuadro comparativo de los lenguajes de programacin: Python, Pearl, Java, C, C++ Cuadro de diferencias entre Python, C#, Visual Basic.NET

IronPython Studio. 1.4. Instalacin de

IronPython Studio

2.13/05/13 18/05/13

Crear y ejecutar programas Ironpython en

1.5. Elementos

de

Investigaciones para temas. Prctica de laboratorio. Lectura:

profundizar los

IronPython Studio 1.6. La Consola de

IronPython. 1.7. Tipos de Datos Trminos definiciones. y 1.8. Referencia objetos 1.9. Coleccin de tipos de datos de

Elaboracin de un ensayo sobre las Diferencia de Python con otros lenguajes conocidos como Java, C#. Elaboracin de cuadro sinptico acerca de las caractersticas que tendr un sistema (aplicacin informtica)

desarrollada en Python.

13

TOTAL DE HORAS DE UNIDAD I

10

UNIDAD II: INTRODUCCIN A LA PROGRAMACIN POR PROCEDIMIENTOS


SEMANAS DE ESTUDIO

TEMAS

CONTENIDOS

ESTRATEGIAS DE APRENDIZAJE

HORAS

3.20/05/13 25/05/13

Elementos principales de Python

2.1. Operaciones lgicas 2.2. Sentencia de flujos de Control 2.3. Operadores aritmticos

Investigaciones para temas. Prctica de laboratorio Ejercicios propuestos

profundizar los

4.- 27/05/13 01/06/13

Elementos principales Python de

2.4. Entrada/Salida 2.5. Funciones creacin llamadas 2.6. Identificadores y de y

Investigaciones para temas. Prctica de laboratorio Ejercicios propuestos

profundizar los

Tipos de Datos

palabras claves 2.7. Tipos Integrales

5.- 03/06/13 08/06/12

Tipos de Datos

2.8. Tipos

de

punto

Investigaciones temas.

para

profundizar

los

flotante 2.9. Cadenas 2.10. 2.11. Ejemplos Ejercicios

Prctica de laboratorio Ejercicios propuestos

Propuestos 6.- 10/06/13 15/06/13 Colecciones tipos de datos de 2.12. Tipos de Investigaciones temas. de Prctica de laboratorio de Ejercicios propuestos para profundizar los 5

Secuencia 2.13. Tipos

Conjuntos 2.14. Tipos

agrupacin

7.- 17/06/13 22/06/13

Colecciones tipos de datos

de

2.15.

Circular

Investigaciones temas.

para

profundizar

los

copiar colecciones 2.16. Ejemplos

14

2.17.

Ejercicio

Prctica de laboratorio Ejercicios propuestos

8.- 24/06/13 29/06/13

Estructuras control funciones

de y

2.18.

Estructuras de

Investigaciones temas.

para

profundizar

los

control 2.19. Manejo de

excepciones 2.20. Funciones

Prctica de laboratorio Ejercicios propuestos

Diseadas 01/07/13 06/07/13 TOTAL DE HORAS DE UNIDAD II 30 EXAMEN HEMISEMESTRE

UNIDAD III: INTERFACE GRFICA


SEMANAS DE ESTUDIO

TEMAS

CONTENIDOS

ESTRATEGIAS DE APRENDIZAJE

HORAS

9.- 08/07/13 13/07/13

Programacin de Datos Base de

3.1. Base de datos DBM 3.2. Base de datos SQL

Investigaciones temas.

para

profundizar

los

Prctica de Laboratorio. Taller - Caso de Estudio 10.15/07/13 20/07/13 Introduccin a la programacin GUI 3.3. Programas con Investigaciones temas. Prctica de Laboratorio. Resolucin de caso de Estudio. para profundizar los 5

estilo de cuadro de dilogo 3.4. Programas con

estilo de ventana de Windows 11.22/07/13 27/07/13 Programacin GUI 3.5. Principales controles

Investigaciones temas.

para

profundizar

los

Prctica de Laboratorio.

15

12.29/07/13 03/08/13

Programacin GUI

3.6. Principales controles 3.7. Propiedades

Investigaciones temas.

para

profundizar

los

Prctica de Laboratorio. 13.05/08/13 10/08/13 Manejo Eventos de 3.8. Clases y mtodos 3.9. Programacin mtodos de Investigaciones temas. Prctica de Laboratorio. Prctica de Laboratorio 5 para profundizar los 5

14.12/08/13 17/08/13 15.19/08/13 24/08/13 16.26/08/13 31/08/13

Proyecto

4.8. Desarrollo de un proyecto dirigido

Proyecto

4.8. Desarrollo de un proyecto dirigido

Prctica de Laboratorio

Proyecto

4.8.

Defensa

de

Presentacin de un informe tcnico escrito y presentacin oral sobre las bondades y caractersticas de la solucin desarrollada seleccionada. para la institucin

Proyectos

02/09/13 07/09/13 09/09/13 14/09/13 16/09/13 21/09/13

RECUPERACIN

DE

CLASES

PREPARACIN DE EXAMENES FINALES EXAMEN FIN DE SEMESTRE

EXAMEN

DE

SUSPENSO

MEJORAMIENTO TOTAL DE HORAS DE UNIDAD IV 40

5.- METODOLOGIA: (ENFOQUE METODOLOGICO)

5.1. Mtodos de enseanza De acuerdo a la temtica propuesta, las clases y las actividades sern:
16

a) Clases magistrales, donde se expondrn los temas de manera terica, mostrando y analizando ejemplos. b) Trabajo en grupo, para elaborar los elementos de la literatura cientfica (fichas, citas y referencias bibliogrficas), como recurso operativo para elaborar el documento cientfico. c) Trabajo autnomo u horas no presenciales, que ser el material bsico para estructurar la carpeta del estudiante (o cuaderno) al que se agregar el trabajo en grupo: 1. Tareas estudiantiles, los trabajos bibliogrficos semanales de tipo individual, adems de resmenes, mapas conceptuales, mapas mentales, cuadros sinpticos, lneas de tiempo, ensayos, entre otros. 2. Investigaciones bibliogrficas, individuales o por grupos sobre profundizacin de temas a tratarse. 3. Trabajos de campo, realizados individual o grupalmente, donde realizan investigacin, recopilacin de datos acerca de los procesos y datos de la empresa para estructurar esquemas de base de datos.

d) Formas organizativas de las clases, los alumnos asistirn a clase con el material gua (libro) adelantando la lectura del tema de clase de acuerdo a la instruccin previa del docente, sobre los puntos sobresalientes o trascendentales que se van a exponer. De estos anlisis saldrn los trabajos bibliogrficos que debern desarrollar y entregar posteriormente. e) Medios tecnolgicos que se utilizaran para la enseanza:

Pizarrn para tiza lquida y marcadores de varios colores. Libros y revistas de la biblioteca. Internet y material de Webs. Equipo de proyeccin multimedia y material acadmico en Power Point. Aplicaciones para elaborar diagramas (Visio) y diseo de interface (Paint, Adobe, entre otros)
17

Aula Virtual

6.- COMPONENTE INVESTIGATIVO DE LA ASIGNATURA: Los tipos de investigacin que se realizar en la asignatura son: Investigacin Formativa.- Referida al aprendizaje por descubrimiento y construccin del conocimiento por parte de los estudiantes. Este mtodo consiste en que el profesor a partir de una situacin problmica, logra que el estudiante busque, indague, y encuentre situaciones similares, as mismo que haga revisiones de literatura, (bibliografa, cdigos y especificaciones) recoja datos, los organice, interprete y encuentre soluciones a las dificultades planteadas por los profesores. 7. PORTAFOLIO DE LA ASIGNATURA Durante el desarrollo de la actividad acadmica el estudiante construir un Portafolio que comprende la evidencia de dichas actividades. El portafolio de la asignatura contendr la siguiente informacin: Cartula Syllabus Tareas en clase Tareas extraclase Evaluaciones parciales de cada unidad Evaluacin final Evidencia de eventos investigativos (Informe Proyecto Final de la asignatura). Apuntes relevantes (Resumen de las clases)

8. EVALUACIN La evaluacin ser diagnstica, formativa y sumativa, considerndolas necesarias y complementarias para una valoracin global y objetiva de lo que ocurre en la situacin de enseanza y aprendizaje. Los alumnos sern evaluados con los siguientes parmetros, considerando que la calificacin de los exmenes finales de cada parcial correspondern al
18

30% de la valoracin total, el restante 70% se lo debe distribuir de acuerdo a los dems parmetros, utilizando un mnimo de cinco parmetros. 8.1 Evaluaciones Parciales: Pruebas parciales dentro del proceso, determinadas con antelacin en las clases. Presentacin de informes escritos como producto de investigaciones bibliogrficas. Participacin en clases a partir del trabajo autnomo del estudiante; y, participacin en prcticas de laboratorio y de campo de acuerdo a la pertinencia en la asignatura. 8.2 Exmenes: Examen Final, al finalizar todas las unidades, en la semana No. 17, los estudiantes rendirn un examen final. 8.3 Parmetros de Evaluacin:
PORCENTAJES PARAMETROS DE EVALUACION
1er. PARCIAL

Pruebas parciales dentro del proceso Presentacin de informes escritos Investigaciones bibliogrficas Participacin en clase Trabajo autnomo Prcticas de laboratorio Prcticas de campo Exmenes Finales Total

20 10 10 10 10 10 30 100

19

9. BIBLIOGRAFA 9.1. Bibliografa Bsica: SUMMERFIELD, M. 2010. Programacin Python 3. Primera edicin. Editorial Anaya Multimedia. Espaa.

9.2. Bibliografa Complementara: ZEA, M. 2013. Gua del mdulo de Programacin III. Universidad Tcnica de Machala. Ecuador. MUELLER, J. 2010. Professional IronPython, Design and Develop IronPython Techniques. Wiley Publishing. Indianapolis. Estados Unidos.

9.3. Pginas WEB (webgrafa) http://pythonya.appspot.com/ http://mundogeek.net/tutorial-python/ http://sourceforge.net/projects/pywin32/files/pywin32/Build%20200/ http://pytools.codeplex.com http://ironpython.codeplex.com http://ironpython.net/browser/ http://www.youtube.com/watch?v=CjmzDHMHxwU http://docs.python.org.ar/tutorial/interpreter.html http://razonartificial.com/2010/07/juego-serpiente-paso-a-paso-parte-1/ http://python.org.ar/pyar/AprendiendoPython http://www.maestrosdelweb.com/editorial/guia-python/

10. DATOS DEL DOCENTE:

20

Mariuxi Paola Zea Ordoez Master en Educacin Superior, Ingeniero en Computacin y Ciencias de la Informtica Direccin: Calle San Martn # 4-14 entre Coln e Independencia, Pasaje Telfonos: 07-2915426, 07-2912042, 099-8228455, 0939036346. Correo electrnico: mpzea@yahoo.com, mpzea@hotmail.com 11. FIRMA DEL O LOS DOCENTES RESPONSABLES DE LA ELABORACIN DEL SYLLABUS _______________________ Mariuxi Paola Zea Ordoez 12. FECHA DE PRESENTACION: Machala, Mayo del 2013

21

UNIVERSIDAD TCNICA DE MACHALA


FACULTAD DE INGENIERA CIVIL
ESCUELA DE INFORMTICA
Carrera de Ingeniera de Sistemas

AUTORRETRATO

Mis nombres completos son Daniel Stalin Arvalo Villalta, nac el 11 de febrero de 1990 (23 aos), en la ciudad de Huaquillas. Soy estudiante de la Universidad Tcnica de Machala, Facultad de Ingeniera Civil de la Escuela de Informtica. Actualmente curso el Sptimo Semestre Paralelo A. Soy una persona responsable que me gusta cumplir con todos los trabajos enviados. Me gusta trabajar en grupo pero siempre y cuando todos los integrantes sean responsables. Como parte del mdulo de Administracin de Proyectos de Software, espero captar el mayor conocimiento posible sobre, la planificacin, organizacin, direccin y control en la implementacin de proyectos de software, las nuevas tecnologas de informacin y comunicacin y as desarrollar destrezas y competencias durante el curso. Mis metas son convertirme en profesional de Sistemas, continuar con los estudios superiores y ayudar de esta forma a la mejora de nuestro pas. A corto plazo mis expectativas son aprobar con xito adquiriendo el mayor conocimiento posible en los presentes mdulos. Me describo fsicamente de estatura alta, cabello negro corto y ojos cafs, mi cara es ovalada, mis labios son finos y de nariz un poco perfilada, mi piel es triguea. En cuanto a mi atuendo acostumbro a usar por lo general jeans, camisetas, chaquetas y zapatos deportivos. Me considero una persona prudente, amigable y respetuoso con todos, incluso junto a las personas que desconozco. Mis amigos me consideran consejero y centrado. Los maestros y dems personas que influyen con mi formacin estudiantil me han ayudado mucho, y deseara que lo siguieran haciendo porque gracias a sus conocimientos puedo cumplir mis metas.

22

UNIVERSIDAD TCNICA DE MACHALA FACULTAD DE INGENIERA CIVIL CARRERA DE INGENIERA CIVIL


Apellidos: Arvalo Villalta Curso: Cuarto C.I.: 0705184992 Quimestre: Sptimo Nombres: Daniel Stalin Paralelo: A Seccin: Diurna Edad: 23

Fecha de nacimiento: 11/02/1990

Facebook: Correo electrnico: danger-leinad@hotmail.com daniel.arevalo.313@facebook.com Convencional: Celular 1: 0994030856 Celular 2: Domicilio: Provincia: El Oro Cantn: Huaquillas Parroquia: Ecuador Direccin: Ciudadela Martha Bucaram Referencia: Frente a un cyber JID Sexo: Masculino Estado Civil: Soltero Croquis de su domicilio:

Calle Camilo Ponce

Datos del Padre Apellidos y Nombres: Arvalo Garca Orfilio Crecencio Donde trabaja: Canal Internacional Direccin del trabajo: Centro - Huaquillas Direccin domiciliaria: El oro-Huaquillas Datos de la Madre Apellidos y Nombres: Villalta Rogel Mara Dolores Donde trabaja: Direccin del trabajo: Domicil

Calle Galpagos

cyber

Calle Pias

Celular: 0992328488

Celular: 0990608700

23

Direccin domiciliaria: El Oro- Huaquillas Datos del cnyuge (en caso de tenerlo) Apellidos y Nombres: Donde trabaja: Direccin del trabajo: Direccin domiciliaria: Nmero de hijos: Observaciones: Datos del Trabajo: (en caso de tenerlo) Donde trabaja: Direccin del trabajo: Telfono 1:

Celular:

Sector: Telfono 2:

24

UNIVERSIDAD TCNICA DE MACHALA

Misin:

La Universidad Tcnica de Machala es una Institucin reconocida en su rea de influencia formadora de profesionales, con capacidades cientfico-tcnicas, tica, solidaria, con identidad nacional, que aporta, creativamente, a travs de la docencia, investigacin, vinculacin y gestin, a la solucin de los problemas del desarrollo sostenible y sustentable.

Visin:
La Universidad Tcnica de Machala para el ao 2013 es una institucin acreditada, lidera el desarrollo territorial, forma y perfecciona profesionales competentes, emprendedores, innovadores, crticos y humanistas.

FACULTAD DE INGENIERA CIVIL


Misin: Alcanzar un alto nivel de eficiencia tcnico profesional que permita a la Facultad contribuir activamente en el desarrollo socio-econmico provincial, regional y nacional con profesionales altamente calificados.

Visin:
La Facultad de Ingeniera Civil en cumplimiento de sus funciones de Docencia, Investigacin, Proyeccin Social, y; apoyo de la gestin administrativa est en una bsqueda permanente de la excelencia acadmica, con la participacin planificada, coordinada y coherente de sus actores, a travs de procesos educativos eficientes,
25

eficaces y de efectividad en la formacin de profesionales; en concordancia al desarrollo cientfico-tecnolgico y a las necesidades del desarrollo Provincial, Regional y Nacional en el campo de las Ciencias Fsicas y Matemticas.

ESCUELA DE INFORMTICA Misin:


Formar profesionales en Ingeniera de Sistemas con capacidades cientficas, tcnicas, tecnolgicas y humansticas, competitivas y comprometidas con el desarrollo sostenible y sustentable del buen vivir.

Visin:
La Carrera de Ingeniera de Sistemas para el ao 2013 es una unidad acreditada y lder en el desarrollo y transferencia de soluciones informticas, acorde a los avances cientficos y tecnolgicos.

26

DIARIO METACOGNITIVO

27

UNIDAD I: INTRODUCCIN A LA PROGRAMACIN PYTHON

28

CLASE N:
1

PERODO

06/05/13 11/05/13

TIEMPO: FECHA: DOCENTE GUA:

2 horas 06/05/13 Ing. Mariuxi Zea

TEMA DISCUTIDO: Principios de programacin

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

1.1. Diagnstico

Objetivos de desempeo: Retroalimentacin sobre ciertos temas de programacin.

Competencia General: Hacer un repaso sobre ciertos tpicos sobre programacin.

Datos interesantes discutidos: Actividades durante la clase Anlisis del mdulo a ejecutar y descripcin sobre el nuevo lenguaje de programacin a utilizar Descriptores analizados
29

Resumen conceptual de lo que se vio:


PARAMETROS DE EVALUACION Evaluacin Hemisemestre Proyecto Final Trabajos de Investigaciones Examen Total PUNTAJE 2 puntos 2 puntos 3 puntos 3 puntos 10 puntos

Reflexionar: Qu cosas fueron difciles? Todo fue fcil aprender Cules fueron fciles? Analizar la forma de evaluacin del mdulo a ejecutar Por qu? Porque la explicacin fue clara y se pudo entender. Qu aprend hoy? La forma de calificacin del modulo

30

CLASE N:

PERODO

06/05/2013 al 10/05/2013

TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

2 horas declase

08/05/2013
Ing. Mariuxi Zea

INTRODUCCIN A LA PROGRAMACIN PYTHON Desarrollar de acuerdo a lo que se vio en clase

Contenidos: Introduccin sobre Python. Historia de Python. Versiones IDE. Caractersticas Importantes.

Objetivos de desempeo: Conocer la historia y como es el lenguaje de programacin Python

Competencia General: Identificar el nuevo lenguaje de programacin que es Python

Datos interesantes discutidos: Actividades durante la clase Dialogar y discutir sobre el lenguaje de programacin Python

Descriptores analizados
31

Resumen conceptual de lo que se vio:


Python

Python es un lenguaje de programacin interpretado cuya filosofa hace hincapi en una sintaxis muy limpia y que favorezca un cdigo legible. Se trata de un lenguaje de programacin multiparadigma, ya que soporta orientacin a objetos, programacin imperativa y, en menor medida, programacin funcional. Es un lenguaje interpretado, usa tipado dinmico y es multiplataforma. Historia de Python El origen del lenguaje Python se remonta a principios de los noventa. Por este tiempo, un investigador holands llamado Guido van Rossum, que trabajaba en el centro de investigacin CWI (Centrum Wiskunde & Informatica) de msterdam, es asignado a un proyecto que consista en el desarrollo de un sistema operativo distribuido llamado Amoeba. Por aquel tiempo, el CWI utilizaba un lenguaje de programacin llamado ABC. En lugar de emplear este lenguaje para el proyecto Amoeba, Guido decide crear uno nuevo que pueda superar las limitaciones y problemas con los que se haba encontrado al trabajar en otros proyectos con ABC. As pues, es esta la principal motivacin que dio lugar al nacimiento de Python. La primera versin del lenguaje ve la luz en 1991, pero no es hasta tres aos despus cuando decide publicarse la versin 1.0. Inicialmente el CWI decidi liberar el intrprete del lenguaje bajo una licencia open source propia, pero en septiembre de 2000 y coincidiendo con la publicacin de la versin 1.6, se toma la decisin de cambiar la licencia por una que sea compatible con la licencia GPL (GNU General Public Licence). Esta nueva licencia se denominar python Software Foundation Licence y se diferencia de la GPL al ser una licencia no copyleft. Este hecho implica que es posible modificar el cdigo duente y desarrollar cdigo derivado sin la necesidad de hacerlo open source. Hasta el momento solo se han liberado tres versiones principales, teniendo cada una de ellas diversas actualizaciones. En lo que respecta a la versin 2, la ltima en ser liberada fue la 2.7, en julio de 2010. Actualmente, la versin cunta con la actualizacin 3.3, liberada en septiembre de 2012. Ambas versiones, la de 2 y 3, son mantenidas por separado. Esto implica, que tanto la 2.7 como la 3.3 se consideran estables pero, lgicamente, correspondientes a diferentes versiones. Por qu mantener ambas versiones y no seguir una evolucin lgica? La respuesta a esta pregunta es fcil de responder: Entre ambas
32

versiones existen diferencias que las hacen incompatibles. Entre las caractersticas de las primeras versiones de Python cabe destacar el soporte de la orientacin a objetos, el manejo de excepciones y el soporte de estructuras de datos de alto nivel, como, por ejemplo, las listas y los diccionarios. Adems, desde su desarrollo inicial, se tuvo en cuenta que el cdigo escrito en este lenguaje fuera fcil de leer y de aprender, sin que esto suponga renunciar a caractersticas y funcionalidades avanzadas.
El desarrollo y promocin de Python se lleva a cabo a travs de una organizacin, sin nimo de lucro, llamada Python Software Foundation, que fue creada en marzo de 2001.

Python tiene unos claros caracteres open source y la Python Software Foundation invita, a cualquiera que quiera hacerlo, a contribuir al desarrollo y promocin de este lenguaje de programacin. Reflexionar: Qu cosas fueron difciles? Aprender rpidamente sobre el nuevo lenguaje de programacin Cules fueron fciles? La lgica del lenguaje Por qu? Porque de los lenguaje de programacin son iguales para todo programador Qu aprend hoy? Un nuevo lenguaje de programacin

33

DESARROLLAR DE ACUERDO A LO QUE SE VIO EN CLASE Contenidos:

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

PERODO

06/05/2013 al 10/05/2013 2 HORAS DE CLASE 08/05/2013 ING. MARIUXI ZEA

INTRODUCCIN A LA PROGRAMACIN PYTHON

Introduccin sobre Python. Historia de Python. Versiones IDE. Caractersticas Importantes. Objetivos de desempeo: Describe conceptos y terminologa sobre el lenguaje de programacin. Competencia General: Identificar los objetivos del lenguaje Python. Datos interesantes discutidos: Actividades durante la clase: Durante la clase de Programacin III la Ing. Mariuxi Zea realizo la respectiva explicacin sobre la clase de Introduccin a la Programacin Python mediante diapositivas. Tambin se realiz preguntas a los estudiantes acerca de lo explicado en clase.

34

Se realiz una tarea intraclase acerca de la evolucin de Python mediante una lnea de tiempo.

Descriptores analizados

IDE

HISTORIA EVOLUCIN Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

INTRODUCCIN A PYTHON
Python es un lenguaje de programacin creado por Guido van Rossum a principios de los aos 90 cuyo nombre est inspirado en el grupo de cmicos ingleses Monty Python. Python es fcil de entender y ensear. No tiene costo alguno, adems de ser cdigo abierto. Es un lenguaje interpretado, lo que significa que no se necesita compilar el cdigo fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de desarrollo e inconvenientes como una menor velocidad. Algunas de la versiones de Python son CPython, Jython, Python for S60, PyPy, PyGame, Unladen, Swallow y actualmente es que se utiliza ms por su interfaz grfica y sus tipos modulares IronPython. IronPython necesita de Visual Studio 2008 para poder funcionar. CARACTERSTICAS O FORTALEZAS: Simple: Python es un lenguaje muy simple, por lo que es muy fcil de aprender. El pseudo-cdigo natural de Python es una de sus grandes fortalezas. Lenguaje Orientado a Objetos: Al ser un Lenguaje Orientado a Objetos es construido sobre objetos que combinan datos y funcionalidades. Python tambin permite la
35

programacin imperativa, programacin funcional y programacin orientada a aspectos. Lenguaje de Alto Nivel: Al programar en Python no nos debemos preocupar por detalles de bajo nivel.

Incrustable: Se puede insertar lenguaje Python dentro un programa C/C++ y de esta manera ofrecer las facilidades del scripting. Multiplataforma: El intrprete de Python est disponible en multitud de plataformas (UNIX, Solaris, Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos libreras especficas de cada plataforma nuestro programa podr correr en todos estos sistemas sin grandes cambios. No tiene costo alguno, adems de ser cdigo abierto. Las variables no tienen que ser definidas como de un solo tipo lo que facilita la creacin y reduce las palabras necesarias para escribir un programa. DESVENTAJAS Y LIMITACIONES: Python no es adecuado sin embargo para la programacin de bajo nivel o para aplicaciones en las que el rendimiento sea crtico. Los programas interpretados son ms lentos que los compilados. Sin embargo los programas interpretados suelen ser cortos, en los que la diferencia es inapreciable. Python se puede integrar al visual studio .net, pero sera encarcelar y encartonar a Python en Windows, adems de limitarlo en su caracterstica multiplataforma que es una de las cosas ms interesantes. Reflexionar: Qu cosas fueron difciles?

36

Por el momento nada ya que es solo teora referente al programa que vamos a manejar como es Python. Cules fueron fciles? Los temas de clase del da de hoy fueron muy entendibles, ya que se dio la correcta explicacin dada por la Ingeniera. Por qu? Porque la explicacin de la clase fue muy clara con respecto a la historia y caractersticas de Python. Qu aprend hoy? En este da aprend acerca de la historia de Python, algunas caractersticas y sus versiones de IDE.

37

Anexar escaneado de los apuntes.

38

CLASE N:
TIEMPO: FECHA: DOCENTE GUA:

PERODO

06/05/2013 al 10/05/2013
1 HORA DE CLASE 10/05/2013 ING. MARIUXI ZEA

Principios de programacin TEMA DISCUTIDO:

Introduccin a IronPython Studio Instalacin de IronPython Studio

DESARROLLAR DE ACUERDO A LO QUE SE VIO EN CLASE Contenidos: Introduccin a IronPython Studio Instalacin de IronPython Studio Objetivos de desempeo: Describe conceptos y terminologa sobre IronPython Competencia General: Identifica los objetivos de IronPython Datos interesantes discutidos: Actividades durante la clase:

39

Se realiz una breve explicacin mediante diapositivas acerca de IronPython Studio, sus caractersticas, los requisitos que se debe tener para realizar la instalacin de la misma y los pasos a seguir para realizar su debida instalacin.

Una vez dada la clase se procedi a instalar en los computadoras IronPython de forma correcta gracias a las debidas explicaciones que se dio.

Tambin se realiz una tarea intraclase donde haba que realizar un manual de instalacin de IronPython.

Descriptores analizados REQUISITOS INSTALACION INTRODUCCION

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

INTRODUCCIN A IRONPYTHON STUDIO


Se podra decir que cualquier programa escrito en Python puede ser interpretado por IronPython o por cualquier herramienta ya que es cdigo abierto. IronPython utiliza bibliotecas de la plataforma .NET como es System. Algunas de sus caractersticas son: Posee un modo interactivo es decir nos muestra los errores, permite interactuar con el usuario. Soporte completo de las bibliotecas. Integracin con la plataforma .Net.
40

Compilacin del cdigo bycote es decir cualquier herramienta puede interpretas dicho cdigo. Para poder instalar IronPython no se necesita de muchos requisitos ya que, IronPython es un Software gratuito, que no necesita licencia, este esta basado en el runtime de Visual Studio 2008 Shell lo que no es necesario instalar ninguna versin de Visual Studio. Con respecto a su instalacin es muy fcil y rpida, pero debemos tener en cuenta que paquete se instala primero en este caso se instalara primero el Shell y luego IronPython. Una vez terminada la instalacin de manera correcta abrimos la herramienta y al crear un proyecto nuevo nos daremos cuenta que solo nos aparecer para abrir solo en consola pero en nuestro caso queremos utilizar Windows Aplication, lo que se har es copiar unas plantillas dentro de una ruta establecida de IronPython, una vez hecho eso podremos observar que ya se pudo visualizar la parte de utilizar Windows Aplication.
INSTALACIN DE IRONPYTHON

Requerimientos de hardware (tenerlo en cuentas antes de instalar IronPython): PC con procesador Pentium, a velocidad de 200MHz (o superior). 32 MB de RAM. 1GB de espacio de disco fijo.
Antes de instalar IronPython Studio debemos tener en cuenta los siguientes requerimientos de software:

Compatible con Windows xp o superior. Microsoft NET Framework 4.0.

1. Primeramente debemos instalar el vs_shell_isolated.esn.exe, donde comenzara a instalarse el Visual Studio 2008 Shell.

41

Aqu podemos observar que tenemos los dos instaladores, como se explic anteriormente primero si instala el vs_shell_isolated.esn.exe. Damos clic y dar inicio la instalacin.

Una vez realizado eso nos saldr un mensaje preguntando si deseamos instalar el Shell permitiendo realizar cambios, y daremos clic en Aceptar. Luego de esto comenzara el proceso, como podemos observar aqu:

Una

vez concluido

el

proceso de

extraccin de archivos. Nos saldr la siguiente pantalla. Donde daremos clic en siguiente para continuar con la instalacin.

42

Luego nos mostrara los terminos de licencia del software donde seleccionaremos las opcion de He leido lps terminos de la licencia y los acepto y daremos clic en siguiente.

43

Aqu podemos visualizar el progreso de instalacin, que una vez concluido no saldr la siguiente ventana donde daremos clic en Finalizar.

2. Un

vez

instalado

el

vs_shell_isolated.esn.exe, comenzaremos a instalar IronPython

Aqu podemos observar que tenemos los dos instaladores, como se explic anteriormente, ahora procedemos a instalar IronPython

StudioIsolatedSetup. Damos clic y dar inicio la instalacin.

44

Luego de dar doble clic nos saldr la siguiente pantalla donde daremos clic en Next para continuar con la instalacin.

Luego nos indica la direccin donde queremos instalarnos es decir la ruta, damos clic en Next.

Dndole clic aqu podemos buscar la ruta donde queremos que se guarde o instale IronPython.

45

Nos presentara la siguiente pantalla donde nos indica que se va a dar el proceso de instalacin, entonces por consiguiente damos clic en Next.

En la siguiente ventana observar el proceso de instalacin, una vez concluido dicho proceso, damos clic en Next.

46

En este ventana no presentara un mensaje donde nos indica que la instalacin fue realizada con xito y damos clic en Close (cerrar).

3. Ahora si una vez instalado, probamos el programa para verificar si se instal con xito. Nos vamos a Inicio y en buscador escribimos IronPython Studio.

Damos clic y se nos abrir la siguiente pantalla.

En la

47

pantalla anterior podemos observar que no consta de ninguna plantilla dentro del programa. Parar poder agregar dichas plantillas realizamos lo siguiente.

Estas plantillas se encuentran dentro de la siguiente ubicacin: C:\Archivos de programa\Microsoft Visual Studio

9.0\Common7\IDE\ProjectTemplates\IronPython Studio\1033.

Una vez encontradas las plantillas en la ruta correspondiente las copiamos en la siguiente carpeta con la ruta (la ruta depender de donde instal Visual Studio 2008 y en que maquina ya que variara la ruta):

C:\Users\Cristina\Documents\IronPython.Studio\Templates\ProjectTemplates

48

Ahora para comprobar que las libreras estn ya dentro de IronPython. Abrimos el programa para verificar.

4. Visualizacin de la herramienta IronPython.

49

Reflexionar: Qu cosas fueron difciles? Por el momento no hubo algo que tuviera alguna dificultad. Cules fueron fciles? Todo fue fcil desde la introduccin de IronPython, sus caractersticas, requisitos que debe tener nuestro computador para poder instalar y su debida instalacin. Por qu? Fue fcil, porque todos los temas explicados fueran explicados de forma correcta y entendible mediante diapositivas. Qu aprend hoy?

50

El da de hoy aprendimos algo sobre IronPython como sus caractersticas, los requisitos que debe tener nuestro computador para poder ser instalado y su correcta instalacin en los monitores del laboratorio.

Anexar escaneado de los apuntes.

51

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

5
5 Horas.

PERODO

13/05/13 18/05/13

15 de Mayo del 2013. Ing. Mariuxi Zea Ordoez. Principios de programacin - Elementos de IronPython Studio

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Reconoce los componentes del IDE de Python.

Competencia General: Identificar los elementos principales de Python Interesantes discutidos: Actividades durante la clase.

Explicacin sobre los principales elementos de IronPython.


Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

1.5 ELEMENTOS DE IRONPYTHON


Ironypthon es una herramienta basada en visual studio entonces tendremos los mismos elementos como los que veremos a continuacin. Repaso de Elementos del Visual Studio .Net Interfaz de Visual Studio .Net 1. Crear una aplicacin en Visual Studio .Net utilizando Visual Basic y C# 2. Cambiar Titulo del Formulario 3. Barra de Herramientas
52

4. Creacin de un Men Bsico 5. Insercin de una Barra de herramientas 6. Aadir un nuevo Formulario 7. Cambiar el fondo del formulario e icono 8. Redimensionar el tamao del formulario 9. Ejecutar otro formulario Especificar los siguientes controles: 1. Control Group Box : Representa un control Windows que muestra un marco alrededor de un grupo de controles con un ttulo opcional. GroupBox muestra un marco alrededor de un grupo de controles con o sin ttulo. Utilice GroupBox para agrupar de forma lgica una coleccin de controles en un formulario. El cuadro de grupo es un control contenedor que puede utilizarse para definir grupos de controles. El uso habitual de un cuadro de grupo es contener un grupo lgico de controles RadioButton. Si dispone de dos cuadros de grupo, cada uno de los cuales contiene diversos botones de opciones (tambin conocidos como botones radio), ambos grupos de botones se excluirn mutuamente y establecern un valor de opcin por grupo. Se pueden agregar controles a GroupBoxmediante el mtodo Add de la propiedad Controls.

53

1.6 LA CONSOLA DE IRONPYHTON


IronPython Hello World Revisar un programa sencillo de Python (un enfoque distinto de Hello World) y abordar lo que sucede cuando se ejecuta en ipy.exe. El programa que examinar es msdnmag.py: def yo(yourname): text = "hello, " return text + yourname

print yo("bill") He agregado un poco ms que la clsica funcionalidad "print hello", de manera de poder tratar aspectos ms interesantes de la implementacin de IronPython. Por ejemplo, podr demostrar el enlace de nombres para referencias de identificador y almacenar en cach el significado de "+" en la funcin yo. Uso la versin alfa de IronPython 2.0, por lo que le sugiero que dedique ahora algunos minutos a descargarla, de manera que podr realizar los procesos del artculo. Para comenzar, abra el archivo ironpython.sln en Visual Studio 2005 y genere la solucin con la configuracin de soluciones de depuracin. A continuacin, haga clic con el botn secundario en el proyecto IronPythonConsole y seleccione la ficha Depurar de la barra de navegacin izquierda. Establezca este proyecto como el proyecto de inicio (primer conjunto de botones de opcin debajo de Accin de inicio). A continuacin, debajo de Opciones de inicio, escriba msdnmag.py como el argumento de lnea de comandos. Por ltimo, copie el cdigo Python de msdnmag.py descrito arriba en un archivo denominado msdnmag.py en el directorio bin\debug\ creado cuando gener la solucin. Inicio de Ipy.exe Ahora veamos cmo se inicia ipy.exe. DLR ofrece algunas clases de consola predeterminadas para que los implementadores de lenguajes puedan obtener fcilmente un intrprete en ejecucin (el implementador an necesita escribir analizadores y una implementacin de tiempo de ejecucin para su lenguaje). Las clases de consola controlan la entrada y salida, los modificadores de lnea de comandos y algunos modificadores de diagnsticos compartidos que implementa DLR. Esto ahorra a los implementadores el trabajo de obtener cdigo inicial en ejecucin en DLR y ofrece una herramienta de prueba. Para comenzar, abra <installdir>\Src\IronPython\Compiler\Generation\PythonScriptCompiler.cs. A continuacin, establezca un punto de interrupcin en la funcin ParseFile de la lnea "using (Parser parser = ...." Use F5 (Depurar | Iniciar depuracin) para ejecutar el programa. Mientras analiza un fragmento de cdigo que inicializa el motor de ejecucin de Python, encontrar en primer lugar el punto de interrupcin. El fragmento de cdigo carga el archivo Python site.py para la inicializacin especfica del equipo. Cmo lleg hasta aqu? Si observa la pila de llamadas, ver que ipy.exe se inicia en la funcin Main de PythonConsoleHost, que se llama dentro del cdigo compartido de conveniencia de DLR. La ejecucin regresa al cdigo especfico de Ironpython para procesar la lnea de comandos, que hace que se ejecute el archivo msdnmag.py. La clase PythonConsoleHost es muy pequea. Tiene un mtodo Initialize muy breve que establece el elemento LanguageProvider (y por lo tanto el motor de ejecucin) en la implementacin de 54

IronPython. El mtodo Main de PythonConsoleHost simplemente se llama dentro de la clase predeterminada ConsoleHost ofrecida por DLR.

ConsoleHost es una clase de aplicacin auxiliar que permite a los implementadores de lenguajes generar rpidamente un shell de interaccin del estilo de cmd.exe. La clase ConsoleHost obtiene el objeto de aplicacin auxiliar CommandLine de LanguageProvider. Cuando ConsoleHost ejecuta el objeto CommandLine, que llama a su mtodo Initialize, el cdigo inicia la ejecucin en el objeto PythonCommandLine. En su mtodo Initialize, el objeto PythonCommandLine establece la ruta de acceso de Python para la carga de mdulos, establece algunos mdulos integrados e importa el archivo site.py de IronPython. Todo esto forma parte del comportamiento estndar de Python. PythonCommandLine importa el archivo site.py cuando llama a IScriptEngine.Execute en la cadena de fragmento de cdigo "import site.py". Primero encontrar el punto de interrupcin en la llamada a PythonScriptCompiler.ParseFile debido al anlisis "import site.py", pero continuemos, porque msdnmag.py todava no se ejecuta. El cdigo IronPython genera primero un AST especfico para IronPython y, a continuacin, asigna este rbol a un AST de DLR. Algunos lenguajes tienen su propio rbol intermedio, de manera que pueden realizar anlisis o admitir herramientas (editores de cdigo) sobre sus AST. Las herramientas necesitan un rbol cercano al cdigo fuente que los usuarios escriben en un editor. Muchos lenguajes pueden tener sus AST, que sern semejantes a los de DLR, pero los AST de DLR contendrn ms informacin acerca de la semntica explcitamente representada. Puede pensar en el AST de DLR como una de las distintas transformaciones que necesita el compilador en las fases posteriores. Es interesante observar que durante la ejecucin del cdigo, DLR compila con lentitud las partes que corresponden a los AST. Esto es semejante a la manera en que CLR usa la compilacin JIT, slo durante la ejecucin del cdigo. Durante la primera ejecucin del cdigo el rendimiento se degrada un poco, pero las ejecuciones posteriores son rpidas. Ms adelante, ver que las partes del AST no se compilan hasta que se ejecuten algunas lneas de cdigo especficas. Reflexionar: Qu cosas fueron difciles?

Comprender la sintaxis que se me hace nueva ya que es un lenguaje diferente de los ya estudiados
Cules fueron fciles?

Comprender la barra de menu


Por qu? Porque no solo Python sino varias aplicaciones tienen una barra de men. Qu aprend hoy? Conocer la interfaz donde se trabajara en la realizacin de este curso. 55

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

6
5 Horas.

PERODO

13/05/13 18/05/13

15 de Mayo del 2013. Ing. Mariuxi Zea Ordoez.

Principios de programacin Consola de IronPython Studio

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Conocer los procesos q se pueden realizar en la consola de IronPython. Competencia General: Identificar los elementos principales de Python Interesantes discutidos: Actividades durante la clase.

Explicacin sobre la consola de IronPython.


Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc. Consola de IronPython. Los programas realizados en IronPython, al igual que en diversas aplicaciones se pueden ejecutar por consola lo que permite realizar programas sencillos, bsicos para aquellas personas que recin estn aprendiendo a utilizar esta herramienta,

56

Reflexionar: Qu cosas fueron difciles?

Aprender a utilizar la consola de IronPython por medio de cdigo


Cules fueron fciles? Aprender la utilizacin de la consola. Por qu? Porque son conceptos bsicos de programacin conocer ms acerca de la consola de IronPython Qu aprend hoy? Conocer la interfaz donde se trabajara en la realizacin de este curso

SEMANA N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

7
2 horas

PERODO

6/Mayo/2013 - 28/Septiembre/2013

13/05/13 18/05/13

Ing. Mariuxi Zea


Trminos y definiciones

57

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

1.7. Tipos de Datos 1.8. Referencia de objetos


Objetivos de desempeo: Conocer cules son los objetivos del portafolio y hablar acerca de los tipos de datos a utilizar en Python y la referencia a objetos ya sean enteros o variables. Competencia General: Que para los tipo de datos no es necesario declarar una variable con un tipo de dato en especfico sino que el tipo de dato se determina por el valor que se le establezca a dicha variable Ejm: si a x se le asigna un valor depender del valor que se le asigne para que reconozca automticamente que tipo es, y sobre la referencia a objetos es la ruta que apunta a dicho objeto y no en si el contenido del objeto.

Datos interesantes discutidos:

Descriptores analizados
1.7. Tipos de Datos 1.8. Referencia de objetos

Actividades durante la clase


Analizar y aplicar los tipos de datos que se puede utilizar y la referencia a objetos que asigna cualquier valor a una variable y se toma como referencia dicha variable.

58

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Reconoce los componentes del IDE de IronPython.

Competencia General: Identifica los componentes de IronPython.

Datos interesantes discutidos: Actividades durante la clase Descriptores analizados En la Clase de Hoy se analizaron los Tipos de Datos que existen en Python Resumen conceptual de lo que se vio, incluyendo imgenes, etc.
1.7 TIPOS DE DATOS

En Python existen varios tipos de datos entre ellos algunos que se listaran en la siguiente tabla:
Clase Descripcin Ejemplo str 'Cadena' Cadena Recibe list [4.0, 'Cadena', True] Secuencia Puede contener objetos de diversos tipos tuple (4.0, 'Cadena', True) Secuencia Puede contener objetos de diversos tipos dict {'key1': 1.0, 'key2': False} Mapping Grupo de pares clave:valor int 42 Nmero entero Tipo de Dato entero. long Nmero entero Tipo de datos entero Largo. 42L 456966786151987643L float Nmero decimal 3.1415927 Coma flotante de doble precisin bool True o False Booleano Valor booleano verdadero o falso Tipo

59

ASIGNACIN MULTIPLE DE VARIABLES En Python tambin podemos hacer una asignacin mltiple, lo que quiere decir declarar las variables ms rpidamente en una sola lnea, este ejemplo podemos hacer la declaracin de numero, decimal y nombre en una sola lnea de la siguiente manera.
1 numero,decimal,nombre = 17,0.5,"Jorge"

1.8 REFERENCIAS DE OBJETOS.


Una vez que hemos visto los tipos de datos, ahora necesitamos variables para que los almacenen, sin embargo se debe acotar que Python no tiene variables de esta clase, aunque en su lugar tiene referencias de objeto. Cuando tratamos con objetos inmutables como enteros y cadenas, no existe ninguna diferencia perceptible entre una variable y una referencia de objeto. Utilizaremos los trminos variable y referencia de objeto de forma indiferente. Veamos unos ejemplos y luego los analizaremos:

La sintaxis utilizada es sencilla: ReferenciaAlObjeto = valor En Python, como se ha mencionado en el transcurso de las clases, no es necesario declarar ni especificar qu tipo de datos va a utilizar las variables que se vallan a implementar Es importante indicar que los nombres que se utilizan para las referencias de objetos (denominados identificadores) tienen unas cuantas restricciones. tenemos: 1. No pueden ser igual a ninguna de las palabras claves de Python.
60

Entre los cuales

2. Deben comenzar con una Letra o una barra baja y continuar con cero o alguna letra que no sea espacio, barra baja o dgitos 3. No hay limitacin de longitud, y las letras y dgitos son los que define Unicode, es decir, que incluyen aunque no estn limitados, a las Letras y dgitos de ASCII. 4. Hay distincin entre maysculas, as que por ejemplo, LIMIT, Limit y limit seran tres identificadores distintos. Python utiliza la escritura dinmica, esto significa que en cualquier momento una referencia de objeto se puede volver a vincular para referirse a un objeto distinto (que puede ser de un tipo de dato diferente), Los lenguajes que especifiquen de forma precisa los tipos de datos (como C++ y Java), solamente permiten realizar aquellas operaciones que definan los tipos de datos implicados.

Reflexionar: Qu cosas fueron difciles?

Cules fueron fciles? Toda la clase que se trat en esta clase fue fcil de asimilar y aprender. Por qu? Hubo una buena recopilacin y explicacin de la informacin que posea la profesora. Qu aprend hoy? Aprend como Python maneja los distintos tipos de datos y como hace referencia a cada objeto que crea en la memoria.

61

Anexar escaneado de los apuntes.

62

Reflexionar: Qu cosas fueron difciles? Entender las referencias a objetos principalmente Cules fueron fciles? 63

Crear variables sin tener que definir el tipo de dato Por qu? Porque en otros lenguajes era ms complejo tener que crear un tipo de dato y darle un valor de acuerdo al tipo de dato que se cre la variable. Qu aprend hoy? A usar los tipos de datos y a declarar referencia a objetos de una manera eficiente.

64

UNIDAD II: Elementos principales de Python

65

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

8
5 Horas.

PERODO

20/05/2013 al 25/05/2013

15 de Mayo del 2013. Ing. Mariuxi Zea Ordoez.


Elementos principales de Python Tipo

de Datos.

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Utiliza los tipos y las colecciones de datos en la creacin de programas, crear y
ejecutar programas en Ironpython

Competencia General: Identificar las normas que controlan la codificacin Python. Interesantes discutidos: Actividades durante la clase.

Explicacin sobre los principales elementos de Python. Practica de laboratorio. Ejercicios propuestos.
Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

66

Reflexionar: Qu cosas fueron difciles?

Entender especficamente el lenguaje de programacin Python. Diagnosticar como se desarroll cada ejemplo.
Cules fueron fciles?

Conocer los procedimientos, nombres de variables que maneja Python.


Por qu? Porque as entender cada procedimiento y tipos de datos. Qu aprend hoy? Ah desarrollar la y resolver cada ejemplo de tipo de datos, como tuplas nombres de variables.

67

UNIDAD III: Tipos de Datos

68

CLASE N:
TIEMPO: FECHA: DOCENTE GUA:

9
2 Horas

PERODO

20/05/13 25/05/13

Lunes 20 de Mayo del 2013 Ing. Mariuxi Zea

1.9 Coleccin de Tipo de Datos.


TEMA DISCUTIDO:

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Coleccin de Tipo de Datos

Objetivos de desempeo: Asemejar y crear colecciones de Tipo de datos de Programacin Python. Competencia General: Manejar los tipos de datos y las colecciones de datos. Datos interesantes discutidos: Actividades durante la clase

Prctica de laboratorio Ejercicios propuestos Descriptores analizados

Elementos arrays Tuplas[ ] Len() Print() Append() Insert() Remove()


69

Resumen conceptual de lo que se vio, incluyendo imgenes, etc. Adems de los tipos de datos bsicos de Python, contamos con tipos ms complejos que denominamos colecciones ya que son tipos de datos que sirven para agrupar elementos, ellos son las listas, las tuplas y los diccionarios. Listas:: Definicin de una Lista: milista = ["Flavio", "Ana", "Luis"] Una lista es un conjunto ordenado de elementos encerrados entre corchetes. Los elementos dentro de una lista pueden ser de cualquier tipo de dato, pueden ser de uno de los tipos de datos bsicos de Python, pueden ser imgenes, archivos, otras listas, etc. Dentro de una lista puedo tener cualquier cantidad de elementos y todos pueden ser de diferente tipo de dato. Puedo agregar y eliminar elementos de la lista en cualquier momento y adems modificar sus elementos cuando lo desee (a diferencia de las tuplas). Agregar Elementos a una lista: Por ejemplo, en el ltimo ejemplo sobre los iteradores, imprimimos todas las combinaciones de 2 elementos entre los nmeros 1, 2 y 3, supongamos que deseamos guardar esos elementos en una lista para poder accederlos luego desde otro punto de nuestro cdigo, entonces, hacemos: miscombinaciones= [] # declaramos una lista vaca for a in (1,2): for b in (a+1, 3): miscombinaciones.append( (a,b) ) # agregamos la combinacin a la lista, al encerrarlos entre () creamos una tupla de dos elementos. append aade un elemento al final de la lista. Los elementos de la lista no tienen por qu ser nicos, pueden repetirse. Tambin puedo sumar 2 listas (concatenando sus elementos):
70

lista1= [1,2,3] lista2= [4,5,6] lista3= lista1 + lista2

O extender una lista con los elementos de otra (concatena las listas): lista1= [1,2,3] lista2= [4,5,6] lista3= [] lista3.extend(lista1) lista3.extend(lista2) Tambin puedes utilizar operadores y hacerlo as: lista1= [1,2,3] lista2= [4,5,6] lista3= [] lista3+= lista1 lista3+= lista2 Y si quieres agregar varias veces un mismo elemento puedes hacer: lista1 = [1, 2] * 3 Insertar Elementos a una lista: Cada elemento en una lista tiene un ndice determinado por el orden en que ese elemento ha sido agregado (a menos que ordenes los elementos en la lista). El primer elemento en una lista tiene el ndice 0. Puedes a travs del manejo de estos ndices, insertar un elemento en cualquier posicin de la lista, mediante: miista.insert(2, "new")
71

El ndice 2 hace referencia al 3 lugar en la lista porque los ndices de las listas comienzan en 0, entonces los elementos tienen los ndices (0, 1, 2, etc)

CLASE N: TIEMPO:

10 5 Horas

PERODO

20/05/2013 al 25/05/2013

FECHA:

20/05/13

DOCENTE GUA:

Ing. Mariuxi Zea

TEMA DISCUTIDO:

2.1 Operaciones Lgicas.

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Operaciones lgicas.

Objetivos de desempeo: Suministrar los diferentes conjuntos de operaciones lgicas. Competencia General: Analizar las diversificas operaciones lgicas que se pueden controlar en Python. Datos interesantes discutidos: Actividades durante la clase

Prctica de laboratorio Ejercicios propuestos

Descriptores analizados Operador de identidad


72

Operadores de comparacin Operador de pertenencia

Resumen conceptual de lo que se vio, incluyendo imgenes, etc. Cuando nos hablan sobre el concepto de Booleano nos quieren decir una cosa: Verdadero, Falso Un valor booleano contiene esas dos cosas, si y no. Sin embargo hay diferentes formas de verlo. Ya hemos visto varias funciones en las que nos muestran el operador ==, que representa igualdad. Sin embargo existen otros ms y son los que se nos presentan a continuacin: == Igualdad != Desigualdad < menor <= menor o igual > mayor >=mayor o igual Por ejemplo si nos presentan algo como esto: a != b Lo tendramos que leer como "No es igual a que b". Suponiendo que tenemos definidas las variables a=3 b=4 a != b Esto nos devolvera verdadero, ya que a es diferente de b. Si en cambio tenemos a == b Esto nos devolvera falso ya que a no es igual a b. De igual forma a<b Nos devolvera verdadero y a>b

73

Nos devolvera falso. Es indispensable comprender a la perfeccin los Operadores Relacionales a la hora de programar en cualquier lenguaje de programacin, y Python no es la excepcin. CLASE N: TIEMPO: 11 2 Horas PERODO 20/05/13 25/05/13

FECHA:

Lunes 20 de Mayo del 2013

DOCENTE GUA:

Ing. Mariuxi Zea

TEMA DISCUTIDO:

Operaciones lgicos

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Operadores Lgicos Sentencia de flujos de control.

Objetivos de desempeo: Entender y aplicar los operadores logicos para aplicarlos en la resolucin de problemas y ejercicios Competencia General: Identificar las normas que controlan la codificacin Python Manejar los tipos de datos y las colecciones de datos. Analizar las estructuras de control y la forma de producir excepciones. Crear excepciones

Datos interesantes discutidos: Actividades durante la clase Ejercicios en clases


74

Exposicin de la clase

Descriptores analizados o o o o o o El operador de identidad. Operadores de comparacin El Operador de pertenencia. Operadores Lgicos Ejercicios Ejemplos

Resumen conceptual de lo que se vio, incluyendo imgenes, etc. OPERACIONES LGICAS. Los operadores lgicos sirven para agrupar elementos y usarlos en condicionales. El operador de identidad. El operador is es un operador binario que devuelve True si la referencia del objeto que tiene a su izquierda se refiere al mismo objeto que la referencia de objeto de su derecha.

Operadores de comparacin. Mientras desarrollamos, muchas veces nos vemos en la necesidad de comparar datos, ya sean proporcionados por el usuario o incluidos en nuestro propio cdigo, para esto, nos sirven los operadores de comparacin

75

Existe un conjunto estndar de operadores de comparacin binarios, con significados evidentes: < menor que, <= menor o igual que, == igual que, != distinto que, >= mayor o igual que y > mayor que.

76

El Operador de pertenencia. En el caso de los tipos de datos que sean secuencias o colecciones como cadenas, listas y tuplas, podemos comprobar la pertenencia utilizando el operador in, y para comprobar la no pertenencia, el operador not in.

Operadores Lgicos. En Python contamos con los siguientes operadores lgicos:

and (y)
77

or (o) not (no)

Los operadores lgicos nos permiten agrupar condiciones simples en una estructura condicional, esto nos facilita la implementacin de algoritmos ms compactos y comprensibles.

SENTENCIA DE FLUJOS DE CONTROL. Si un programa no fuera ms que una lista de rdenes a ejecutar de forma secuencial, una por una, no tendra mucha utilidad. Los condicionales nos permiten comprobar condiciones y hacer que nuestro programa se comporte de una forma u otra, que ejecute un fragmento de cdigo u otro, dependiendo de esta condicin. Dentro de las sentencias de flujos de control tenemos if y los blucles while. Tal vez el tipo ms conocido de sentencia sea el if Sentencia if. La sintaxis de la sentencia if es: if expresin_booleana1: bloque1 elif expresin_booleana2: bloque2 elif expresin_booleanaN: bloquen else: else_bloque
78

Ejemplo1:

Ejemplo1:

79

Reflexionar: Qu cosas fueron difciles? Fue difcil entender la nueva sintaxis que presenta Python Cules fueron fciles? Entender los operadores lgicos y las sentencias de flujo if Por qu? Estos temas ya lo hemos revisado en mdulos anteriores Qu aprend hoy? Hoy aprend operadores lgicos y la sintaxis de la sentencia if Anexar escaneado de los apuntes.

80

UNIDAD IV: Estructuras de control y funciones

81

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

12
2 horas

PERODO

7:00am 9:00am

24 de Mayo del 2013 Ing. Mariuxi Zea Elementos principales de Python: Operadores

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

OPERADORES ARITMTICOS:
Objetivos de desempeo: Reconocer cuales son los operadores aritmticos de IronPython.

Competencia General: Identifica cuales son los operadores aritmticos.

Datos interesantes discutidos: Actividades durante la clase Aplicacin de los temas dados y aplicarlos a ejercicios para un mejor entendimiento.

Descriptores analizados Resumen conceptual de lo que se vio: En Python tambin tenemos los llamados operadores.

Un operador es bsicamente un smbolo que utilizamos en expresiones como 1+3 donde 1 y 3 seran operandos y + es el operador. Existen diferentes tipos de operadores, operadores aritmticos, de asignacin, relacionales, lgicos, bitwise y de identidad.

82

Operadores aritmticos Los operadores aritmticos son los ms sencillos de todos, se utilizan para realizar operaciones aritmticas bsicas, es decir sumas, restas, multiplicacin divisin, modulo/residual, y exponenciales. En el siguiente ejemplo vemos el uso de cada operador con una descripcin.

Operadores de comparacin Los operadores de comparacin se usan para evaluar expresiones que solo pueden tener 2 resultados, estos resultados son verdadero o falso (true o false) y son los siguientes.

== , evala como verdadero si 2 variables son iguales != ,evala como verdadero si 2 variables son diferentes <> , lo mismo que != > , verdadero si el operador a la izquierda es mayor que el de la derecha < , verdadero si el operador a la izquierda es menor que el de la derecha >= verdadero si el operador a la izquierda es mayor o igual al de la derecha <= verdadero si el operador a la izquierda es menor o igual al de la derecha

Ejemplos: 83

1 (5<10) #el resultado es true(verdadero) 2 (5>=10) #el resultado es false(falso) 3 ("hola"=="hola") #el resultado es true(verdadero) 4 (13!=7) #el resultado es true(verdadero)

Operadores de Asignacin Los operadores de asignacin se utilizan para bsicamente asignar un valor a una variable, as como cuando utilizamos el =. Los operadores de asignacin son =,+=,-=,*=,/=,**=,//=, a continuacin algunos ejemplos.

=, igual a, es el ms simple de todos y asigna a la variable del lado izquierdo cualquier variable o resultado del lado derecho. +=, suma a la variable del lado izquierdo el valor del lado derecho. Ejemplo: si a es igual a 5 y a+=10, entonces a ser igual a 15

-=, resta a la variable del lado izquierdo el valor del lado derecho. Ejemplo: si a es igual a 5 y a-=10, entonces a ser igual a -5 *=, multiplica a la variable del lado izquierdo el valor del lado derecho. Ejemplo: Si a es igual a 5 y a*=10, entonces a ser igual a 50

Resumen de la clase: Operadores aritmticos.


Lo que se vio en clase acerca de los operadores aritmticos de Python los cuales ofrecen un conjunto completo de operadores aritmticos, incluyendo los operadores binarios, para las cuatro operaciones matemticas bsicas: + suma - resta * multiplicacin / divisin 84

Adems, de muchos tipos de datos Python se pueden utilizar con operadores de asignacin aumentados como += y *=. Los operadores +, - y * tienen un comportamiento normal cuando ambos operandos son nmeros enteros. Ejemplos:

Ejemplo operadores aritmticos

Variaciones de la divisin

Ejemplo de operadores aumentados

Ejemplo Operadores aumentados con cadenas

Operadores aumentados con listas

85

Ejemplo de Asignacin aumentada de un objeto mutable

Asignacin aumentada con varios objetos iterables

Asignacin ampliada con cadena plana

Reflexionar: Qu cosas fueron difciles? Todo fue fcil aprender Cules fueron fciles? Como utilizar los operadores aritmticos Por qu? Porque la explicacin fue clara y se pudo entender. Qu aprend hoy? A aprender a utilizar los operadores aritmticos.

CLASE N: TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

13 PERODO 2 hora 27/05/13

27/05/2013 al 01/06/2013

Ing. Mariuxi Zea Elementos principales de Python


Desarrollar de acuerdo a lo que se vio en clase 86

Contenidos: 2.3. Entradas/Salidas

Objetivos de desempeo: Reconocer cuales son las entradas/salidas de IronPython.

Competencia General: Identifica cuales son las entradas y salidas

Datos interesantes discutidos: Actividades durante la clase Aplicacin de los temas dados y aplicarlos a ejercicios para un mejor entendimiento.

Descriptores analizados Resumen conceptual de lo que se vio: Entrada y Salida La "entrada" de un programa son los datos que llegan al programa desde el exterior (normalmente a travs del teclado) y la "salida" de un programa son los datos que el programa proporciona al exterior (normalmente en la pantalla del ordenador). Entrada de datos con raw_input:

La funcin raw_input nos permite de manera muy sencilla el ingreso de datos por parte del usuario. Veamos la estructura de la funcin:

Como vemos, la funcin raw_input recibe como parmetro un string (cadena de caracteres) que ser el mensaje que aparecer en pantalla antes de pedir el dato al usuario, esta funcin devuelve una cadena con lo ingresado por el usuario hasta que presiona la tecla enter, por lo que asignamos eso a una variable para poder utilizarlo. Veamos un ejemplo en el intrprete:

87

Como vemos al usar el raw_input se muestra en la pantalla el mensaje que elegimos y luego nos permitir escribir el dato en cuestin que luego podremos utilizar ya que lo guardamos en una variable, num en este caso.

Pero si vemos de qu tipo es num, nos dir que es un string ya que contiene una cadena como podemos ver a continuacin en el type(num):

Entonces para poder trabajar con el int guardado usamos la funcin int( ) que nos devuelve 13 en este ejemplo. Lo mismo se puede hacer para todos los tipos de datos slo que podran surgir errores si el usuario ingresa datos incorrectos y trabajamos con ellos, para esos casos veremos manejo de errores en prximas entradas.

Entrada de datos con input: Tambin existe la funcin input para pedir datos al usuario, su sintaxis es la misma que la de raw_input, slo que input pasa el valor directamente mientras que, como vimos, raw_input devuelve siempre un string.

88

Para

leer

un

string

con

input

el

usuario

debera

ingresarlo

entre

comillas.

Veamos el ejemplo anterior con esta funcin:

Salida de datos con print:

Para mostrar datos por pantalla utilizaremos la funcin print que ya vimos en algunos ejemplos de entradas anteriores. La sintaxis bsica de print en caso de querer mostrar un mensaje es:

Donde dentro del mensaje podemos utilizar los caracteres especiales que ya vimos para strings en entradas anteriores.

Mientras que si queremos mostrar el valor de una variable tenemos:

Una forma de colocar varias cadenas o intercalarlas con variables es la de colocarlas luego del print separadas por comas, con lo que la funcin agrega un espacio intermedio entre ellas. Veamos un ejemplo:

89

Donde en este caso tenemos dos variables que son strings, pero podramos tener variables de otro tipo, o utilizar mensajes directamente dentro del print como vemos a continuacin:

Otra forma es hacer uso de las posibilidades de formateo que nos permite Python. Esto se realiza mediante los especificadores de conversin que veremos a continuacin:

Y los utilizaremos para especificar el formato que tendr cada parte dentro del print. Veamos el ejemplo anterior realizado de esta manera:

90

Como vemos, colocamos los especificadores de conversin en el lugar donde van las variables y al final de la cadena colocamos % y especificamos, en orden, a qu variables se refieren esos especificadores. Tambin podramos realizar el mismo ejemplo colocando incluso el texto adicional a las variables mediante especificadores:

Resumen de la clase:

Entrada/Salida.
La "entrada" (input) de un programa son los datos que llegan al programa desde el exterior (normalmente a travs del teclado) La "salida" (output) de un programa son los datos que el programa proporciona al exterior (normalmente en la pantalla del ordenador). Hemos utilizado la funcin integrada print (), para poder visualizar nuestros mensajes Ejemplo:

91

Ejemplo del manejo input() y print()

Reflexionar: Qu cosas fueron difciles? Todo fue fcil aprender Cules fueron fciles? La entrada/salida Por qu? Porque la explicacin se la realizo de una manera clara y se lo pudo entender al tema. Qu aprend hoy? A aprender a utilizar las entradas/salidas.

92

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

14
2 horas

PERODO

27/05/2013 al 01/06/2013

27 de Mayo del 2013 Ing. Mariuxi Zea Elementos principales de Python: Entrada y Salida

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Elemento 7. Entrada / Salida

Objetivos de desempeo:

Reconocer que son las entradas y salidas en Python.


Competencia General:

Identificar cules son las entradas y salidas


Datos interesantes discutidos:

Actividades durante la clase Se explic acerca de los datos de entrada que el usuario ingresa por consola o desde archivos y salida tambin por consola o archivos.

Descriptores analizados

Entrada
93

Salida Datos Conversin.

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

ENTRADA/SALIDA.
Nuestros programas seran de muy poca utilidad si no fueran capaces de interaccionar con el usuario. funciones input() y raw_input() para pedir informacin Python ofrece la funcin integrada input() para aceptar la entrada desde el usuario. Esta funcin toma un argumento de cadena opcional (que muestra en la consola); despus espera hasta que el usuario escriba una respuesta y termina pulsando la tecla Enter. Si el usuario no escribe ningn texto y pulsa la tecla Enter, la funcin input() nos devolver una cadena vaca; si no es as, nos devolver una cadena que contiene lo que escribi el usuario, sin ninguna lnea de terminacin. Ejemplo:

94

Reflexionar: Qu cosas fueron difciles? No hubieron dificultades en esta clase. Cules fueron fciles? Tanto ingresar por teclado como presentar por pantalla datos y algunos datos numricos que eran necesarios convertirlos para presentar por pantalla. Por qu? Porque es bastante similar a otros lenguajes de programacin. Qu aprend hoy? A manejar tanto entrada como salidas teniendo en cuenta tambin las excepciones que se puedan ocasionar y as controlarlas.

95

2.5. Funciones de creacin y llamadas

SEMANA N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

14
5 Horas

PERODO

27/05/13 01/06/13

21/08/2013 Ing. Mariuxi Zea Funciones de creacin y llamadas

Desarrollar de acuerdo a lo que se vio en clase Contenidos:


Funciones de creacin y llamada.

Objetivos de desempeo:

Datos interesantes discutidos: Python ofrece los medios para encapsular los bloques como funciones que se puedan disear con los argumentos que pasen. Resumen conceptual de lo que se vio, incluyendo imgenes, etc. def nombreFuncin(argumentos): bloque El elemento argumentos es opcional y si hay varios argumento, tendrn que ir separados por comas. Cada funcin Python tiene un valor de retorno; por defecto es None a menos que devolvamos la funcin utilizando la sintaxis return value, en cuyo caso se devolver

96

value. El valor de retorno puede ser un solo valor o una tupla de valores. La funcin que llama puede ignorar el valor de retorno, y as desecharlo.

Reflexionar: Qu cosas fueron difciles? Entender que las funciones hace los mismo que los mtodos en otros lenguajes de programacin Cules fueron fciles? La sintaxis que tiene las estructuras de las funciones Por qu? Es muy simple de escribir

97

UNIDAD V: Tipos de Datos

98

2.6. Identificadores y palabras claves

SEMANA N:
TIEMPO: FECHA:

15
5 Horas

PERODO

27/05/13 01/06/13

21/08/2013 Ing. Mariuxi Zea

DOCENTE GUA:

TEMA DISCUTIDO:

Identificadores y palabras claves

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Identificadores y Palabras Claves. Objetivos de desempeo: Memorizar las palabras claves de Python y el correcto uso de los identificadores. Datos interesantes discutidos: Cuando creamos un elemento de datos podemos asignarlo a una variable o aadirlo a una coleccin, pero no debemos olvidarnos que al realizar asignaciones, lo que en realidad sucede es que forzamos a que una referencia de objeto apunte al objeto de la memoria que alberga los datos. Los nombres que damos a las referencias de objetos se denominan identificadores, o nombre.

99

Ningn identificador puede tener el mismo nombre que una palabra clave de Python, as que no podemos utilizar ninguno de los nombres que aparecen en la siguiente tabla: Resumen conceptual de lo que se vio, incluyendo imgenes, etc. Un identificador vlido es una secuencia de caracteres de cualquier tamao que no est vaca y que conste de un carcter de inicio y ninguno o ms caracteres a continuacin. Un identificador de este tipo debe seguir una serie de normas y convenciones. La primera norma se refiere a los caracteres de inicio y continuacin. El carcter de inicio puede ser cualquiera que Unicode considere como una letra, incluyendo las letras ASCII (a, b, , z, A, B, ,Z), la barra baja (_), as como las letras de la mayora de idiomas aparte del ingls. Cada carcter a continuacin, puede ser cualquier carcter que se permita como carcter de inicio, o cualquier carcter que no sea un espacio en blanco. Se incluye tambin a cualquier carcter que Unicode considere un dgito, como 0, 1, , 9. Los identificadores distinguen las maysculas, por ejemplo, TAXRATE, Taxrate, TaxRate, taxRate y taxrate son cinco identificadores diferentes. El conjunto de caracteres que se permiten para el inicio y la continuacin se describen en la documentacin, y en PEP1 3131 (Supporting Non-ASCII Identifiers, Soporte para identificadores distintos a ASCII) La segunda norma dice que ningn identificador puede tener el mismo nombre que una palabra clave de Python, as que no podemos utilizar ninguno de los nombres que aparecen en la siguiente tabla: Palabras claves And continue Except global lambda pass while

PEP (Python Enhancement Proposal) es una propuesta de mejora de Python. Si alguien desea modificar o ampliar Python, con el apoyo de la comunidad Python, enva un PEP con los detalles de su propuesta para que sea considerada formalmente. En algunos casos, como PEP 3131, se aceptan e incorporan. Se puede acceder a todos los PEP desde www.python.org/dev/peps

100

As Assert Break Class

Def Del Elif Else

False Finally for From

if import in is

None nonlocal not or

raise return True try

with yield

Anteriormente ya hemos revisado y utilizado algunas de estas palabras claves, excepto 11 de ellas como: assert, class, del, finally, from, global, lambda, nonlocal, raise, with y yield. La primera norma es: no utilizar ninguno de los nombres de los identificadores predefinidos en nuestros propios identificadores. Por lo tanto, evitemos utilizar NotImplemented y Ellipsis, As como el nombre de cualquier de los tipos de datos integrados (como int, float, list, str y tuple). Tampoco utilizaremos ninguna de las funciones o excepciones integradas.

Ahora bien, Cmo podemos saber si un identificador se encuentra en una de estas categoras?, pues bien, Python tiene una funcin integrada llamada dir() que devuelve una lista de los atributos de un objeto. Si se la llama sin argumentos, devolver la lista de los atributos integrados de Python, Ejemplo:

Figura 1. Funcin dir()

101

Figura 2. Resultado de la Funcin dir() El atributo __builtins__ (doble guin bajo) es un mdulo que alberga todos los atributos integrados de Python. Podemos utilizarlo como argumento de la funcin dir(). Ejemplo:

Figura 3. Resultado de funcin dir() con atributo __builtins__ Cuando utilizamos un identificador no vlido se produce una excepcin SyntaxError. Reflexionar: Qu cosas fueron difciles? Aprender las palabras claves, son difciles, y adaptarse al mecanismo o metodologa de trabajo de Python, cuando nos hemos acostumbrado a leguajes como Java y C Sharp. Cules fueron fciles? Entender, fue fcil comprender la lgica de Python con respecto al manejo de caracteres simples y llamado de funciones. Por qu? Porque Python es mucho ms simple a la hora de escribir. Qu aprend hoy? Algunas de las palabras claves de Python, caracteres especiales identificadores y su uso en funciones y bucles.

102

CLASE N: TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

16 1 hora

PERODO

27/05/2013 al 01/06/2013

31/05/2013 Ing. Mariuxi Zea O.

Tipos Integrales
Desarrollar de acuerdo a lo que se vio en clase

Contenidos:

Tipos Enteros Tipos Booleanos


Objetivos de desempeo: Indicar todas las funciones matemticas comunes y los operadores pueden utilizarse con valores enteros. Competencia General: Identificar e interpretar cada tipo de operador. Datos interesantes discutidos: Actividades durante la clase Se discutieron los temas, mediante un ejercicio aplicativo, a travs de la herramienta IronPython

103

Descriptores analizados Boole Numeros Enteros Numeros Reales Resumen Conceptual de lo que se vio: Tipos Integrales.
En Python los tipos bsicos se dividen en:

Nmeros, como pueden ser 3 (entero), 15.57 (de coma flotante) o 7 + 5j (complejos) . Cadenas de texto, como Hola Mundo Valores booleanos: True (cierto) y False (falso).

Vamos a crear un par de variables a modo de ejemplo. Una de tipo cadena y una de tipo entero: # esto es una cadena c = Hola Mundo # y esto es un entero e = 23 #podemos comprobarlo con la funcin type type(c) type(e) 104

Como veis en Python, a diferencia de muchos otros lenguajes, no se declara el tipo de la variable al crearla. En Java, por ejemplo, escribira-mos: String c = Hola Mundo; int e = 23; Este pequeo ejemplo tambin nos ha servido para presentar los comentarios inline en Python: cadenas de texto que comienzan con el carcter # y que Python ignora totalmente. Hay ms tipos de comenta-rios, de los que hablaremos ms adelante.

Nmeros
Como decamos, en Python se pueden representar nmeros enteros, reales y complejos.

Enteros
Los nmeros enteros son aquellos nmeros positivos o negativos que no tienen decimales (adems del cero). En Python se pueden repre-sentar mediante el tipo int (de integer, entero) o el tipo long (largo). La nica diferencia es que el tipo long permite almacenar nmeros ms grandes. Es aconsejable no utilizar el tipo long a menos que sea necesario, para no malgastar memoria. El tipo int de Python se implementa a bajo nivel mediante un tipo long de C. Y dado que Python utiliza C por debajo, como C, y a diferencia de Java, el rango de los valores que puede representar depende de la plataforma. En la mayor parte de las mquinas el long de C se almacena utilizando 32 bits, es decir, mediante el uso de una variable de tipo int de Python podemos almacenar nmeros de -231 a 231 - 1, o lo que es lo mismo, de -2.147.483.648 a 2.147.483.647. En plataformas de 64 bits, el rango es de 9.223.372.036.854.775.808 hasta 9.223.372.036.854.775.807. El tipo long de Python permite almacenar nmeros de cualquier precisin, estando limitados solo por la memoria disponible en la mquina. Al asignar un nmero a una variable esta pasar a tener tipo int, a menos que el nmero sea tan grande como para requerir el uso del tipo long.

# type(entero) devolvera int entero = 23


Tambin podemos indicar a Python que un nmero se almacene usan-do long aadiendo una L al final:

# type(entero) devolvera long entero = 23L


El literal que se asigna a la variable tambin se puede expresar como un octal, anteponiendo un cero: 105

# 027 octal = 23 en base 10 entero = 027


o bien en hexadecimal, anteponiendo un 0x:

# 017 hexadecimal = 23 en base 10 entero = 017 Reales


Los nmeros reales son los que tienen decimales. En Python se expresan mediante el tipo float. En otros lenguajes de programacin, como C, tenemos tambin el tipo double, similar a float pero de mayor precisin (double = doble precisin). Python, sin embargo, implementa su tipo float a bajo nivel mediante una variable de tipo double de C, es decir, utilizando 64 bits, luego en Python siempre se utiliza doble precisin, y en concreto se sigue el estndar IEEE 754: 1 bit para el signo, 11 para el exponente, y 52 para la mantisa. Esto significa que los valores que podemos representar van desde 2,2250738585072020 x 10-308 hasta 1,797693134862315710308. La mayor parte de los lenguajes de programacin siguen el mismo esquema para la representacin interna. Pero como muchos sabris esta tiene sus limitaciones, impuestas por el hardware. Por eso desde Python 2.4 contamos tambin con un nuevo tipo Decimal, para el caso de que se necesite representar fracciones de forma ms precisa. Sin embargo este tipo est fuera del alcance de este tutorial, y slo es necesario para el mbito de la programacin cientfica y otros relacionados. Para aplicaciones normales puedes utilizar el tipo float sin miedo, como ha venido hacindose desde hace aos, aunque teniendo en cuenta que los nmeros en coma flotante no son precisos (ni en este ni en otros lenguajes de programacin). Para representar un nmero real en Python se escribe primero la parte entera, seguido de un punto y por ltimo la parte decimal. real = 0.2703 Tambin se puede utilizar notacin cientfica, y aadir una e (de expo-nente) para indicar un exponente en base 10. Por ejemplo:

real = 0.1e-3
sera equivalente a 0.1 x 10-3 = 0.1 x 0.001 = 0.0001

Complejos
106

Los nmeros complejos son aquellos que tienen parte imaginaria. Si no conocas de su existencia, es ms que probable que nunca lo vayas a necesitar, por lo que puedes saltarte este apartado tranquilamente. De hecho la mayor parte de lenguajes de programacin carecen de este tipo, aunque sea muy utilizado por ingenieros y cientficos en general. En el caso de que necesitis utilizar nmeros complejos, o simplemente tengis curiosidad, os dir que este tipo, llamado complex en Python, tambin se almacena usando coma flotante, debido a que estos nmeros son una extensin de los nmeros reales. En concreto se almacena en una estructura de C, compuesta por dos variables de tipo double, sirviendo una de ellas para almacenar la parte real y la otra para la parte imaginaria. Los nmeros complejos en Python se representan de la siguiente forma:

complejo = 2.1 + 7.8j

Reflexionar: Qu cosas fueron difciles? No hubo dificultad en el tema, por su facilidad de comprensin y ms que todo fue demostrndose en el aula a travs de herramientas muy buenas. Cules fueron fciles? Lo fcil fue aplicar el tipo booleano a las prcticas realizadas en clase Por qu? Bueno, en realidad los temas de este da, estuvieron fciles de aplicar a las prcticas, y como los desarrollamos en la misma clase, pues el aprendizaje fue mayor. Qu aprend hoy? Aprend de qu manera puedo emplear los tipos integrales a mi programa, ya sean estos de tipo entero o booleano.

ya sean estos de tipo entero o booleano.


107

CLASE N: TIEMPO:

17

PERODO

03/06/2013 al 07/06/2013

2 horaS

FECHA:

03/05/2013

DOCENTE GUA:

Ing. Mariuxi Zea O.

TEMA DISCUTIDO:

Tipos de punto flotante

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Numeros de punto flotante Objetivos de desempeo: Indicar los nmeros flotantes dentro de la programacin en python. Competencia General: Interpretar e identificar los nmeros flotantes en el desarrollo de programas. Datos interesantes discutidos:

Actividades durante la clase

108

Se discutieron los temas, mediante un ejercicio aplicativo, a travs de la herramienta IronPython.

Descriptores analizados NUMEROS DE PUNTO FLOTANTE


Como la memoria de los ordenadores es limitada, no puedes almacenar nmeros con precisin infinita, no importa si usas fracciones binarias o decimales: en algn momento tienes que cortar. Pero cunta precisin se necesita? Y dnde se necesita? Cuntos dgitos enteros y cuntos fraccionarios? Para un ingeniero construyendo una autopista, no importa si tiene 10 metros o 10.0001 metros de ancho posiblemente ni siquiera sus mediciones eran as de precisas. Para alguien diseando un microchip, 0.0001 metros (la dcima parte de un milmetro) es una diferencia enorme pero nunca tendr que manejar distancias mayores de 0.1 metros. Un fsico necesita usar la velocidad de la luz (ms o menos 300000000) y la constante de gravitacin universal (ms o menos 0.0000000000667) juntas en el mismo clculo. Para satisfacer al ingeniero y al diseador de circuitos integrados, el formato tiene que ser preciso para nmeros de rdenes de magnitud muy diferentes. Sin embargo, solo se necesita precisin relativa. Para satisfacer al fsico, debe ser posible hacer clculos que involucren nmeros de rdenes muy dispares. Bsicamente, tener un nmero fijo de dgitos enteros y fraccionarios no es til y la solucin es un formato con un punto flotante. 109

Los nmeros de punto flotante se pueden convertir en enteros, como se mencion anteriormente, con la funcin int(), que devuelve la parte entera y se deshace de la parte fraccional. O se puede utilizar tambin la funcin round(), que informa la parte fraccional, o tambin con math.floor() o math.celi(), que redondean por arriba o por debajo segn se encuentre el entero ms cercano, Ejemplos:

Reflexionar: Qu cosas fueron difciles? No hubo dificultad en el tema, por su facilidad de comprensin y ms que todo fue demostrndose en el aula a travs de herramientas muy buenas. Cules fueron fciles? Lo fcil fue aplicar los nmeros de punto flotante a las prcticas realizadas en clase Por qu? Bueno, en realidad los temas de este da, estuvieron fciles de aplicar a las prcticas, y como los desarrollamos en la misma clase, pues el aprendizaje fue mayor. Qu aprend hoy? Aprend de qu manera puedo emplear los tipos de punto flotante como los nmeros de punto flotante a mi programa.

110

Desarrollar de acuerdo a lo que se vio en clase


CLASE N: TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO: 18 2 horaS 03/05/2013 Ing. Mariuxi Zea O. PERODO 03/06/2013 al 07/06/2013

Tipos de punto flotante

Contenidos: Numeros de punto flotante

Objetivos de desempeo: Indicar los nmeros flotantes dentro de la programacin en python. Competencia General: Interpretar e identificar los nmeros flotantes en el desarrollo de programas. Datos interesantes discutidos: Actividades durante la clase Se discutieron los temas, mediante un ejercicio aplicativo, a travs de la herramienta IronPython.

111

Descriptores analizados En la programacin, sea cual sea su lenguaje existen tres tipos de valores de punto flotante: los tipos float, complex (integrados) y decimal (de la librera estndar). Los tres son inmutables. El tipo float alberga nmeros de punto flotante de doble precisin, cuyo rango depende del compilador C (C# o Java) con el que fue creado Python; tiene un precisin limitada y no pueden realizar comparaciones de igualdad fiables. Este tipo de nmeros se escribe con un punto decimal, o utilizando la notacin exponencial.

Cuando combinamos dos tipos de datos de punto flotante obtenemos: int y float produce un valor float, float y complex produce valor complex; sin embargo, como los valores decimal.Decimal2 tienen la precisin fija, solo se pueden utilizar con otros valores

112

decimal.Decimal y con valores int; decimal.Decimal.

en el ltimo caso, se produce un resultado

Si se intenta realizar una operacin con tipos incompatibles, se

producir una excepcin TypeError.

NUMEROS DE PUNTO FLOTANTE


Como la memoria de los ordenadores es limitada, no puedes almacenar nmeros con precisin infinita, no importa si usas fracciones binarias o decimales: en algn momento tienes que cortar. Pero cunta precisin se necesita? Y dnde se necesita? Cuntos dgitos enteros y cuntos fraccionarios?

Para un ingeniero construyendo una autopista, no importa si tiene 10 metros o 10.0001 metros de ancho posiblemente ni siquiera sus mediciones eran as de precisas. Para alguien diseando un microchip, 0.0001 metros (la dcima parte de un milmetro) es una diferencia enorme pero nunca tendr que manejar distancias mayores de 0.1 metros.

Un fsico necesita usar la velocidad de la luz (ms o menos 300000000) y la constante de gravitacin universal (ms o menos 0.0000000000667) juntas en el mismo clculo.

Para satisfacer al ingeniero y al diseador de circuitos integrados, el formato tiene que ser preciso para nmeros de rdenes de magnitud muy diferentes. Sin embargo, solo se necesita precisin relativa. Para satisfacer al fsico, debe ser posible hacer clculos que involucren nmeros de rdenes muy dispares.

Bsicamente, tener un nmero fijo de dgitos enteros y fraccionarios no es til y la solucin es un formato con un punto flotante.

Los nmeros de punto flotante se pueden convertir en enteros, como se mencion anteriormente, con la funcin int(), que devuelve la parte entera y se deshace de la parte
113

fraccional. O se puede utilizar tambin la funcin round(), que informa la parte fraccional, o tambin con math.floor() o math.celi(), que redondean por arriba o por debajo segn se encuentre el entero ms cercano, Ejemplos:

Reflexionar: Qu cosas fueron difciles? No hubo dificultad en el tema, por su facilidad de comprensin y ms que todo fue demostrndose en el aula a travs de herramientas muy buenas. Cules fueron fciles? Lo fcil fue aplicar los nmeros de punto flotante a las prcticas realizadas en clase Por qu? Bueno, en realidad los temas de este da, estuvieron fciles de aplicar a las prcticas, y como los desarrollamos en la misma clase, pues el aprendizaje fue mayor. Qu aprend hoy? Aprend de qu manera puedo emplear los tipos de punto flotante como los nmeros de punto flotante a mi programa.

114

CLASE N: TIEMPO: FECHA: DOCENTE GUA:

19 2 horas

PERODO

03/06/2013 al 08/06/2013

05/06/2013 Ing. Mariuxi Zea

TEMA DISCUTIDO:

2.9. Cadenas 2.10. Ejemplos 2.11. Ejercicios Propuestos


Desarrollar de acuerdo a lo que se vio en clase

Contenidos: Objetivos de desempeo: Competencia General: Escribe el cdigo de acuerdo a las normas de Python. Utiliza los tipos y las colecciones de datos en la creacin de programas. Escribe programas utilizando las respectivas estructuras de control y controlando los errores que se pueden producir. Qu es una cadena? Uso de las comillas en cadenas Saltos de lnea de cadena Cadenas de caracteres complejas y cadenas crudas Funciones ord( ) y chr( ) Conocer la sintaxis que Python permite para el uso de cadenas de caracteres. Aplicar las funcionalidades de las cadenas a ejercicios propuestos.

Datos interesantes discutidos: Actividades durante la clase La docente explica cmo se debe trabajar con las cadenas de caracteres. Se desarrollan ejercicios de ejemplo para comprobar las funcionalidades. Descriptores analizados Cadena, caracteres, funciones, comillas, saltos de lnea.

115

Reflexionar: Qu cosas fueron difciles? Elaborar cadenas extensas en las que se utilizan todos los formatos, tales como comillas, barras, saltos de lnea y otros caracteres tiles. Cules fueron fciles? Aplicar a las cadenas formatos sencillos con varias comillas y comillas simple. Por qu? No implica ninguna complejidad ni secuencia de programacin. Qu aprend hoy? Que tambin es posible crear prrafos que incluyan comillas dentro de su escritura y presentacin en pantalla.

116

2.9. Cadenas Las cadenas las representa el tipo de datos inmutable str que permite almacenar una secuencia de caracteres UNICODE. Se puede llamar al tipo de datos str como a una funcin para crear objetos de cadena. Los literales de cadena se crean utilizando comillas, y que tenemos libertad para utilizar tanto las comillas simples como dobles, siempre y cuando utilicemos las mismas al inicio y al final. Adems podemos utilizar una cadena de comillas triple (en lenguaje Python se refiere a una cadena que comienza y finaliza con tres caracteres de comillas, simples o dobles). Python utiliza una nueva lnea ( \ ) como su sentencia de terminacin, excepto dentro de parntesis (), corchetes [], llaves {} o cadena de triple comilla . Se pueden utilizar nuevas lneas en cualquier literal de cadena con la secuencia salto de lnea \n. Todas las secuencias de salto de lnea de Python se muestran en la tabla siguiente: En algunas situaciones, tenemos que crear cadenas con muchas barras invertidas, esto puede llegar a ser un inconveniente ya que se debe saltar la lnea de cada una. Si queremos saber el valor entero que se asigna a un carcter en la codificacin Unicode, podemos utilizar las funcin ord( ). De forma parecida, podemos convertir cualquier valor entero que represente un punto de cdigo vlido en el carcter Unicode correspondiente, utilizando la funcin integrada chr( ). 2.10. Ejemplos Todos los ejemplos a continuacin fueron desarrollados en clase y describen cada una de las formas de utilizar las comillas para dar formato al texto presentado en pantalla de Python. Ejemplo 1 texto = """Una cadena con comillas triples puede incluir 'simples' y "dobles". tambien podemos saltar a la siguiente linea asi que esta cadena tiene dos lineas de largo""" print texto input()

Ejemplo 2
117

Salto de lnea solo para codificacin: texto = """Una cadena con comillas triples puede incluir 'simples' y "dobles". tambien podemos saltar a la siguiente linea asi que esta cadena tiene dos lineas de largo""" print texto input()

Ejemplo 3 Tambin podemos utilizar las comillas () de otra forma con un carcter de escape \ (backslash). Sirve para hacer algunas acciones. Por ejemplo aqu no toma en cuenta las comillas que tiene a lado: se salta hasta encontrar el siguiente. texto = """Una cadena con comillas triples puede incluir \ 'simples' y "dobles". tambien podemos saltar a la siguiente \ linea asi que esta cadena tiene dos lineas de largo""" print texto texto2 = "Las comillas 'simples', \"dobles\" en el texto" texto3 = 'Las comillas \'simples\', "dobles" en el texto' print texto2 print texto3 input()

Ejemplo 4 texto = """Una cadena con comillas triples puede incluir \ 'simples' y "dobles". tambien podemos saltar a la siguiente \ linea asi que esta cadena tiene dos lineas de largo""" print texto texto2 = "Las comillas 'simples', \"dobles\" en el texto" texto3 = 'Las comillas \'simples\', "dobles" en el texto' print texto2 print texto3 texto4 = "esto es una barra invertida: \\" texto5 = "esto es una ocmilla simple: ' y una comilla doble: \""
118

print texto4 print texto5 input()

Ejemplo 5 comparacion = "\"Juan\"" print comparacion input()

Ejemplo 6 texto = "Esta cadena esta escrita \n en varias lineas \n como ejemplo" print texto input()

Ejemplo 7 import re telefono = re.compile("^((?:[(]\\d+[)])?\\s*\\d+(?:-\\d+)?)$") telefono1 = re.compile(r"^((?:[(]\d+[)])?\s*\\d+(?:-\d+)?)$") print telefono print telefono1 input()

119

2.11. Ejercicios Propuestos

Ejercicio #1: Disee el algoritmo (en pseudocdigo) de un programa que: 1) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2) Muestre por pantalla el nmero en letras (dato cadena) de la cara opuesta al resultado obtenido. Nota 1: En las caras opuestas de un dado de seis caras estn los nmeros: 1-6, 2-5 y 3-4. Nota 2: Si el nmero del dado introducido es menor que 1 mayor que 6, se mostrar el mensaje: "ERROR: Nmero incorrecto.". En pantalla: Introduzca nmero del dado: 5 En la cara opuesta est el "dos". Introduzca nmero del dado: 8 ERROR: Nmero incorrecto. Ejercicio #2: Escribir un programa que calcule la nmina de un trabajador de la manera siguiente. El trabajador cobra un precio fijo por hora y se le retiene un 5% en concepto de IRPF. El programa debe pedir el nombre del trabajador, las horas trabajadas y el precio que cobra por hora. Como salida debe imprimir el sueldo bruto, la retencin y el sueldo neto.

120

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

21
2 Horas

PERODO

10/06/2013 al 15/06/2013

Mircoles, Viernes 14 de Junio del 2013 Ing. Mariuxi Zea Ordoez Colecciones de Tipos de Datos.

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Tipos de secuencias. Objetivos de desempeo: Conocer los diferentes tipos de secuencias que se pueden utilizar al crear programas en el lenguaje de programacin Python. Competencia General: Identificar las normas que controlan la codificacin Python. Datos interesantes discutidos: Actividades durante la clase

Explicacin sobre algunos tipos de datos secuenciales en el lenguaje de programacin Python. Practica de laboratorio.
Descriptores analizados

Listas Tuplas Listas por comprensin


Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

Tipos de secuencias.- se pueden definir secuencias de valores de cualquier tipo: enteros, flotantes, cadenas. Estas secuencias se llaman listas. Las listas pueden contener elementos de distintos tipos incluso pueden contener listas.
121

Tipos de Secuencias

Listas

Tuplas

Listas por comprensin

Se definen utilizando corchetes "[]" separadas por comas ","

Se definen utilizando corchetes "()" separadas por comas ","

Es una expresion y un bucle con condicion opcional entre corchetes "[]"

Listas.- se definen utilizando el corchete y los elementos se separan con comas.


lista[-2] 22 lista[0] lista[-3] True lista[1] lista[-2] Danilo lista[2] lista[-1] [1,2] lista[3]

Ejemplo de creacin de listas: Lista = [20, True, Danilo,[1,2]] Donde Lista es una variable de tipo lista que contiene cuatro elementos. Lista[0] es un dato de tipo entero 20 Lista[1] es un dato de tipo boolean True Lista[2] es un dato de tipo string Danilo Lista[3] es una lista de tipo lista formada por 2 enteros.
Lista.extend(["Loaiza","Aguilar"]) #Se agregaran datos a la Lista print Lista Lista.remove(True) #Se eliminaran los datos de la lista que sea True print Lista #Se mostrara los datos que estn desde la posicin lista[1] hasta un dato antes de la posicin lista[-1] 122

print Lista[1:-1]

En las tuplas tambin se pueden definir secuencias de valores. Tuplas.- los datos dentro de una tupla se definen separados por comas, por ejemplo: Tupla = 20, Danilo, True Tupla aninada.- se puede agregar una tupla dentro de otra tupla. Tupla2 = Tupla,(Loaiza,Aguilar)

123

Reflexionar: Qu cosas fueron difciles? Entender cmo se trabaja con los diferentes atributos que tienen las listas o las tuplas en el lenguaje de programacin Python. Cules fueron fciles? Entender como las listas y tuplas pueden recibir valores de diferentes tipos, ejemplo: string, enteros, listas. Por qu? Es confuso entender como Python tiene agregado algunos atributos para hacer manejo de las listas y las tuplas. Qu aprend hoy? Con las prcticas de laboratorio se han esclarecido dudas sobre los problemas que existan en la comprensin de manejo de listas y tuplas.

124

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMAS DISCUTIDOS:

22

PERODO

10/06/2013 15/06/2013

2:00 Horas ? Ing. Mariuxi Zea. 2.14. Tipos de agrupacin 2.15. Circular y copiar colecciones

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Tipos de conjuntos. Objetivos de desempeo: Conocer los diferentes tipos de conjuntos que se pueden utilizar al crear programas en el lenguaje de programacin Python. Competencia General: Identificar las normas que controlan la codificacin Python. Datos interesantes discutidos: Actividades durante la clase

Explicacin sobre algunos tipos de datos de conjunto que se puede crear en el lenguaje de programacin Python. Practica de laboratorio.
Descriptores analizados

Agrupacin Diccionarios
Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

Tipos de conjuntos.

125

Tipos de Conjuntos

Agrupacin

Diccionario

Son colecciones de elementos clave y suministran mtodos para acceder a sus elementos

Coleccin desordenada de valores claves y su valor

Python incluye un tipo de dato para los conjuntos. Un conjunto es una coleccin desordenada sin elementos duplicados. Los usos bsicos incluyen la comprobacin de pertenencia y la eliminacin de elementos duplicados. Los objetos conjunto disponen tambin de operaciones matemticas como la unin, interseccin, diferencia, etc. Ejemplo de aplicacin:

126

Diccionarios. Un diccionario es una coleccin desordenada de ninguno o pares de ms valores claves, son mutables por lo que fcilmente se pueden aadir o eliminar elementos. Sin embargo, como estn desordenados, no tienen posiciones del ndice, y no se pueden trocear ni recorrer. Podemos crear diccionarios utilizando llaves. Con unas llaves vacas, {}, se crea un diccionario vaco; las llaves que no se encuentren vacas tienen que tener uno o ms literales separados por comas, cada uno ser una clave, un literal de punto y un valor. Otra forma de crear diccionarios es con un diccionario por comprensin. Ejemplo de creacin de un diccionario: diccionario = dict({"id":1984, "nombre":"Danilo","Edad":20}) del diccionario*Edad+

Reflexionar: Qu cosas fueron difciles? Entender cmo se trabaja con los conjuntos en el lenguaje de programacin Python. Cules fueron fciles? Entender como las listas y tuplas pueden recibir valores de diferentes tipos, ejemplo: string, enteros, listas. Por qu? Es confuso entender como Python realiza la agrupacin de los datos para as formar conjuntos. Qu aprend hoy?

127

Con las prcticas de laboratorio se han esclarecido dudas sobre los problemas que existan en la comprensin de la agrupacin en conjuntos.

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

23
2 horas

PERODO

17/06/2013 al 21/06/2013

Mircoles, 19 de Junio del 2013 Ing. Mariuxi Zea Ordoez, Mg. Sc.

Colecciones de tipos de datos 2.16. Ejemplos 2.17. Ejercicio

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Manejar los tipos de datos y las colecciones de datos. Utilizar los tipos y las colecciones de datos en la creacin de programas.

Competencia General: Datos interesantes discutidos: Actividades durante la clase Explicacin por parte del docente de los temas a tratar durante la clase, explicacin detallada y con ejemplos del manejo de los tipos de datos, ejercicio propuesto aplicando lo enseado en clase. Descriptores analizados Sistemas
128

Usuarios Hardware Software

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

129

Podemos comparar tuplas utilizando los operadores de comparacin estndar (<, >, >=,<=, !=, ==), en las comparaciones que hacemos elemento a elemento, y con frecuencia, en los elementos anidados como tuplas dentro de tuplas. Ejemplos:
paises = ("Ecuador", "Bolivia") print paises paises += ("Venezuela", "Colombia") print paises paises *= 2 print paises print "Colombia" in paises

Ahora, revisemos el operador de troceado para extraer un elemento o una porcin (trozo) de elementos.
paises = ("Ecuador", "Venezuela", "Bolivia", "Colombia") print paises print paises [3] print paises[-3:] print paises[1:] input()

Estos ejemplos funcionan igual tanto para las cadenas, listas como para cualquier otro tipo de secuencias. Si quisiramos unir dos o ms tuplas, utilizamos el operador de concatenacin (+), sin embargo si el cdigo est escrito de la siguiente manera:
paises = ("Ecuador", "Venezuela", "Bolivia", "Colombia") print paises print paises[:2] , ("Per", "Paraguay") , paises[2:] input()

130

Figura 4. 3-Tupla

Lo que realmente obtenemos es 3-tupla compuesta por 3 tuplas. Para obtener 1-tupla dicha concatenacin se debe escribir:
paises = ("Ecuador", "Venezuela", "Bolivia", "Colombia") print paises print paises[:2] + ("Per", "Paraguay") + paises[2:] input()

Consideremos que para hacer una tupla, se debe utilizar comas, sin embargo, cuando utilizamos una cadena, no nos permitir ya que no se puede concatenar tuplas con cadenas, en este caso recibiramos una excepcin TypeError. A partir de este momento, cuando se trate de tuplas, utilizando un estilo particular, se podr omitir los parntesis, cuando existan tuplas en lado izquierdo de un operador binario, o en el lado derecho de una sentencia unitaria, omitiremos los parntesis. En el resto de los casos utilizaremos parntesis. Ejemplos:
x,y = (1,2) #a la izquierda del operador binario print x print y del x,y # a la derecha de la sentencia unitaria input()

No es obligatorio seguir este tipo de codificacin, algunos programadores utilizan siempre parntesis, mientras que otros solo lo utilizan cuando es estrictamente necesario. Ahora revisemos algunos ejemplos de tuplas:
europa = ("Italia", "Espaa", "Portugal", "Suiza") america = ("Ecuador", "Venezuela", "Colombia", "Bolivia") paises = (europa, america)

131

print paises print paises[0] print paises[1] print paises[1][2:] #troceado de tuplas print paises[0][-3:] input()

En este ejemplo hemos anidado dos tuplas dentro de otra tupla.

132

Reflexionar: Qu cosas fueron difciles? Llevar a la prctica todo lo explicado en clase. Cules fueron fciles? La explicacin del tema a tratar por parte del docente. Por qu? Fue difcil porque el tiempo establecido era muy corto para poner en prctica los temas vistos, es decir no se pudo practicar en la computadora todo lo visto en clases. Fue fcil porque se explic detalladamente. Qu aprend hoy? Colecciones de tipos de datos, el manejo de lo tipos de datos su respectivo uso en la creacin de programas.

133

UNIDAD VI: Estructuras de control y funciones

134

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

24
horas

PERODO

24/06/2013 al 28/06/2013

Lunes, 28 de Junio del 2013 Ing. Mariuxi Zea Ordoez, Mg. Sc.

Estructuras de control y funciones

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Objetivos de desempeo: Analizar las estructuras de control y la forma de producir excepciones. Crear excepciones Escribir programas utilizando las respectivas estructuras de control y controlando los errores que se pueden producir. Competencia General: Datos interesantes discutidos: Actividades durante la clase Explicacin por parte del docente de los temas a tratar durante la clase, explicacin detallada y con ejemplos de las estructuras de control, ejemplos aplicando lo enseado en clase. Descriptores analizados Sistemas Usuarios
135

Hardware Software

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

Estructuras de control y funciones Seleccion if Condicin es de tipo booleano, y cuando sta se cumple se ejecuta el bloque. if condicion: bloque if else Condicin es de tipo booleano, cuando sta se cumple se ejecuta el bloque 1, cuando no se cumple se ejecuta el bloque 2. if condicion: bloque 1 else: bloque 2 Adems, tenemos la siguiente estructura, que abrevia el if else if: if elif [else] if condicion 1:
136

bloque 1 elif condicion 2: bloque 2 elif condicion 3: bloque 3 else: bloque 4 Ejemplos 1). num = input('Ingrese un numero: ') if (num < 0): num = num * (-1) print 'El valor absoluto del numero ', num, ' es ', num

2). num = input('Ingrese un numero: ') if (num % 2 == 0): print 'El numero ', num, ' es par.' else: print 'El numero ', num, ' es impar.'

3). a=2 b=5 if (a > b): print a, ' es mayor a ', b elif (b > a):
137

print b, ' es mayor a ', a else: print a, ' es igual a ', b Iteracin Para realizar bucles, Python nos proporciona dos estructuras. for for i in range(0,cant): bloque Se ejecuta el bloque cant veces, comenzando la variable i adoptando el valor 0; en las siguientes iteraciones el valor se va incrementando hasta tomar el valor cant-1. Sin embargo, el for en Python permite iterar no solo sobre progresiones aritmticas, sino que recorre los elementos de una secuencia, ya sea lista o cadena, en el orden en que estos aparecen en la misma. La funcin range se emplea para generar una lista de enteros range(10) se corresponde con la lista : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], ya que el valor final indicado no es parte de la lista generada. Se puede hacer que la lista comience en un nmero dado: range(4,10) [4, 5, 6, 7, 8, 9]: incluso se puede modificar el incremento (step) range(-2,-10,-2) [-2, -4, -6, -8]

138

while El bucle while se ejecuta mientras la condicin sea cierta, si la condicin es falsa al inicio, el bloque no se ejecuta y se pasan a ejecutar las sentencias que le siguen. En Python, cualquier valor entero distinto de cero es verdadero y 0 es falso. La condicin tambin puede ser una lista o cualquier secuencia, siendo la secuencia vaca falsa. El cuerpo del bucle debe estar identado, ya que de este modo Python agrupa las sentencias. while condicion: bloque Reflexionar: Qu cosas fueron difciles? Llevar a la prctica todo lo explicado en clase. Cules fueron fciles? La explicacin del tema a tratar por parte del docente. Por qu? Fue difcil porque el tiempo establecido era muy corto para poner en prctica los temas vistos, es decir no se pudo practicar en la computadora todo lo visto en clases. Fue fcil porque se explic detalladamente. Qu aprend hoy? Analizar las estructuras de funcin y la forma de producir excepciones mediante el uso de programas controlando los errores que se pueden producir.

139

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

25
5 Horas 24/06/13

PERODO

24/06/2013 al 29/06/2013

Ing. Mariuxi Zea 2.19. Manejo de excepciones

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Manejo de Excepciones
Objetivos de desempeo:

Identificar y Crear una excepcin en lenguaje de Programacin Python.


Competencia General:

Analizar las estructuras de control y la forma de crear y producir excepciones.


Datos interesantes discutidos: Actividades durante la clase

Prctica de laboratorio Ejercicios propuestos


Descriptores analizados

try except

140

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

2.19

Manejo bsico de excepciones.

Las excepciones en s mismas, son distintos tipos de errores que puede generar un programa, es decir, son un comportamiento no esperado, que se produjo como consecuencia de una ejecucin no planificada, dentro del programa. De aqu se deduce, que las excepciones no son un comportamiento deseado en la programacin, ya que hacen que los programas se vuelvan inseguros y poco confiables, adems de inestables. Por esto mismo, existe el Manejo de Excepciones que, actualmente, es implementado por muchos lenguajes diferentes. Manejar una excepcin, significa que un programa puede tolerar la ocurrencia de ciertos errores durante su corrida, y seguir ejecutndose, teniendo un comportamiento especial para cada tipo de error (y tambin, segn la necesidad del programa o del programador, segn el lugar donde ocurre). Esto hace que el programa se vuelva confiable, ya que al no interrumpirse la ejecucin, hay menos posibilidad de prdida de datos, haciendo que el software sea ms estable y eficiente. En resumen, el manejo de excepciones es una estructura de control diseada para manejar condiciones anormales que pueden ser tratadas por el mismo programa que se desarrolla: al producirse una excepcin se desciende en la pila de ejecucin hasta encontrar un manejador para la excepcin, el cual toma el control en ese momento. Excepciones en Python En Python hay algunas palabras reservadas que permiten controlar las excepciones, elevarlas, y atraparlas, para generar un comportamiento especializado. Estas palabras generan bloques que contienen sentencias: - try: esta palabra es la base, y genera un bloque que agrupa las sentencias que pueden llegar a producir un error en tiempo de ejecucin. - except tipoDeExcepcion: esto es el manejador de las excepciones, y controla slo el tipo de excepcin que se le ha especificado en su llamada; si no tiene un tipo determinado, atrapa cualquier excepcin eque se lance. Genera un bloque que agrupa las sentencias que se deben ejecutar en caso de atrapar esa excepcin. Los manejadores se buscan en el orden en que estn escritos, es decir, que si primero aparece el manejador universal, y luego el de un tipo especfico, todas las excepciones se atraparn en el primero que pueda manejarlo; por esto mismo, si se va a colocar un except: sin tipos de

141

excepciones, debe colocarse luego de todos los otros que s tengan tipos de excepciones especificados. -else: como si se tratara de un if-else, ste bloque agrupa un conjunto de sentencias, las cuales se ejecutan si no se ha generado ninguna excepcin. -finally: esta palabra reservada genera un bloque que se ejecuta s o s: es decir, las sentencias contenidas dentro del finally son aquellas que se ejecutan tanto si se atrapa una excepcin, como si no se genera ninguna. -raise: a diferencia de las otras, esta palabra no genera un bloque, sino que permite elevar una excepcin, ante un comportamiento no deseado del programa. La excepcin, ser atrapada por el manejador que le corresponda. Siempre deben ir dentro de un bloque try: ya que si se lanzan desde otro lado, la excepcin inmediatamente se elevar hacia el siguiente try, si es que est includa en uno, o directamente mostrar el mensaje de error. Puede usarse con la funcin Excepcion(nombreExcepcion,mensajeQueMostrar).

Ejemplo:

Reflexionar: Qu cosas fueron difciles? Una pequea confusin en una variable hizo confundir un poco el tema de Excepciones. Cules fueron fciles? 142

Los ejemplos fueron una manera fcil de poder entender el try-except

Por qu? Porque con la prctica se puede observar errores y corregirlos y as tenemos ms nocin de lo que es la programacin de Python. Qu aprend hoy? Acerca de las Excepciones, el comando try-except.

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

26
2 horas 26/06/13

PERODO

24/06/2013 al 29/06/2013

Ing. Mariuxi Zea Elementos principales de Python Desarrollar de acuerdo a lo que se vio en clase

Contenidos:

Funciones Diseadas Elementos de Python


Objetivos de desempeo:

Definir las funciones en python

Competencia General:

Identificar cules son las funciones

Datos interesantes discutidos: Actividades durante la clase

Aplicacin de la creacin de funciones

Descriptores analizados

def

143

Resumen conceptual de lo que se vio:

2.20 Funciones diseadas


Una funcin es un fragmento de cdigo con un nombre asociado que realiza una serie de tareas y devuelve un valor. A los fragmentos de cdigo que tienen un nombre asociado y no devuelven valores se les suele llamar procedimientos. En Python no existen los procedimientos, ya que cuando el programador no especifica un valor de retorno la funcin devuelve el valor None, equivalente al null de Java. Adems de ayudarnos a programar y depurar dividiendo el programa en partes las funciones tambin permiten reutilizar cdigo. En Python las funciones se declaran de la siguiente forma: def mi_funcion(param1, param2): print param1 print param2 Es decir, la palabra clave def seguida del nombre de la funcin y entre parntesis los argumentos separados por comas. A continuacin, en otra lnea, intentado y despus de los dos puntos tendramos las lneas de cdigo que conforman el cdigo a ejecutar por la funcin. Tambin podemos encontrarnos con una cadena de texto como primera lnea del cuerpo de la funcin. Estas cadenas se conocen con el nombre de docstring (cadena de documentacin) y sirven, como su nombre indica, a modo de documentacin de la funcin. def mi_funcion(param1, param2): """Esta funcion imprime los dos valores pasados como parametros""" print param1 print param2 Al declarar la funcin lo nico que hacemos es asociar un nombre al fragmento de cdigo que conforma la funcin, de forma que podamos ejecutar dicho cdigo ms tarde referencindolo por su nombre. Es decir, a la hora de escribir estas lneas no se ejecuta la funcin. Para llamar a la funcin (ejecutar su cdigo) se escribira: mi_funcion("hola", 2) Es decir, el nombre de la funcin seguido de los valores que queramos pasar como parmetros entre parntesis. La asociacin de los parmetros y los valores pasados a la funcin se hace normalmente de izquierda a derecha: como a param1 le hemos dado un valor hola y param2 vale 2, mi_funcion imprimira hola en una lnea, y a continuacin 2. 144

Sin embargo tambin es posible modificar el orden de los parmetros si indicamos el nombre del parmetro al que asociar el valor a la hora de llamar a la funcin: mi_funcion(param2 = 2, param1 = "hola") El nmero de valores que se pasan como parmetro al llamar a la funcin tiene que coincidir con el nmero de parmetros que la funcin acepta segn la declaracin de la funcin. Ejemplo:

Reflexionar: Qu cosas fueron difciles? Un poco acerca de su funcionalidad Cules fueron fciles? La lgica que utiliza def Por qu? Porque siempre siguen una misma forma Qu aprend hoy? Funciones en Python

145

UNIDAD VII: Programacin de Base de Datos

146

CLASE N: TIEMPO: FECHA: DOCENTE GUA:

27 5 horas

PERODO

04/07/2013 al 17/07/2013

04/07/2013 ING. MARIUXI PAOLA ZEA ORDOEZ, MG. SC.

3. Programacin de Base de Datos


TEMA DISCUTIDO:

3.1.

Base de datos DBM

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Introduccin a Base de datos DBM Que es una conexin Ventajas del DBM Objetivos DBM
Objetivos de desempeo:

Conocer sobre base de datos DBM para mejor entendimiento.


Competencia General:

Gestionar la informacin sobre Base de Datos DBM


Datos interesantes discutidos:

Actividades durante la clase Explicacin sobre el tema, interrelacin entre profesora / alumno. Contestacin de preguntas realizadas

Descriptores analizados
DBM, Conexin, Base de datos, Lenguajes de programacin.

147

Resumen conceptual de lo que se vio, incluyendo imgenes, etc.


Un DBM (data base manager) es un conjunto de programas que se encargan de manejar la creacin y todos los accesos a las bases de datos. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta.

Una de las ventajas del DBM es que puede ser invocado desde programas de aplicacin que pertenecen a Sistemas Transaccionales escritos en algn lenguaje de alto nivel, para la creacin o actualizacin de las bases de datos, o bien para efectos de consulta a travs de lenguajes propios que tienen las bases de datos o lenguajes de cuarta generacin.

El objetivo del DBM es servir de interfaz entre la base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta.

Algunos ejemplos de DBM son Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc.

Un DBM debe permitir: Definir una base de datos: especificar tipos, estructuras y restricciones de datos. Construir la base de datos: guardar los datos en algn medio controlado por el mismo. Manipular la base de datos: realizar consultas, actualizarla, generar informes.

DBM es una solucin perfectamente satisfactoria para bases de datos esencialmente de slo lectura, o juegos de datos pequeos y sencillos. Sin embargo, para juegos de datos ms potentes y escalables, no se puede mencionar bloqueos transaccionales robustos, a los usuarios se les recomienda usar DBI.

148

Reflexionar: Qu cosas fueron difciles? No se tuvo ninguna dificultad en entender el tema sobre el DBM. Cules fueron fciles? Entender su conceptualizacin para su posterior utilizacin. Por qu? Porque as podemos implementarlo en posteriores ejercicios. Qu aprend hoy? A definir un DBM que se utiliza como interfaz entre el la base de datos, el usuario CLASE N: TIEMPO: FECHA: DOCENTE GUA: 28 5 horas 04/07/2013 ING. MARIUXI PAOLA ZEA ORDOEZ, MG. SC. 3.Programacin de Base de Datos 3.1. Base de datos SQL PERODO 04/07/2013 al 17/07/2013

TEMA DISCUTIDO: y las aplicaciones.

Desarrollar de acuerdo a lo que se vio en clase Contenidos: Base de datos SQL Clasificacin de las Base de Datos Descripcin de cada BD Tipos de conexiones Objetivos de desempeo: Aprender a realizar conexiones a bases de datos utilizando MySQL server, SQL server y Pg-Admin lll Postgres con el lenguaje de programacin Python.
149

Competencia General: Conectar una Base de Datos con el lenguaje de programacin. Gestionar la informacin de la Base de Datos. Datos interesantes discutidos: Actividades durante la clase Exposicin de los compaeros sobre base de datos Contestacin de preguntas realizadas Resolucin de un programa Explicacin sobre el tema, interrelacin entre profesora / alumno.

Descriptores analizados Base de datos, MySQL server, SQL server y Pg-Admin lll Postgres, conexin, lenguajes de programacin, cdigo.

Resumen conceptual de lo que se vio, incluyendo imgenes, etc. Clasificacin de las Base de Datos Las bases de datos se clasifica en: Conexin a base de datos mediante sql server Conexin a base de datos mediante mysql Conexin a base de datos mediante pgadmin lll - postgresql

Descripcin de cada BD CONEXIN A BASE DE DATOS MEDIANTE SQL SERVER La conexin con SQL Server Database Engine (Motor de base de datos de SQL Server) incluye estos elementos: Instalar protocolos de red en los equipos servidor y cliente. Los protocolos de red son una caracterstica del sistema operativo y se instalan y configuran mediante herramientas de Microsoft Windows. Para obtener informacin acerca de la instalacin y configuracin de protocolos de red, vea la documentacin de Windows o pngase en contacto con el administrador de red. Habilitar y configurar Motor de base de datos para escuchar en uno o varios protocolos de red.
150

Utilice el Administrador de configuracin de SQL Server para habilitar los protocolos que desee utilizar. Para obtener ms informacin, vea Configuracin de red del servidor. Una vez habilitado, Motor de base de datos recibe comunicaciones relacionadas con las bases de datos desde los equipos cliente formateadas por SQL Server Native Client. SQL Server Native Client tambin se instala normalmente en el servidor para que lo utilicen las herramientas locales de SQL Server. Instalar SQL Server Native Client en cada equipo cliente. SQL Server Native Client (SQLNCLI10) es una tecnologa de acceso a datos nueva en Microsoft SQL Server; es una interfaz de programacin de aplicaciones (API) independiente para el acceso a datos utilizada para OLE DB y para ODBC. Combina el proveedor OLE DB de SQL y el controlador ODBC de SQL en una biblioteca de vnculos dinmicos (DLL) nativa, a la vez que proporciona una funcionalidad nueva independiente de Microsoft Data Access Componentes (MDAC). Utilice el Programa de instalacin de SQL Server para instalar SQLCLI como parte de las herramientas de SQL Server. Para obtener ms informacin acerca de las bibliotecas de red, vea Protocolos. Habilitar y configurar cada equipo cliente para que se conecte mediante el protocolo que desee. Una vez instalado, utilice el Administrador de configuracin de SQL Server para habilitar los protocolos e indicar el orden en que se utilizarn cuando se intente una conexin. Para obtener ms informacin, vea Configuracin de red de cliente. CONEXIN A BASE DE DATOS MEDIANTE MYSQL

Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos. MySQL es un sistema de gestin de bases de

datos relacional, Multihilos y multiusuario con ms de seis millones de instalaciones. En el sitio web de MySQL pueden descargarse archivos de texto con datos de ejemplo y algunas de las sentencias empleadas en las siguientes secciones. Se encuentran disponibles en formato tar. Puede crear e ingresar datos a la tabla del ejemplo utilizando estas sentencias: mysql> CREATE TABLE shop ( -> article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL, -> dealer CHAR(20) DEFAULT '' NOT NULL, -> price DOUBLE(16,2) DEFAULT '0.00' NOT NULL, -> PRIMARY KEY(article, dealer)); mysql> INSERT INTO shop VALUES
151

-> (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45), -> (3,'C',1.69),(3,'D',1.25),(4,'D',19.95); Luego de ejecutar estas sentencias, la tabla debera tener el siguiente contenido: mysql> SELECT * FROM shop; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0001 | A | 3.45 | | 0001 | B | 3.99 | | 0002 | A | 10.99 | | 0003 | B | 1.45 | | 0003 | C | 1.69 | | 0003 | D | 1.25 | | 0004 | D | 19.95 | +---------+--------+-------+

CONEXIN A BASE DE DATOS MEDIANTE PGADMIN LLL - POSTGRESQL Muchas veces necesitamos un cliente de base de datos para trabajar mejor. En este caso vamos a conectar una base de datos postgresql ubicada en Windows. Si queremos conectar PgAdmin con una base de datos postgresql que no estn en el mismo equipo debemos configurar los siguientes archivos de postgresql. Lo primero que debemos hacer es modificar el siguiente archivo, haciendo antes un backup de l: sudo nano /etc/postgresql/8.2/main/postgresql.conf Aqu vamos a modificar unas cuantas lineas. Lo primero es descomentar la siguiente linea : #listen_addresses = localhost y sustituir su valor por lo siguiente: listen_addresses = * Con esto indicamos que el listado de direcciones que pueden conectarse a postgresql son todas (Tambin podamos indicar una direccin especfica). Luego buscamos la siguiente linea y la descomentamos quitando #:
152

#password_encryption = on Una vez hecho esto guardamos y reiniciamos el servicio postgresql: sudo /etc/init.d/postgresql-8.4 restart Tambin tenemos que configurar el siguiente archivo para permitir conexiones desde otro equipo. sudo gedit /etc/postgresql/8.2/main/pg_hba.conf Aqui, al final del archivo tenemos que modificarlo para que quede de la siguiente manera: #local is for Unix domain socket connections only local all all # IPv4 local connections: host all all md5 0.0.0.0/0 md5

Con esto tendramos todo configurado para permitir las conexiones, solo nos quedara reiniciar el servicio postgresql y comprobar que todo esta correcto sudo /etc/init.d/postgresql-8.4 restart Para comprobar que todo funciona vamos a PgAdmin y creamos una nueva conexin, all rellenamos los datos con la ip del servidor donde esta postgresql y el usuario y a probar suerte.

Tipos de conexiones Las conexiones que se pueden realizar y se explicaron en clase mediante cualquier base de datos anteriormente mencionados son: Por medio de consola Por medio de formularios Por medio de cdigo.

153

CLASE N: TIEMPO: FECHA: DOCENTE GUA:

29 5 horas

PERODO

04/07/2013 al 17/07/2013

04/07/2013 ING. MARIUXI PAOLA ZEA ORDOEZ, MG. SC. 3.Programacin de Base de Datos

TEMA DISCUTIDO:

3.2.

Base de datos SQL

Desarrollar de acuerdo a lo que se vio en clase


Contenidos: Objetivos de desempeo:
Aprender a realizar conexiones a bases de datos utilizando MySQL server, SQL server y Pg-Admin lll Postgres con el lenguaje de programacin Python.

Competencia General:
Conectar una Base de Datos con el lenguaje de programacin. Gestionar la informacin de la Base de Datos.

Datos interesantes discutidos:

Actividades durante la clase Exposicin de los compaeros sobre base de datos Contestacin de preguntas realizadas Resolucin de un programa Explicacin sobre el tema, interrelacin entre profesora / alumno.

154

Descriptores analizados
Resumen conceptual de lo que se vio, incluyendo imgenes, etc.
CONEXIN A BASE DE DATOS MEDIANTE SQL SERVER

Microsoft SQL Server es un sistema para la gestin de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL. Lista de instaladores que debemos utilizar Debemos instalar el SQL server 2008 Creacin de la Base de Datos pata SQL Server 2008 1. Abrimos el programa

2. Conectamos al servidor local

155

3. Creamos una nueva base de datos

156

4. Creamos una nueva tabla, en la cual ponemos los campos que vamos a utilizar

5. Guardamos la tabla

Conexin a base de datos SqlServer mediante consola

1. Creamos un nuevo proyecto en SharpDevelop

157

Elegimos la opcin Console Application 2. Se procede a realizar la conexin mediante cdigo import clr clr.AddReference('System.Data') from System.Data import * from System.Data import DataTable

print "Cargando...." try: Connection = SqlClient.SqlConnection("Data Source=CRISTHIAN-PC;Initial Catalog=Cliente;Integrated Security=True") Connection.Open() print "Conexion Realizada" raw_input() except:
158

print "\nNo se ha podido establecer coneccion con el servidor.\n" raw_input()

#Funcion para ingresar datos en la tabla

def ingresar():

#Solicitamos el ingresos de los datos y las almacenamos en sus repectivas variables print "\nIngrese los datos que se le solicitan a continuacion: \n" id = raw_input("ID: ") nombre = raw_input("Nombre: ") apellido = raw_input("Apellido: ") cedula = raw_input("Cedula: ")

try: Connection = SqlClient.SqlConnection("Data Source=CRISTHIAN-PC;Initial Catalog=Cliente;Integrated Security=True") Connection.Open() action = SqlClient.SqlCommand("INSERT INTO DATOS(id, nombre, apellido, cedula) VALUES ('"+id+"','"+nombre+"','"+apellido+"','"+cedula+"')",Connection) reader = action.ExecuteReader() except: print"Error al ingresar" RegresarMenu()

def mostrar(): try: Connection = SqlClient.SqlConnection("Data Source=CRISTHIAN-PC;Initial Catalog=Cliente;Integrated Security=True")

159

Connection.Open() #Preparamos la consulta, para seleccionar todos los registros de la tabla action = SqlClient.SqlCommand("SELECT *FROM DATOS",Connection) reader = action.ExecuteReader() while reader.Read(): print(reader[0], reader [1], reader [2], reader[3]) raw_input() except: print"Error al mostrar" RegresarMenu()

def RegresarMenu(): print " " raw_input ("\nPresione cualquier tecla para regresar al menu anterior...")

Menu()

def Menu():

print """ ________________________________________________________________________

Opciones disponibles : ________________________________________________________________________

1. - Ingresar Registros en la Tabla. 2. - Consultar todos los Registros en la base de datos. 3. - Finalizar el programa. ________________________________________________________________________

160

"""

try: opcion = int(raw_input("Ingrese el numeral correspondiente a su eleccion: ")) except:

print "\nError: El valor ingresado no es de tipo numerico, por favor vuelva a intentarlo." RegresarMenu()

try:

if opcion == 1: ingresar() elif opcion == 2: mostrar() elif opcion == 3: print "El programa se esta cerrando..." raw_input() try: Connection.close() exit() except: exit else: print "Error: El valor ingresado esta fuera de rango." RegresarMenu()

except:

161

print "\nError." RegresarMenu()

Menu()

Probamos guardar un registro

Conexin a Base de Datos SqlServer mediante Formularios 1. Creamos un solucin de tipo Windows application de python

162

2. Creamos el formulario

163

3. Codificamos el cdigo que vamos a utilizar Importamos la librera clr, luego aadimos la referencia import clr clr.AddReference('System.Data') def BtnguardarClick(self, sender, e):

try: Connection = SqlClient.SqlConnection("Data Source=ANDRES-PC;Initial Catalog=DATOS;Integrated Security=True") Connection.Open()

ced = str(self._txtcedula.Text) valores = [ int(ced[x]) * (2 - x % 2) for x in range(9) ] suma = sum(map(lambda x: x > 9 and x - 9 or x, valores)) cedula = str(int(ced[9]) == 10 - int(str(suma)[-1:]))

if (cedula == "True"): id=self._txtid.Text nombre=self._txtnombre.Text apellido=self._txtapellido.Text action = SqlClient.SqlCommand("INSERT INTO DATOS(id, nombre, apellido, cedula) VALUES ('"+id+"','"+nombre+"','"+apellido+"','"+ced+"')",Connection) reader = action.ExecuteReader() MessageBox.Show("REGISTRO ALMACENADO SATISFACTORIAMENTE")

else:

164

MessageBox.Show("POR FAVOR VERIFIQUE SU No DE CEDULA")

except IOError,e:

MessageBox.Show(str(e))

def BtnlimpiarClick(self, sender, e):

self._txtid.Text="" self._txtnombre.Text="" self._txtapellido.Text="" self._txtcedula.Text=""

def BtnsalirClick(self, sender, e):

exit()

def BtnlistarClick(self, sender, e): try: Connection = SqlClient.SqlConnection("Data Source=ANDRES-PC;Initial Catalog=DATOS;Integrated Security=True") com = SqlClient.SqlDataAdapter("SELECT * FROM DATOS",Connection) t = DataTable() com.Fill(t) self._registros.DataSource = t except IOError as e: MessageBox.Show(str(e))

165

166

CONEXIN A BASE DE DATOS MEDIANTE MYSQL

MySQL es

un sistema

de

gestin ms de

de seis

bases millones

de de

datos relacional, Multihilo y multiusuario con instalaciones.

1. Realizamos la instalacin de los instaladores que vamos a utilizar para realizar la conexin desde Python a MySQL, la instalacin no tiene ningn orden.

Lista de Instaladores que deberemos Instalar

Instalacin de mysql-connector-python-1.0.11-py3.3: Instalacin mysql-5.5.32-win32 Instalacin mysql-gui-tools-5.0-r17-win32 Instalacin mysql-connector-net-6.7.4 Instalacin de IronPython-2.7.3 Instalacin de mysql workbench-gpl-5.2.47-win32

Una vez que se ha terminado con la instalacin procedemos a realizar lo siguiente: Verificamos si el servicio del servicio de MySQL se ha levantado correctamente, para lo cual

167

Creacin de la Base de datos para MySQL

Abrimos la Base de datos para lo cual debemos ingresar el password que utilizamos al momento de la instalacin.

168

1. Creamos la Base de datos con sus respectivos campos

Nombre de la tabla

Campos a utilizar

169

Conexin a base de datos MySQL mediante Consola


1. Creamos un nuevo Proyecto 2. Copiamos el MySql.Data.dll que se encuentra en la ruta donde se instala MySQL C:\Program Files (x86)\MySQL\MySQL Connector Net

6.7.4\Assemblies\v2.0 a la ruta donde se creo el proyecto en nuestro caso a la ruta C:\Users\Gianella\Documents\SharpDevelop

Projects\MySqlConsole\MySqlConsole

3. Agregamos la referencia

170

4. Codificamos el cdigo a utilizar para realizar la conexin de base de datos de MySQL a Python import clr clr.AddReference("MySql.Data") from MySql.Data import * from MySql.Data.MySqlClient import *

def listar(): try: print "\nListado desde la Base de Datos" connectionString = "Server=localhost;Database=prueba;User
171

ID=root;Password=johnlomas;" cone = MySqlClient.MySqlConnection(connectionString) s = "select * from prueba" cmd = MySqlClient.MySqlCommand(s, cone) cone.Open() reader = cmd.ExecuteReader() while reader.Read(): print(reader[0], reader [1], reader [2], reader[3]) cone.Close() print "\n" except MySqlException as ex: print str(ex) raw_input() except Error as err: print str(err) raw_input()

def insertar():

try: print "\n" id = input("Ingrese el Id: ") nombre = raw_input("Ingrese su nombre: ") apellido = raw_input("Ingrese su apellido: ") cedula = raw_input("Ingrese su cedula: ") connectionString = "Server=localhost;Database=prueba;User ID=root;Password=johnlomas;" cone = MySqlClient.MySqlConnection(connectionString) s = "INSERT INTO prueba(idprueba, nombre, apellido, cedula) VALUES

172

('"+str(id)+"','"+str(nombre)+"','"+str(apellido)+"','"+str(cedula)+"')" cmd = MySqlClient.MySqlCommand(s, cone) cone.Open() cmd.ExecuteNonQuery() cone.Close() print "\n\tINGRESADO SATISFACTORIAMENTE\n" raw_input()

except MySqlException as ex: print str(ex) raw_input() except Error as err: print str(err) raw_input()

try: print "Conexion a MySql"

while True: print "Seleccione una opcion:" print "1.- Listar" print "2.- Insertar" print "3.- Salir" op = raw_input("Ingrese la opcion que desea: ")

if 1 == int(op): listar()

if 2 == int(op):

173

insertar()

if "3" == op: break

print("Fin del Programa") raw_input()

except Error as err: print str(err) raw_input()

5. Ejecucin de la conexin

174

Conexin a base de datos MySQL mediante Formulario


1. Creamos un nuevo Proyecto 2. Copiamos el MySql.Data.dll que se encuentra en la ruta donde se instala MySQL C:\Program Files (x86)\MySQL\MySQL Connector Net

6.7.4\Assemblies\v2.0 a la ruta donde se creo el proyecto en nuestro caso a la ruta C:\Users\Gianella\Documents\SharpDevelop

Projects\MySqlConnect\MySqlConect 3. Agregamos las referencias

175

4. Codificamos el cdigo a utilizar para realizar la conexin de base de datos de MySQL a Python

import System.Drawing import System.Windows.Forms from System.Drawing import * from System.Windows.Forms import * import clr clr.AddReference("MySql.Data") clr.AddReference("System.Data") from MySql.Data import * from MySql.Data.MySqlClient import * from System.Data import DataTable

class MainForm(Form):

def __init__(self): self.InitializeComponent() self.lista = []

176

def btnListar Click(self, sender, e): pass

try: Connection = MySqlClient.MySqlConnection("Server=localhost;"+"Database=prueba;"+"User ID=root;" +"Password=johnlomas;") com = MySqlClient.MySqlDataAdapter("SELECT * FROM prueba", Connection) t = DataTable() com.Fill(t) self._registros.DataSource = t except MySqlException,e: MessageBox.Show(str(e))

def btnnuevoClick(self, sender, e): self._txtId.Text = "" self._txtNombre.Text = "" self._txtApellido.Text = "" self._txtCedula.Text = ""

def btnsalirClick(self, sender, e): exit()

def btnguardarClick(self, sender, e): id = self._txtId.Text nombre = self._txtNombre.Text apellido = self._txtApellido.Text

177

cedula = self._txtCedula.Text try: connectionString = "Server=localhost;"+"Database=prueba;"+"User ID=root;" +"Password=johnlomas;" cone = MySqlClient.MySqlConnection(connectionString) cone.Open() MessageBox.Show("conectados si") accion = MySqlClient.MySqlCommand("INSERT INTO prueba(idprueba, nombre, apellido, cedula) VALUES ('"+id+"','"+nombre+"','"+apellido+"','"+cedula+"')",cone) MessageBox.Show("sentencia") reader = accion.ExecuteNonQuery() MessageBox.Show("ejecuta sentencia") MessageBox.Show("REGISTRO ALMACENADO SATISFACTORIAMENTE") cone.Close() except MySqlException as ex: MessageBox.Show("error: " + str(ex)) 5. Ejecucion

178

Conexin a base de datos mediante pgAdmin lll - PostgreSQL

PostgreSQL es un SGBD relacional orientado a objetos y libre, publicado bajo la licencia BSD.

179

Como muchos otros proyectos de cdigo abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyados por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group). Instalacin de PostgreSQL: Para poder realizar una conexin desde Python a postgresql vamos a realizar lo siguiente: 1. Instalamos postgressql

2. Al iniciar la instalacin nos va a aparecer el asistente para su configuracin.

3. Escogemos el directorio de la instalacin, podemos elegir el que nos aparece por defecto o podemos crear un nuevo directorio.

180

4. Seleccionamos el directorio de datos y damos clic en siguiente.

5. Asignamos una contrasea para ( POSTGRES)

181

6. Seleccionamos el nmero de puerto es nuestro caso dejamos el nmero de puerto que nos aparece por defecto.

182

7. Realizamos la configuracin regional, esta se debe seleccionar de acuerdo a nuestro idioma y pas.

183

Con esta configuracin proceder a la instalacin.

184

185

186

187

Una vez que se ha terminado con la instalacin procedemos a realizar lo siguiente:


Creamos una base de datos de pgAdmin ll-Postgre:

1. Abrimos PostgreSQL

2. Abrimos la conexin PostgreSQL 9.1 (86) (localhost:5433), nos pedir la contrasea que pusimos en la instalacin de PostgreSQL.

3. Creamos una Nueva Base de Datos con los campos que vamos a utilizar.

188

Base de datos creada, con registros

Conexin a base de datos PostgreSQL mediante consola


1. Creamos un nuevo Proyecto en SharpDevelop:

189

Seleccionamos console application, y procedemos a ponerle un nombre y a crear el nuevo proyecto

190

2. Copiamos monosecurity.dll y npgsql.dll que se encuentra en la ruta que se cre cuando instalamos Postgres en nuestro caso la ruta: C:\Program Files (x86)\PostgreSQL\Npgsql

Estos .dll las copiamos dentro del Proyecto que creamos en nuestro caso al directorio Projects\Conexion_PostgreSQL. C:\Users\Gianella\Documents\SharpDevelop

191

3. Una vez que agregamos los .dll procedemos a agregar las referencia para lo cual damos clic derecho y agregar referencia

192

4. Seleccionamos la pestaa .NET Assembly Browser y Browser

5. Abrimos la ubicacin del Proyecto y seleccionamos las referencias que vamos a aadir.

193

6. Una vez que ya hemos agregado la referencia procedemos a realizar nuestra conexin por medio de consola, para ello utilizamos el siguiente cdigo import clr clr.AddReference('Npgsql') from Npgsql import *

try: connectionString = "Server=127.0.0.1;Port=5432;Database=prueba;User Id=postgres;Password=angel;" cone = NpgsqlConnection(connectionString) cone.Open() print("**Conexin abierta**\a \a")
194

accion = NpgsqlCommand("SELECT * FROM usuarios;", cone) reader = accion.ExecuteReader() print("**Ejecucion de la sentencia SQL**\a \a") while reader.Read(): print(reader[0], reader [1], reader [2], reader[3]) cone.Close() print("**Conexin cerrada** \a \a")

except NpgsqlException as ex: print(str(ex))

raw_input()

195

Conexin a Base de Datos PostgresSQL mediante Formularios


1. Creamos un proyecto

2. Copiamos los .dll desde Postgres a la ruta donde creamos nuestro Proyecto

196

3. Agregamos las referencias

197

Seleccionamos la pestaa .NET Assembly Browser y Browser

Abrimos la ubicacin del Proyecto y seleccionamos las referencias que vamos a aadir.

198

Creamos el Formulario con el que vamos a trabajar:

199

Codigo que vamos a utilizar:

def BtnsalirClick(self, sender, e):

exit()

def BtnlimpiarClick(self, sender, e): self._txtid.Text="" self._txtnombre.Text="" self._txtapellido.Text="" self._txtcedula.Text=""

def BtnguardarClick(self, sender, e): id=self._txtid.Text nombre=self._txtnombre.Text apellido=self._txtapellido.Text ced=self._txtcedula.Text try: connectionString = "Server=127.0.0.1;Port=5433;Database=prueba;User Id=postgres;Password=angel;" MessageBox.Show("conex") cone = NpgsqlConnection(connectionString) MessageBox.Show("conctadox") cone.Open() MessageBox.Show("conectados si") accion = NpgsqlCommand("INSERT INTO usuarios(id_usu, nom_usu, ape_usu, cedula) VALUES ('"+id+"','"+nombre+"','"+apellido+"','"+ced+"');",cone)

200

MessageBox.Show("sentencia") reader = accion.ExecuteReader() MessageBox.Show("ejecuta sentencia") MessageBox.Show("REGISTRO ALMACENADO SATISFACTORIAMENTE")

except NpgsqlException as ex: MessageBox.Show("error: " + ex)

def BtnlistarClick(self, sender, e): try: connectionString = "Server=127.0.0.1;Port=5433;Database=prueba;User Id=postgres;Password=angel;" cone = NpgsqlConnection(connectionString) com = NpgsqlDataAdapter("SELECT * FROM usuarios",cone) t = DataTable() com.Fill(t) self._registros.DataSource = t except IOError as e: MessageBox.Show(str(e))

201

Reflexionar: Qu cosas fueron difciles? Realizar la conexin en los diferentes lenguajes Cules fueron fciles? La creacin de los formularios y dela base de datos. Por qu?

202

Porque necesitbamos tenerlos creados la base de datos y los formularios para la conexin respectiva con las diferentes lenguajes. Qu aprend hoy? Ah realizar las conexiones por medio de cdigo, consola y mediante formularios. Anexar escaneado de los apuntes.

203

UNIDAD VIII: Introduccin a la programacin GUI

204

CLASE N:
TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

29
5 Horas.

PERODO

08/07/2013 al 22/07/2013

08 de Julio del 2013. Ing. Mariuxi Zea Ordoez.

Introduccin a la programacin GUI

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Programas con estilo de cuadro de dialogo. Programas con estilo de ventana de Windows.
Objetivos de desempeo: Investigar sobre las propiedades de los formularios, los diferentes cuadros de dialogo que existen y los diferentes formas de ejecucin de los formularios. Competencia General: Manejar controles que se pueden utilizar para que la interfaz grfica sea amigable. Interesantes discutidos: Actividades durante la clase.

Explicacin sobre los propiedades de los formularios y cuadros de dilogos de SharpDevelop. Practica de laboratorio.
Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

MANEJO DE FORMULARIOS Vamos a trabajar con el programa de Sharp Develop 4.3, lo ejecutamos.

205

La manera ms fcil de Ejecutarlo es ir a la barra de Inicio y buscar Sharp Develop 4.3, y listo.

INICIANDO SHARPDEVELOPER Lo que se debe hacer es abrir el SharpDevelop 4.3 y nos aparecer la siguiente ventana.

Luego se le da clic Archivo >Nuevo >Solucin .

Luego en la ventana siguiente que nos aparezca debemos escoger una categora Python
206

y seleccionamos en Plantillas la que diga Aplicacin Windows como se muestra en la siguiente figura y le damos clic en el botn crear.

Una observacin primordialmente es aconsejable escoger el .NET FRAMEWORK4.

Luego de estos pasos ya se tendr creado el new Proyecto o Solucin y nos aparecer de la siguiente manera.

207

Nos aparecer en modo cdigo del formulario, para

cambiarnos

al

modo

diseo simplemente se debe dar clic en el botn Diseo y nos cambiara al modo diseo.

. Luego nos aparece de la siguiente manera que es modo de diseo en el cual se ver el Form.

Aqu tenemos un pequeo cdigo de cmo crear un TextBox y una label.


208

import System.Drawing import System.Windows.Forms from System.Drawing import * from System.Windows.Forms import * class MainForm(Form): def __init__(self): self.InitializeComponent() def InitializeComponent(self): self._label1 = System.Windows.Forms.Label() self._textBox1 = System.Windows.Forms.TextBox() self.SuspendLayout() # # label1 self._label1.Location = System.Drawing.Point(12, 18) self._label1.Name = "label1" self._label1.Size = System.Drawing.Size(69, 40) self._label1.TabIndex = 0 self._label1.Text = "label1" # # textBox1 self._textBox1.Location = System.Drawing.Point(87, 18) self._textBox1.Name = "textBox1" self._textBox1.Size = System.Drawing.Size(100, 20) APARIENCIA DEL FORMULARIO

Ahora modificaremos la apariencia del form, para esto trabajaremos con las propiedades del mismo.

209

Para cambiar de color de fondo del form se puede jugar con la gama decolores que tiene: Haciendo clic en BackColor en la flechita de a la do se despliega una ventana con varias opciones decolores, de los cuales podemos escoger el de mayor agrado.

Al

form

tambin se le puede ubicar una imagen de fondo .

Para realizar esto vamos a la ventana de propiedades y buscamos la opcin BackgroudImage y damos clic en los puntos suspensivos que estn ah. Seguidamente se abrir una ventana en la cual tendremos que marcarla opcin Recurso Local y damos clic en el botn Importar.

210

Se abrir una nueva ventana donde buscaremos la imagen q vamos a poner de fondo y damos clic en abrir.

Ahora vemos cmo va aparecer la imagen y damos clic en el botn Ok

Y ahora se puede observar que el form y a tiene una imagen de fondo.


211

Pero hay un error al momento de colocar una imagen por medio de controles, no nos permite, porque al momento de ejecutar no aparece el formulario, lo que hay que hacer es por medio de cdigo, que es el siguiente. Primero tenemos que tener la imagen , que queramos poner en nuestro formulario, copiada en la carpeta de nuestro proyecto que estamos trabajando. El cdigo es el siguente: self.BackgroundImage=Image.FromFile(System.IO.Path.Combine( barcelona.jpg"))

El cdigo nos busca en la carpeta de nuestro proyecto , la imagen deseada. CAMBIAR EL TIPO DE CURSOR. Tambin podemos cambiar la apariencia del Cursor de nuestro proyecto. En la ventana propiedades, se ubica en la opcin Cursor y en la flechita que est a lado se da clic y se desplegara una ventana con varias opciones de cursor. El cual usted podr elegir el que desee.

212

CAMBIAR EL BORDE DEL FORM Ahora para cambiar el borde del formulario nos dirigimos a la ventana de propiedades y vamos a la opcin de FormBorderStyle y en la flechita ubicada a lado derecho se despliega una lista de estilos de los que se podr escoger de acuerdo al gusto.

TAMAODELFORMULARO Pues bien ahora para cambiar de tamao a nuestro form vamos a propiedades y nos ubicamos en Size y cambiamos los valores del recuadro buscando el tamao deseado.

213

POSICIONAMIENTO DELFORMULARIO Para ubicar el formulario en la pantalla al momento de la ejecucin debemos seguir los siguientes pasos:

En la ventana propiedades buscamos la opcin StartPosition por defecto viene WindowsDeafaultLocation para cambiar esta opcin , se despliega una lista con las diferentes posiciones que se le puede dar al form, que podr escoger.

CAMBIARELTTULODEL FORMULARIO Para cambiar el titulo del formulario se busca la Propiedad Text .

214

Tambin podemos cambiar el Nombre por medio del cdigo.

Le modificamos en la parte que dice self.Text y simplemente le ingresamos el nombre deseado. CAMBIAR EL ICONO DEL FORMULARIO. Una vez estando en las propiedades vamos hasta la opcin Estilo de Ventana y se desplegara un submen en el cual estar la opcin Icon como se muestra a continuacin:

215

Luego de haberle dado click al botn de icono, nos aparecer la siguiente ventana en el cual vamos a elegir el icono deseado. OK

Se colocara en la parte superior como se muestra a continuacin.

COLOCARLE OPACIDAD AL FORMULARIO

Una vez creador el Proyecto y teniendo ya nuestro from para colocarle opacidad al formulario realizamos lo siguiente:
216

En las propiedades vamos hasta la opcin Estilo de Ventana y se desplegara un submen en el cual estar la opcin Opacity comose muestra a continuacin:

Lo que realiza esta propiedad es colocarle Transparencia al momento de ejecucin de nuestro Formulario, con el que estemos trabajando.

CUADROS DE DIALOGO

217

Un cuadro de dilogo es un tipo de ventana que permite comunicacin simple entre el usuario y el sistema informtico. El tipo cuadro de dilogo ms simple nicamente informa al usuario, es decir que muestran un texto (y eventualmente objetos grficos) y ofrece la opcin de cerrar el cuadro. Un ejemplo es un cuadro de error. Luego existen cuadros de pregunta o confirmacin, que adems de mostrar informacin ofrecen alternativas al usuario. La ms sencilla es una opcin binaria como aceptar / cancelar o permitir / impedir. Ahora vamos a explicar los cuadros de dialogo que se utilizan en ShareDevelop, segn los botones que presentan:

Cuadro de Dialogo AbortRetryIgnore (Anular/Reintentar/Omitir) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn:

218

void Button1Click(object sender, EventArgs e) { MessageBox.Show("El dispositivo aun esta en uso", "Mensaje de Informacion", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Information); }

Cuadro de Dialogo Ok (Aceptar) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn: void Button2Click(object sender, EventArgs e) { MessageBox.Show("La instalacin fue exitosa!", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information); }

219

Cuadro de Dialogo OkCancel (Aceptar/Cancelar) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn: void Button3Click(object sender, EventArgs e) { MessageBox.Show("Error en la Ejecucin", "Mensaje de Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); }

Cuadro de Dialogo RetryCancel (Reintentar/Cancelar) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn: void Button4Click(object sender, EventArgs e) { MessageBox.Show("El registro no se logro borrar", "Mensaje de Informacion", MessageBoxButtons.RetryCancel, MessageBoxIcon.Exclamation); }

220

Cuadro de Dialogo YesNo (Si/No) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn: void Button5Click(object sender, EventArgs e) { MessageBox.Show("Desea guardar los cambios realizados", "Mensaje de Pregunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question); }

Cuadro de Dialogo YesNoCancel (Si/No/Cancelar) Dentro de un botn, le agregamos un evento de accin para que se active al momento de hacerle clic y muestre su resultado. Copiamos el siguiente cdigo dentro del botn:

221

void Button6Click(object sender, EventArgs e) { MessageBox.Show("Desea guardar el registro antes de salir", "Mensaje de Advertencia", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);

ANEXO Y ESCANEADO

CLASE N: TIEMPO: FECHA: DOCENTE GUA: TEMA DISCUTIDO:

29 5 Horas.

PERODO

08/07/2013 al 22/07/2013

08 de Julio del 2013. Ing. Mariuxi Zea Ordoez. Introduccin a la programacin GUI

Desarrollar de acuerdo a lo que se vio en clase 222

Contenidos:

Programas con estilo de ventana de Windows.


Objetivos de desempeo: Investigar sobre las propiedades de los formularios, los diferentes cuadros de dialogo que existen y los diferentes formas de ejecucin de los formularios. Competencia General: Manejar controles que se pueden utilizar para que la interfaz grfica sea amigable. Interesantes discutidos: Actividades durante la clase.

Explicacin sobre los propiedades de los formularios y cuadros de dilogos de SharpDevelop. Practica de laboratorio.
Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

Programas con estilo de ventana de Windows A continuacion veremos de manera detalla como manejar las diferentes formas de ejecucion de formularios. Primeramente vamos a crear un nuevo proyecto para poder realizar la practica, para esto vamos a utilizar el IDE de SharpDEveloper.

223

Una vez creado una nueva solucin tendremos una interfaz como la siguiente que vemos a continuacin. Cabe recalcar que tenemos que agregar los formularios con que vamos a trabajar. Para agregar un nuevo formulario nos ubicamos en el nombre del proyecto/solucin luego damos clic en la opcin addy luego en new item

Luego nos aparecer un cuadro de dialogo en el que podemos elegir lo que deseamos crear en este caso elegimos form, le damos un nombre que va representar el formulario y damos clic en crate.

Luego que tengamos creado todos los formularios necesarios tendremos un ventana como la que vamos a mostrar a continuacion.
224

A continuacin procederemos con las diferentes opciones de ejecucin de un formulario

Llamar a otro formulario desde la misma ruta


Primero que nada en el form principal del proyecto, crearemos 4 botones los cuales nos servirn para poder demostrar las diferentes opciones de ejecucin de un formulario. Como parte del cdigo en el form principal debemos tener lo siguiente. Importar el formulario A: from FormA import * Luego en el evento clic del botn formulario A codificamos lo siguiente f=FormA() f.Show()

225

LLAMAR A OTRO FORMULARIO OCULTANDO EL FORMULARIO PRINCIPAL. Desde el formulario principal importamos elform D from FormC import * Y dentro del evento del evento clic del botn formulario C codificamos Self.Hide() f=FormC() f.Show() Y para que al cerrar el formulario 2 se vuelva a abrir el principal, en el formulario 2 tenemos que codificar en el enventoclosing del form C. import MainForm self.Hide() f = MainForm.MainForm() f.Show()

226

Hasta que no cerremos el form C no se presentara el formulario principal

LLAMAR A OTRO FORMULARIO DESDE OTRA RUTA O CARPETA. Como requisito para llamar un formulario que est en otra carpeta, se debe de crear un clase(por lo general vaca) con el nombre __init__.py (subguion,subguion initsubguion, subguion).py .Para que as esa carpeta sea reconocida como paquete python.. Clic derecho en la carpeta, add, new item.

227

Escogemos Empty File y damos el nombre __init__.py y clic en Create

Ahora tenemos que codificar en el formulario principal from formularios.FormD import * Luego en el evento clic del botn Formulario D codificamos lo siguiente f=FormD() f.Show()

228

LLAMAR A OTRO FORMULARIO SIN PODER ACCEDER AL PRINCIPAL HASTA QUE SE CIERRE EL FORMULARIO LLAMADO. Importamos el formulario B de la siguiente manera. from FormB import * En el evento clic codificamos f=FormB() f.ShowDialog()

229

Una vez que cerremos el form B se nos habilitara el form principal

FORMULARIOS MDI
La base de una Aplicacin con Interfaz de mltiples documentos (MDI) es el formulario primario MDI. Este formulario es el que contiene las ventanas MDI secundarias, que son las "subventanas" dentro de las cuales los usuarios interactan con la aplicacin MDI. La creacin de un formulario MDI primario resulta sencilla, tanto en el Diseador de Windows Forms como mediante programacin. Para crear un formulario MDI primario en tiempo de diseo

1. Crear un proyecto de aplicacin para Windows. Para obtener ms informacin,

2. vea Cmo: Crear un proyecto de aplicacin para Windows.


230

Una vez creado tendremos algo parecido a esto:

3. En la ventana Propiedades, establezca la propiedad IsMDIContainer en true.


231

La apariencia de nuetro formulario quedara de la siguiente manera:

Realizamos un diseo del formulario que usaremos:

232

Del cual iremos llamados a cada formulario dependiendo de las opciones. ANEXO Y ESCANEADO

233

UNIDAD IX: Manejo de Eventos

234

CLASE N:
TIEMPO:
FECHA: DOCENTE GUA: TEMA DISCUTIDO:

30
5 Horas.

PERODO

22/07/2013 al 27/07/2013

22 de Julio del 2013. Ing. Mariuxi Zea Ordoez.


Principales controles Propiedades.

Desarrollar de acuerdo a lo que se vio en clase Contenidos:

Principales controles. Propiedades.


Objetivos de desempeo: Crear interfaces grficas amigables y flexibles. Competencia General: Manejar controles que se pueden utilizar para que la interfaz grfica sea amigable. Interesantes discutidos: Actividades durante la clase.

Explicacin sobre los principales controles y propiedades de Shardevelop. Practica de laboratorio. Ejercicios propuestos.
Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

Control TIMER
La clase Timer es la interfaz de los temporizadores, que permiten ejecutar cdigo en una secuencia temporal especificada.
235

Aplicacin: En la siguiente prctica se mostrara una manera de trabajar con el control TIMER y para hacerlo de dispondr un formulario de la siguiente manera:

Como podemos ver contamos con dos botones, y un label. En el Label1 actualizara su texto al resultado del timer, o sea se va a amostrar el reloj. En el Button1 se va a encontrar la

funcionalidad del programa, este al momento de cargar el Form tiene el texto Empezar, al darle click empezara a correr el tiempo del TIMER y su texto cambiara a Detener, si se presiona de en Button1 nuevamente se detendr el timer y cambiara el texto del botn a Empezar. Si empezamos de nuevo el timer este acoger el tiempo actual del sistema que se mostrara en el label1. El Button2 es para salir de la aplicacin.

236

Codigo:

237

Al momento de cargar el Form inicializaremos los controles con nuevos valores para que puedan ser vistos por el usuario, asignamos a la propiedad Interval del Timer un valor de 1000, este valor esta dado en milisegundos por lo que 1000 representa a un segundo.

En el Evento Click del Button1 ponemos la condicin si su texto es Empezar que empiece el timer con su mtodo Start() lo que le permite arrancar y luego cambia la propiedad texto del Boton a 238

Detener. Caso Contrario Se detiene el timer con su mtodo Stop() y cambia la propiedad text del Boton a Detener.

En el evento click del Botton2 solo llama al mtodo Close() del Form para cerrar la aplicacin.

El evento Tick() del Timer1 se activa por cada intervalo de tiempo que declaramos antes. En este evento asignaremos la hora de sistema en ese momento a la propiedad text del label1. 239

Controles OpenFileDialog y SaveFileDialog OpenFileDialog:

Representa un cuadro de dilogo comn que permite al usuario especificar un nombre de archivo para abrir uno o varios archivos.
SaveFileDialog: Representa un cuadro de dilogo comn que permite al usuario especificar un nombre de archivo para guardar un archivo con ese nombre.

Aplicacin: La siguiente aplicacin nos permite cargar una imagen a travs de un OpenFileDialog hacia un PictureBox y luego Guardarla en otra ruta de la PC a travs de un SaveFileDialog El programa se dispondr de la siguiente manera:

Como podemos ver tenemos 3 Botones, un PictureBox, un OpenFileDialog y un SaveFileDialog.

240

Al presionar el Botton1 nos mostrara un OpenFileDialog el cual nos permitir escoger y cargar dicha imagen seleccionada al PictureBox.

Al hacer click en Abrir se cargara la imagen al Form.

241

Al presionar el Botton2 nos mostrara un SaveFileDialog el cual nos permitir escoger la ruta y guardar la imagen que se encuentra en nuestro PictureBox.

242

AL presionar en Guardar nos confirmara que se guard con un mensaje y se almacenara la imagen en nuestro sistema de archivos segn el nombre y el tipo que hayamos seleccionado. En este Caso escogimos Sharp de nombre y de tipo Mapa de Bits.

243

Al presionar en el Button3 saldremos de la aplicacin.

CODIGO:

En el evento Click() del Button1 declaramos las propiedades del OpenFileDialog con valores iniciales correspondientes entre ellos tenemos: la propiedad Filter en la cual asignamos con una cadena de caracteres con el formato mostrado, esta propiedad establece las extensiones de archivos que se filtraran en la bsqueda en el OpenFileDialog; el FilterIndex que indica el primer 244

tipo de archivos q se mostrara, empieza con cero; InitialDirectory es el directorio inicial en el cual se empiece la bsqueda del OpenFileDialog. Luego tenemos la condicin de que si la interaccion entre en OpenFileDialog y el usuario es igual a OK (si el usuario presiono OK), al pictureBox se le asigna la ruta del archivo que se seleccion.

En el Button2 tenemos que intervien el SaveFileDialog, al igual que con el OpenFileDialog se asignas las correspondientes propiedades para Filter, FilterIndex y InitialDirectory, tambin se asigna TRUE a la propiedad RestoreDirectory para que se actualice cuando guardemos. Ahora evaluaremos las posibles acciones que el usuario escoja y como guardaremos el archivo en nuestro sistema de archivos. Primero si el usuario elige un directorio y presiona ok, referenciamos la imagen que guardaremos con una variable, si el archivo dispone de algn nombre para ser guardado elegimos el tipo de archivo que quiere que se guarde, al presionar ok se guardara en la ruta indicada.

245

En el Button3, al hacer Click se cerrara la aplicacin. Controles HelpProvider, DataSet, Y DataGridView HelpProvider: Proporciona Ayuda emergente o en pantalla para los controles. DataSet: Representa una cach de memoria interna de datos. Est compuesto por una coleccin de objetos DataTable que se pueden relacionar entre ellos mediante objetos DataRelation. DataGridView: Muestra datos en una cuadrcula personalizable. Aunque el DataGridView Control reemplaza y agrega funcionalidad al control DataGrid de control de las versiones anteriores, el DataGrid se conserva el control a efectos de compatibilidad con versiones anteriores y uso futuro, si lo desea.

246

Aplicacin: El siguiente programa nos permitir conectarnos a una base de datos MySql y cargar el DataGridView con los datos que se filtraran segn las opciones de los radiobutton. Al presionar F1 nos mostrara diferentes formas de ayuda. Los controles se dispondrn de la siguiente manera:

Como podemos ver tenemos dos RadioButton dentro de un GroupBox para agruparlos, luego un Button y un TextBox para efectuar la bsqueda en la base de datos. Un DataGridView para mostrar las consulta a la base de datos, un dataSet para mostrar cmo podemos tener en cache datos en forma de tablas con DataTable. Y por ltimo un HelpProvider que nos facilitara la ayuda presionando F1.

247

Si tenemos el TextBox vacio y presionamos en Boton Buscar nos mostrara todos los datos de la base de datos Biblioteca combinando las 2 tablas en una sola.

248

Observamos que inicia por una bsqueda por nombre de autor en los parmetros de los RadioButtons, si introducimos un nombre valido de autor en el TextBox y damos Click en Buscar, nos filtrara la bsqueda por autor.

Ahora cambiaremos de parmetro de Bsqueda y pondremos en Por Nombre del libro en los RadioButton y escribiremos el nombre de un libro valido. Iniciamos la bsqueda haciendo Click en Buscar.

249

Si presionamos F1 mientras tenemos el foco en el textBox nos mostrara la ayuda en manera de texto para este control.

Si se presiona F1 en cualquier otra parte del form se abre una ventana de ayuda tipo HTML o .CHM 250

Codigo: Primero importamos en paquete del runtime de .Net que es el CLR. Y luego agregamos todas las libreras que vamos a usar.

Creamos los mtodos respectivos para conectarse y desconectarse a la Base de Datos MySql.

251

Hacemos un mtodo para seleccionar que nos permitir introducir un parmetro el cual es una cadena de texto para las condiciones en las consultas de bsqueda. En el mtodo seleccionar se crea un adaptador en cual contiene la sentencia, con el resultado de la consulta llenamos un DataTable y luego este DataTable lo usamos como suente de datos para nuestro DataGridView.

Nos dirigimos al Button1 que es el botn de busquedael cual contiene algunas condiciones. 252

Al presionar el Boton Buscar primero evaluaremos si el TextBox no est vaco, si esta vaco se llama a los mtodos conectar(), seleccionar() con parmetro en blanco y desconectar()lo que llenara el DataGridView con todos los datos de la base de Datos. Si el TextBox no est vaco se evala que RadioButton est con la propiedad Checked como True y se establece su condicin para el filtrado.

Al cargar el formulario creamos las 2 DataTable para tener en memoria las 2 tablas de la base de datos MySql que utilizamos y asi acceder de manera ms fcil y rapida a esa informacin.

253

Por ultimo usamos el mtodo SetHelpString del HelpProvider para indicar una cadena de ayuda al presionar F1 al control especificado en el mtodo.

Windows Forms 1. Creamos un formulario, siguiendo los siguientes pasos: Archivo o Nuevo Solucin: Se nos mostrara la siguiente ventana:

254

Una vez creado el formulario procedemos a insertar los componentes a explicar:

2. SplitContainer Divide el rea de presentacin de un contenedor en dos paneles redimensinales a los que se puede agregar controles. Seleccionamos splitcontainer y lo arrastramos hacia el formulario tal como se muestra en la figura.

255

Se nos genera dos contenedores uno a la izquierda y otro a la derecha como podemos observar en la imagen superior. 3. TabControl Controla y muestra al usuario una coleccin relacionada de fichas que pueden contener controles y componentes. Arrastramos un tabcontrol hacia el contenedor derecho del formulario para iniciar nuestro diseo (El diseo es libre).

256

Se puede aadir ms pestaas al contenedor tabcontrol, tal como se observa en la imagen siguiente. 4. TableLayoutPanel Controla la presentacin de sus componentes y los organiza en el formato de una tabla automticamente, en controles individuales en cada celda. Seleccionamos el panel tablelayoutpanel y lo arrastramos hacia elcontenedor izquierdo del splitcontainer (dependiendo el diseo que llevemos en el formulario).

Podemos aadir: Filas o columnas para generar ms celdas. Podemos iniciar con el diseo de las tablas colocando un control por cada celda, en nuestro caso colocaremos un comanbutton en cada celda. As mismo si queremos colocar otro control en una celda ya ocupada, no nos permitir insertar (SE NOS MOSTRARA UN ICONO DE NO PERMITIR). Como podremos observar en la figura siguiente:

257

Opciones

5. Nuestra aplicacin tendr que hacer las siguientes funciones: Al presionar uno de los comanbutton tendr que mostrar una de las pestaas del componente tabcontrol.

Generaremos el evento MouseMove, que al colocar el mouse en uno de los camoanbutton automticamente busque la pestaa indicada, mostrando su respectivo color.

Tipear los cdigos que generan estas acciones.

a) Generar codigo del primer paso.


def Button1Click(self, sender, e): pass self._tabControl1.SelectedIndex = 0

258

def Button2Click(self, sender, e): pass self._tabControl1.SelectedIndex = 1

def Button3Click(self, sender, e): pass self._tabControl1.SelectedIndex = 2

def Button4Click(self, sender, e): pass self._tabControl1.SelectedIndex = 3

Generamos el evento de la siguiente manera que se muestra en la figura.

Se nos genera el cdigo de evento en cada sintaxis del botn. self._button1.MouseMove += self.Button1Click self._button2.MouseMove += self.Button2Click self._button3.MouseMove += self.Button3Click self._button4.MouseMove += self.Button4Click
259

Una vez tipiada la sintaxis, el formulario nos quedara de la siguiente manera con el siguiente cdigo.

def Button1Click(self, sender, e): pass self._tabControl1.SelectedIndex = 0 self._tabPage1.BackColor = System.Drawing.Color.Yellow

def Button2Click(self, sender, e): pass self._tabControl1.SelectedIndex = 1 self._tabPage2.BackColor = System.Drawing.Color.Blue

def Button3Click(self, sender, e): pass self._tabControl1.SelectedIndex = 2 self._tabPage3.BackColor = System.Drawing.Color.Red

def Button4Click(self, sender, e): pass self._tabControl1.SelectedIndex = 3 self._tabPage4.BackColor = System.Drawing.Color.White

CLASE N:
TIEMPO:
FECHA: DOCENTE GUA:

31 PERODO 5/08/2013 al 10/08/2013


2 Horas
Lunes, 5 de Agosto del 2013 Ing. Mariuxi Zea Ordoez

TEMA DISCUTIDO: Manejo de Eventos

260

Desarrollar de acuerdo a lo que se vio en clase Contenidos: 3.8. Clases y Mtodos. Objetivos de desempeo: Conocer las clases y mtodos que se pueden desarrollar en Python Competencia General: Aplicar y emplear el lenguaje Python para el desarrollo, implementacin y mantenimiento de los sistemas. Datos interesantes discutidos:

Herencia Polimorfismo Encapsulamiento


Actividades durante la clase

Aplicacin de los temas dados y aplicarlos a ejercicios para un mejor entendimiento.

Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

CLASES Y MTODOS

CLASE:
Una clase es un molde del que luego se pueden crear mltiples objetos, con similares caractersticas. No es ms que una plantilla genrica a partir de la cual instanciar los objetos; es la que define qu atributos y mtodos tendrn los objetos de esa clase.

261

Inicializacin de una clase: Para inicializar una clase se usa el mtodo especial __init__.

class Imp: def __init__(self, msg): self.mensaje = msg


Instanciando una clase:

Para instanciar una clase, simplemente invoque a la clase como si fuera una funcin, pasando los argumentos que defina el mtodo __init__. El valor de retorno ser el objeto recin creado.

# Instanciamos la clase c = Imp('bueno')


Atributos:

Los atributos los podemos definir como en el ejemplo de la TV, como los valores por defecto de nuestra clase u objeto y que son imprescindibles para poder crearlo.
Referenciar un Atributo de Dato:

Para hacer referencia a un atributo de dato dentro de la clase, se debe usar self como calificador, self.mensaje, y para hacer referencia desde fuera de la clase a un atributo de dato se usa el nombre de la instancia como calificado, instancia.mensaje.

MTODOS
Los mtodos los podemos definir como las tareas que puede realizar nuestro objeto. Segn nuestro ejemplo de la TV, un mtodo podra ser apagar. El cual nos podra servir para programar la apagada de nuestro TV.

262

Mtodo __init__:

El mtodo __init__ puede tomar cualquier cantidad de argumentos (e igual que las funciones, stos pueden definirse con valores por defecto) y se llama inmediatamente y se crea una instancia de la clase.

Ejemplo:
Creamos una clase llamado Humano, luego creamos un mtodo llamado def __init__(self):

Se coloca el mtodo __init__ ya que Python lo reconoce y automticamente cuando se crea un nuevo objeto se va a ejecutar este mtodo, entonces este siempre deber ir en la clase ya que ser lo que se ejecute inmediatamente.

Al ejecutar esto, tendramos:

Ya que instanciamos la clase 2 veces por medio de las variables Pedro y Raul.

Ahora creamos el mtodo Hablar


263

Python automticamente va a enviar la referencia a pedro entonces va a poder acceder a todos los mtodos y atributos de ese objeto, colocamos otro argumento el cual es mensaje porque es lo que quiero que d al momento que llame al mtodo Hablar y colocamos print mensaje para que se pueda imprimir. Para acceder a ese mtodo colocamos:

Como resultado de Ejecucin tendramos:

Ahora para crear un nuevo atributo de mi objeto, nos damos cuenta que en self recibimos la referencia para pedro entonces colocaramos self.edad = 25, quedara:

264

As como se hizo con los mtodos, aqu tambin se puede acceder al atributo colocando: pedro.edad o raul.edad y quedara:

Entonces al ejecutar:

Y esto sale as porque colocamos el atributo en forma general. Para agregar una edad personalizada para pedro y para ral se tendra que hacer de la siguiente forma: Agregamos un nuevo argumento llamado ed en el mtodo __init__, y en donde instanciamos la clase Humano() colocamos la edad que deseemos. Regresando al mtodo __init__ en vez de colocar self.edad = 25 lo cambiamos por self. edad = ed, ya que en esta variable estamos llamando al argumento de mtodo. Nos quedara de la siguiente forma:

265

Al ejecutar: Veremos que hay 2 edades distintas porque son dos objetos distintos

HERENCIA SIMPLE Y MULTIPLE EN PYTHON


Se trata de establecer una relacin entre dos tipos de clases donde las instancias de una de ellas tengan directamente acceso a los atributos y mtodos declarados en la otra. Para ello, debemos tener una clase principal la cual contendr las declaraciones e implementaciones. A esta la vamos a llamar padre, superclase o principal. La otra ser la clase hija o secundaria. La herencia presenta la clara ventaja de la reutilizacin de cdigo, adems nos permite establecer relaciones y escribir menos lneas de cdigo, debido a que no es necesario, por ejemplo, volver a declarar e implementar mtodos.
Herencia Simple:

La herencia simple consiste en que una clase hereda nicamente de otra. La relacin de herencia hace posible utilizar, desde la instancia, los atributos de la clase padre. En Python, al definir una clase, indicaremos entre parntesis de la clase que hereda. Vamos a crear primero nuestra clase Padre:

Crear una clase que herede la que acabamos de crear es muy fcil:

Ahora vamos a proceder a crear una instancia de la case hija y vamos a comprobar cmo es posible invocar al mtodo definido en su padre:
266

Cmo seguramente te habrs dado cuenta el mtodo __init__() de la clase padre ha sido invocado directamente al invocar la instancia de la clase hija. Esto se debe a que el mtodo constructor es el primero en ser invocado al crear la instancia cmo este existe en la clase padre, entonces se ejecuta directamente.

Pero no slo los mtodos son heredables, tambin lo son los atributos. As pues, el siguiente cdigo es vlido:

Obviamente, varias clases pueden heredar de otra en comn, es decir, una clase padre puede tener varias hijas. En la prctica, podramos definir una clase Vehiculo, que ser la padre y otras dos hijas, llamadas Coche y Moto. De hecho, la relacin que vamos a establecer entre ellas ser de especializacin, ya que un coche y una moto son un tipo de vehculo determinado. Veamos el cdigo siguiente:

En este punto podemos crear dos instancias de las dos clases hija y modificar el atributo de clase:
267

Como las motos y los coches tienen en comn las operaciones de aceleracin y frenado, parece lgico que definamos mtodos, en la clase padre, para representar dichas operaciones. Por otro lado, cualquier clase que herede de Vehculo, tambin contendr estas operaciones, con independencia del nmero de ruedas que tenga.
Herencia Mltiple:

La herencia mltiple es similar en comportamiento a la sencilla, con la diferencia que una clase hija tiene uno o ms clases padre. En Python, basta con separar con comas los nombres de las clases en la definicin de la misma. Vamos a pensar en un ejemplo de la vida real para implementar la herencia mltiple. Por ejemplo, una clase genrica sera Persona, otra Personal y la hija sera Mantenimiento. De esta manera, una persona que trabajara en una empresa determinada como personal de mantenimiento, podra representarse a travs de una clase de la siguiente manera:

De esta forma, desde la clase Mantenimiento, tendramos acceso a todos los atributos y mtodos declarados, tanto en Persona, como en Personal. La herencia mltiple presenta el conocido problema del diamante. Este problema surge cuando dos clases heredan de otra tercera y, adems una cuarta clase tiene como padre a las dos ltimas. La primera clase padre es llamada A y las clases B y C heredan de ella, a su vez la clase D tiene como padres a B y C. En esta situacin, si una instancia de la clase D llama a un mtodo de la clase A, lo heredar desde la clase B o desde la clase C?. Cada lenguaje de programacin utiliza un algoritmo para tomar esta decisin. En el caso particular de Python, se toma como referencia que todas las clases descienden de la clase padre object. Adems, se crea una lista de clases que se buscan de derecha a izquierda y
268

de bajo arriba, posteriormente se eliminan todas las apariciones de una clase repetida menos la ltima. De esta manera queda establecido un orden. Debido a las ambigedades que pueden surgir de la utilizacin de la herencia mltiple, son muchos los desarrolladores que deciden emplearla lo mnimo posible, debido a que, dependiendo de la complejidad del diagrama de herencia, puede ser muy complicado establecer su orden y se pueden producir errores no deseados en tiempo de ejecucin. Por otro lado, si mantenemos una relacin sencilla, la herencia mltiple es un til aliado a la hora de representar objetos y situaciones de la vida real.

ENCAPSULAMIENTO
En otras palabras es impedir el acceso a los mtodos o variables del objeto, para que solo se puedan usar dentro de la instancia del objeto. Esto en los lenguajes como Java o C# lo logran con unos modificadores de acceso (anteponen a la definicin del mtodo o propiedad public, private, protected, etc.).

Los modificadores de acceso permiten al diseador de clases delimitar la frontera entre lo que es accesible para los usuarios de la clase, lo que es estrictamente privado y no importa a nadie ms que al diseador de la clase e incluso lo que podra llegar a importar a otros diseadores de clases que quisieran alterar, completar o especializar el comportamiento de la clase.

Python no cuenta con estos modificadores de acceso para lograr el encapsulamiento. Por qu el acceso a una variable o mtodo viene dado por su nombre. Para que un mtodo sea privado en Python lo que hay que hacer es anteponerle dos guiones bajos __ antes del nombre y no dejar que termine con dos guiones bajos __. Lo mismo para la variable. Ejemplo:

269

POLIMORFISMO
El lenguaje Python soporta el polimorfismo de forma muy cmoda, ya que al ser de tipado dinmico deja que el programador pase cualquier objeto como parmetro de un mtodo. En otras palabras, si el mtodo le enva un mensaje que el objeto no entiende, el mensaje dar error en el tiempo de ejecucin y no en tiempo de diseo.

El polimorfismo es cuando dos o ms objetos entienden los mismos mensajes (mtodos). En programacin orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en funcin de los parmetros utilizados durante su invocacin. Un objeto polimrfico es una entidad que puede contener valores de diferentes tipos durante la ejecucin del programa. El polimorfismo es el proceso de la utilizacin de un operador o funcin de diferentes formas para diferentes datos de entrada. En trminos prcticos, el polimorfismo significa que si la clase B hereda de la clase A, no tiene que heredar todo acerca de la clase A, que puede hacer algunas de las cosas que hace una clase diferente

270

A diferencia de Java y C++ el Polimorfismo en Python no es de gran importancia, dada su naturaleza de lenguaje dinmico. En Python no existe la sobrecarga de mtodos, el ltimo mtodo que se declare reemplazara a los anteriores. Por ejemplo, pensemos en una serpiente y un ave. Obviamente, ambos pueden desplazarse, pero la manera en que lo hacen es completamente diferente. Al modelar esta situacin, definiremos dos clases que contienen el mtodo desplazar (), siendo su implementacin diferente en ambos casos.
class Ave: def desplazar(self): print("El ave vuela.")

class Serpiente: def desplazar(self): print("La serpiente se arrastra.")

A continuacin vamos a definir una funcin adicional que se encargar de recibir como argumento la instancia de una de las dos clases y de invocar al mtodo del mismo nombre. Dado que ambas clases contienen el mismo mtodo, la llamada funcionar sin problema, pero el resultado ser distinto:
def mover(animal): animal.desplazar() a = Ave() s = Serpiente() a.desplazar() s.desplazar() mover(a) mover(s) input() 271

Como se puede comprobar, en Python la utilizacin del polimorfismo es muy fcil.

El polimorfismo es una caracterstica de los lenguajes de programacin que permite manipular valores de diferentes tipos a travs de una misma interfaz. #Funcin polimrfica
def add(a,b,c):

#Se hace la suma independientemente del tipo de dato


return a+b+c print add(1,2,3) print add("hola ", " como ", "estas?") input()

Reflexionar: Qu cosas fueron difciles? 272

Cmo implementar el polimorfismo. Cules fueron fciles? La creacin de mtodos, atributos, herencia Por qu? Porque se entiende claramente el cdigo explicado. Qu aprend hoy? Aprend a desarrollar programas utilizando herencia, polimorfismo, encapsulamiento.

CLASE N:
TIEMPO:
FECHA: DOCENTE GUA: TEMA DISCUTIDO:

32
2 Horas

PERODO

5/08/2013 al 10/08/2013

Mircoles, 7 de Agosto del 2013 Ing. Mariuxi Zea Ordoez

Manejo de Eventos

Desarrollar de acuerdo a lo que se vio en clase Contenidos: 3.9. Programacin de Mtodos Objetivos de desempeo: Conocer la creacin de los mtodos y manejo de clculos en Python Competencia General: Aplicar y emplear el lenguaje Python para el desarrollo, implementacin y mantenimiento de los sistemas. Datos interesantes discutidos: Actividades durante la clase

273

Aplicacin de los temas dados y aplicarlos a ejercicios para un mejor entendimiento.

Descriptores analizados Resumen conceptual de lo que se vio, incluyendo imgenes, etc.

CREACIN DE ENTORNO
Algo fundamental en la realizacin de un sistema o proyecto implementado en un lenguaje de programacin es el diseo, es decir que nuestra interfaz debe poseer los componentes

necesarios para cada una de las funciones que se pretendan realizar.

1. Lo primero a realizar es crear una nueva solucin

Al realizar esto nos presentara una ventana con mltiples opciones de plataformas en donde elegiremos python, Windows aplication y le asignamos un nombre.

274

2. En nuestra prctica primero utilizaremos, un TabControl, en donde agregaremos dos pestaas llamadas Habitantes y ciudades, un label y un

textBox(txtCantidadVenta) para la cantidad a vender y un Button(btnAgregar) y un textBox(txtAgregar) para Agregar.

3. Como segunda parte aadiremos un GroupBox, dentro del cual agregaremos los respectivos labels y textboxs adems contendr 3 botones, Guardar, Borrar, Nuevo y un comboBox para ciudad.

275

Manual de Mtodos de Programacin


1. Creamos una nueva Solucin o Proyecto para Python y seleccionamos Aplicacin Windows

2. Ahora nos presenta el siguiente formulario y escribimos el nombre que deseamos.

3. A continuacin nos aparece un formulario de diseo.


276

4. Empezaremos a realizar la prctica, para lo cual, en el cuadro de herramientas arrastraremos los siguientes opciones hacia el formulario.

Cuadro de Herramientas

5. Una vez arrastrados todas las herramientas necesarias al formulario, procederemos a la codificacin de cada una de sus funciones. a. Escribir en los Caja de Texto cada uno su nombre:

txtCedula txtNombre txtApellido txtEdad

277

b.

Luego escribimos los nombres correspondientes a los botones:

btnNuevo btnGuardar btnLimpiar btnBuscar

6. En las siguiente figura nos presenta como debemos colocar los nombres de cada, esto lo hacemos en cuadro de Propiedades como nos indica en la figura.

7. En esta prctica realizaremos una Llave Primaria como Cedula, en donde controlaremos que si la Cedula ya fue ingresada, si es as, nos presente los datos, caso contrario ingresarnos los datos correspondientes.

a. Colocamos este cdigo dentro del Botn Guardar

278

def BtnGuardarClick(self, sender, e): # preguntamos mofify esta false if(modify==False): # Preguntamos si el campo Text esta Vacio if(self._txtCedula.Text==""): self._lblMensaje.Text="Insertar Cedula, antes de Guardar"; return

# Llamamos a la funcion existeClave, en donde le enviamos el campo cedula if ( existeClave( "habitantes" ,self._txtCedula.Text) ): self._lblMensaje.Text="Cedula ya Existe, Verifique...!"; return

# Llamamos a la funcion validaCedula, en donde verifica si cedula esta Correcta if( validaCedula(self._txtCedula.Text)==False): self._lblMensaje.Text="Numero de Cedula Incorrecto, Verifique...!"; return

# Preguntamos si el campo Nombre no esta Vacio if(self._txtNombres.Text==""): self._lblMensaje.Text="Debe ingresar un Nombre"; return

# Preguntamos si el campo Apellido no esta Vacio if(self._txtApellidos.Text==""): self._lblMensaje.Text="Debe ingresar Apellido"; return

try: # Esta accion insertaremos los Datos en la Base de Datos Habitantes accion= SqlClient.SqlCommand("insert into habitantes values ("+self._txtCedula.Text+ ",'"+self._txtNombres.Text+"','"+self._txtApellidos.Text+"','"+ self._txtEdad.Text+"')", conexion)

# Ahora ejecutamos esta accion ejecutar= accion.ExecuteNonQuery() MessageBox.Show("Registro Ingresado Correctamente") self._lblMensaje.Text = " " except: print "Error al ingresar" else: MessageBox.Show("En el Else") self._lblMensaje.Text="Registro Modificado Correctamente"

b. Ahora dentro del Botn Limpiar Colocamos lo Siguiente:

279

def BtnLimpiarClick(self, sender, e):

# Limpiar los Texts self._txtCedula.Text = " " self._txtNombres.Text = " " self._txtApellidos.Text = " " self._txtEdad.Text = " " self._lblMensaje.Text = " " pass

c. A continuacin en el Botn Nuevo colocamos el siguiente cdigo


def BtnNuevoClick(self, sender, e):

# Habilitar los Texts self._txtCedula.Enabled = True self._txtNombres.Enabled = True self._txtApellidos.Enabled = True self._txtEdad.Enabled = True self._lblMensaje.Text = " " pass

8. Una vez realizado la codificacin colocaremos ahora las funciones principales en el formulario, al inicio insertamos lo siguiente:
#agregamos la libreria de clr import clr #agregamos la referencia de System.Data clr.AddReference('System.Data') #importamos todos los metodos que contiene la libreria from System.Data import *

# Conexion a la Base de Datos try: conexion = SqlClient.SqlConnection("Data Source=LINARES-PC\SQLEXPRESS; Initial Catalog = ExpoPython; Integrated Security= true" ) conexion.Open(); MessageBox.Show("Conexion Existosa") except: MessageBox.Show("Conexion Erronea")

280

#Declaramos Atributos modify=False #Fin declaracion atributos

# Verificar Cedula def existeClave(tabla, codigo): try: # Hacemos un Select en la Base de Datos, en donde le enviamos la Tabla y Cedula select=SqlClient.SqlCommand("Select count(*) From "+tabla+" Where cedula='"+codigo+"'", conexion) # Realizamos un Select ExecuteScalar, en donde, si existe un dato con esa cedula nos devolvera un 1; # caso contrario nos retornara un cero, que no existe esa cedula return select.ExecuteScalar() == 1 except: MessageBox.Show("Error Seleccion Cedula")

# Generacion de Codigo Automatico def claveAutomatica(tabla, codigo): try: maxiSql=SqlClient.SqlCommand("Select Max("+codigo+") From "+tabla, conexion) maxi=int( maxiSql.ExecuteScalar())+1 return maxi except: "Error max"

# Validar Cedula def validaCedula(id): x=False try: last=0 if(len(id)==10): last=int(id[9]) real=0 aux=0 for c in range(0,10,2): aux=(int(id[c]))*2 if(aux>9): aux-=9 real+=aux aux=0 for c in range(1,8,2): aux=(int(id[c]))*1 real+=aux aux=real

281

xc=str(real) if(len(xc)>1): if(int(xc[1])==0): real=0 else: xc=""+str( ( (int(xc[0]) )+1) )+"0" real=int(xc) real -=aux else: real=10-real if real == last: x=True else: return False except: print "error" return x

Aqu observamos cmo debe ir colocado dentro de la prctica las funciones

9. Una vez hecho esto, realizaremos lo siguiente: realizar un numero autogenerado a travs de codificacin, por lo tanto debemos arrastrar las herramientas necesarias como vemos en la figura siguiente:
282

10. Como anterior dicho en el ejemplo anterior debemos colocar los nombres correspondientes a cada campo.

a. Escribir los nombres correspondientes a caja de textos

txtCodigo txtNombre txtProvincia

b. Escribir los nombres correspondientes a los botones


btnGuardar btnBorrar btnNuevo btnBuscar

11. Realizaremos la codificacin correspondiente de cada uno

283

def BtnSaveClick(self, sender, e): if(self._txtNomCiudad.Text==""): self._lblMensaje.Text="Ingrese nombre de la Ciudad"; return if(self._txtProv.Text==""): self._lblMensaje.Text="Ingrese nombre de la Provincia"; return try: accion= SqlClient.SqlCommand("insert into ciudades values ("+self._txtIdCiudad.Text+ ",'"+self._txtNomCiudad.Text+"','"+self._txtProv.Text+"')", conexion) ejecutar= accion.ExecuteNonQuery() self._lblMensaje.Text="Registro ingresado correctamente" self._btnNewCiudad.Text="Nuevo" except: print "Error al ingresar" pass

Botn Nuevo
def BtnNewCiudadClick(self, sender, e): if self._btnNewCiudad.Text=="Nuevo": self._btnNewCiudad.Text="Cancelar" self._btnSave.Enabled=True self._txtIdCiudad.Text=str(claveAutomatica("ciudades", "codigo")) else: self._txtIdCiudad.Text= "" self._btnNewCiudad.Text="Nuevo" self._btnSave.Enabled=False pass

Botn Borrar
def BtnBorrarClick(self, sender, e): try: comman=SqlClient.SqlCommand("Select codigo From ciudades", conexion)

284

resultado=SqlClient.SqlDataReader(comman.ExecuteReader()) while (resultado.Read()): self._cbxCiudad.Items.Add(resultado[0]) self._cbxCiudad.SelectedValue self._lblMensaje.Text="cargo el cbx" resultado.Close() except: "Error de seleccion cod" pass

Botn Buscar
def BtnBuscaCiudadClick(self, sender, e):

if self.cont==0: self._txtIdCiudad.Enabled=True self.cont=1 else: if self._txtIdCiudad.Text=="": self._lblMensaje.Text="Debe ingresar el dato de busqueda"; return if validar.existeClave( "ciudades", "codigo", self._txtIdCiudad.Text, conexion ) ==False: self._lblMensaje.Text="Registro no encontrado"; return table=getTodo("codigo",self._txtIdCiudad.Text) self._txtIdCiudad.Text=table.Rows[1][5] self._txtNomCiudad.Text=table.Rows[1][6] self._txtProv.Text=table.Rows[1][7] self._lblMensaje.Text="Busqueda exitosa" self.nuevo=False self.cont=0 self.cod=self._txtIdCiudad.Text MessageBox.Show(str(self.cod)) self._btnSave.Enabled=True pass

12. Declarar las funciones al inicializar el formulario


def SelecTodo(tabla): try: select=SqlClient.SqlCommand("Select * From "+tabla, conexion)

except: "Error de seleccion clave"

285

pass

def cargarCiudad(): try: command=SqlClient.SqlCommand("Select codigo, nombres From ciudades", conexion) resultado=SqlClient.SqlDataReader( command.ExecuteReader()) if (resultado.HasRows): self._lblMensaje.Text="cargo el cbx" self._cbxCiudad.Items.Add(str(resultado[0])) else: self._lblMensaje.Text="NO cargo el cbx" except: "Error de seleccion clave" pass def MainFormLoad(self, sender, e): cargarCiudad() pass

13. Aqu observamos cmo debe ir el cdigo en el formulario

286

BASE DE DATOS
De igual manera en SQLServer creamos 2 tablas: habitantes, y ciudad donde introduciremos registros:

287

CODIFICACION
Declaracin de objetos y variables
import System.Drawing import System.Windows.Forms

from System.Drawing import * from System.Windows.Forms import *

#agregamos la libreria de clr import clr #agregamos la referencia de System.Data clr.AddReference('System.Data') #importamos todos los metodos que contiene la libreria from System.Data import * try: conexion = SqlClient.SqlConnection("Data Source=COMPAQPC; Initial Catalog = ExpoPython; Integrated Security= true" ) conexion.Open(); print "Conexion exitosa" except: print "Error de conexion"

288

#Declaramos Atributos modify=False #Fin declaracion atributos

Mtodo de validacin de cedula


def validaCedula(id): x=False try: last=0 if(len(id)==10): last=int(id[9])#captura el ultimo digit real=0 aux=0 for c in range(0,10,2):#recorre del 0 al 10 de 2 en 2 aux=(int(id[c]))*2 #cada digit de 2 en 2 lo mult por 2=y lo almacna en var aux int if(aux>9):#si el num es mayor a 9 resta 9 aux-=9 real+=aux#asigna a real lo q tiene real aux=0 for c in range(1,8,2):#recorre del 1 al 8 de 2 en 2 aux=(int(id[c]))*1#multiplica x 1 real+=aux aux=real xc=str(real) if(len(xc)>1):#si la longitud es mayor a 1 osea 2 digitos if(int(xc[1])==0):# y si el 2do digito es = a 0 real = 0 real=0 else: xc=""+str( ( (int(xc[0]) )+1) )+"0"# caso contrario se toma el 1er digito suma 1 y asignamos 0 real=int(xc) real -=aux# else: real=10-real# si es 1 digit 10 menos el numero if real == last:#si real = al ultimo digit x tomael valor de true

289

x=True# else: return False#caso contrario se vuelv falso except: return x

Mtodo para verificacin si la cedula ya est en la base de datos

def existeClave(tabla, codigo): # o cedula try: select=SqlClient.SqlCommand("Select count(*) From "+tabla+" Where cedula='"+codigo+"'", conexion) return select.ExecuteScalar() == 1 except: "Error de seleccion clave" pass

Mtodo para generar clave automatica en la base de datos


def claveAutomatica(tabla, codigo): try: maxiSql=SqlClient.SqlCommand("Select Max("+codigo+") From "+tabla, conexion) maxi=int( maxiSql.ExecuteScalar() )+1 return maxi except: "Error de max"

class MainForm(Form): def __init__(self): self.InitializeComponent()

def InitializeComponent(self): self._label1 = System.Windows.Forms.Label() self._tabControl1 = System.Windows.Forms.TabControl() self._tabPage1 = System.Windows.Forms.TabPage() self._tabPage2 = System.Windows.Forms.TabPage() self._groupBox2 = System.Windows.Forms.GroupBox() self._txtProv = System.Windows.Forms.TextBox()

290

self._txtNomCiudad = System.Windows.Forms.TextBox() self._label8 = System.Windows.Forms.Label() self._label7 = System.Windows.Forms.Label() self._txtIdCiudad = System.Windows.Forms.TextBox() self._label6 = System.Windows.Forms.Label() self._groupBox1 = System.Windows.Forms.GroupBox() self._txtFecNac = System.Windows.Forms.TextBox() self._label17 = System.Windows.Forms.Label() self._label16 = System.Windows.Forms.Label() self._label15 = System.Windows.Forms.Label() self._label14 = System.Windows.Forms.Label() self._label13 = System.Windows.Forms.Label() self._label11 = System.Windows.Forms.Label() self._label2 = System.Windows.Forms.Label() self._label3 = System.Windows.Forms.Label() self._btnGuardar = System.Windows.Forms.Button() self._label4 = System.Windows.Forms.Label() self._txtEdad = System.Windows.Forms.TextBox() self._label5 = System.Windows.Forms.Label() self._txtApellidos = System.Windows.Forms.TextBox() self._txtCedula = System.Windows.Forms.TextBox() self._txtNombres = System.Windows.Forms.TextBox() self._lblMensaje = System.Windows.Forms.Label() self._btnSave = System.Windows.Forms.Button() self._cbxCiudad = System.Windows.Forms.ComboBox() self._button1 = System.Windows.Forms.Button() self._button2 = System.Windows.Forms.Button() self._btnNewCiudad = System.Windows.Forms.Button() self._button4 = System.Windows.Forms.Button() self._mktEmail = System.Windows.Forms.MaskedTextBox() self._mktTelef = System.Windows.Forms.MaskedTextBox() self._mktCelular = System.Windows.Forms.MaskedTextBox() self._tabControl1.SuspendLayout() self._tabPage1.SuspendLayout() self._tabPage2.SuspendLayout()

291

self._groupBox2.SuspendLayout() self._groupBox1.SuspendLayout() self.SuspendLayout() # def BtnGuardarClick(self, sender, e): if(modify==False): print "edad", claveAutomatica("habitantes","edad") if(self._txtCedula.Text==""): self._lblMensaje.Text="Debe ingresar una cedula de persona"; return #aqui se valida si existe la cedula if ( existeClave( "habitantes" ,self._txtCedula.Text) ): self._lblMensaje.Text="Cedula ya existe, verifique...!"; return if( validaCedula(self._txtCedula.Text)==False): self._lblMensaje.Text="Numero de cedula incorrecto, verifique...!"; return if(self._txtNombres.Text==""): self._lblMensaje.Text="Debe ingresar un nombre"; return if(self._txtApellidos.Text==""): self._lblMensaje.Text="Debe ingresar apellidos"; return try: accion= SqlClient.SqlCommand("insert into habitantes values ("+self._txtCedula.Text+ ",'"+self._txtNombres.Text+"','"+self._txtApellidos.Text+"','"+ self._txtEdad.Text+"','"+""+"','"+""+"','"+ ""+"','"+""+"','"+""+"')", conexion) ejecutar= accion.ExecuteNonQuery() self._lblMensaje.Text="Registro ingresado correctamente" except: print "Error al ingresar" else: MessageBox.Show("En el Else") self._lblMensaje.Text="Registro Modificado Correctamente" pass

def BtnSaveClick(self, sender, e): if(self._txtIdCiudad.Text==""):

292

MessageBox.Show("Debe ingresar datos"); return try: accio= SqlClient.SqlCommand("insert into ciudades values ("+self._txtIdCiudad.Text+ ",'"+self._txtNomCiudad.Text+"','"+self._txtProv.Text+"')", conexion) ejecutar= accio.ExecuteNonQuery() self._lblMensaje.Text="Registro ingresado correctamente" except: print "Error al ingresar" pass

def BtnNewCiudadClick(self, sender, e): self._txtIdCiudad.Text=str(claveAutomatica("ciudades", "codigo")) pass

293

ACTIVIDADES DE APRENDIZAJE INTRA Y EXTRA CLASE

294

Tareas Realizadas

ACTIVIDAD N:
TEMA: UNIDAD N 1.2: OBJETIVO: PROBLEMA:

FECHA:

8/05/2013 - 10/05/2013

Elaboracin del objetivo personal para el mdulo Elaborar una lnea de tiempo sobre la evolucin de Python Presentacin De Python Identificar los objetivos del lenguaje de programacin. Fijarse un objetivo personal para el mdulo.

Comprensin de sus responsabilidades profesionales y ticas

INDICADOR DE EVALUACION:

Comunicacin efectiva Pericia para disear y conducir experimentos, as como para analizar e interpretar datos.

VALORES: TIPO DE ACTIVIDAD


LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica de laboratorio Prctica de clase Resolucin de problemas,


ejercicios

CALIFICACIN

Ensayo, artculo Informe de xposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA NOMBRE


Daniel Arvalo Villalta

ROL
Analista - Elaborador

DESCRIPCIN
Analizar el objetivo y dar una solucin.

295

Objetivo Personal para el Mdulo:


El objetivo personal para el mdulo de Programacin III primeramente es concluirlo con xito, tambin aprender un nuevo lenguaje de programacin como es Python, adems conocer las diferencias de este lenguaje con los dems lenguajes de programacin que ya he aprendido a lo largo de mi estudio y determinar cul es el mejor de todos.

296

Lnea de Tiempo de la Evolucin de Python

Van Rossum public el cdigo de la versin 0.9.0 1991

Python alcanza la versin 1.0 1994

Coincidiendo con la publicacin de la versin 1.6, se toma la decisin de cambiar la licencia por una que sea compatible con la licencia Esta nueva licencia se denominar Python Software Foundation Licence 2000

Se cre la Python Software Foundation (PSF), siguiendo el modelo de Apache y se lanz Python 2.1 2001

El proyecto CP4E est inactivo, y mientras Python intenta ser fcil de aprender y no muy arcano en su sintaxis y semntica 2007

La versin cuenta con la actualizacin 3.3 2012

Finales de los 80 Python fue creado por Guido van Rossum

1994 Se form comp.lang.python, el foro de discusin principal de Python

1995 Van Rossum continu su trabajo en Python en la Corporation for National Research Initiatives (CNRI)

2000 Van Rossum y su equipo de desarrolladores se marcharon a BeOpen.com donde lanzaron Python 2.0

2001 Van Rossum fue premiado con FSF Award for the Advancement of Free Software.

2010 De la versin 2, la ltima en ser liberada fue la 2.7

297

ACTIVIDAD N:

FECHA ENVIO:

08-05-2013

FECHA ENTREGA:

10-05-2013

Elaborar un cuadro comparativo de los lenguajes de programacin: Python, TEMA: Pearl, Java, C, C++ y un cuadro de diferencias entre Python, C#, Visual Basic.NET UNIDAD N1.3, 1.4: OBJETIVO: Documentacin de Python Identificar y comparar las diferencias y semejanzas entre Python y otros lenguajes de programacin. Conocer las caractersticas de Python con respecto a otros lenguajes de programacin

PROBLEMA:

INDICADOR DE EVALUACION:

CALIFICACIN

Cuadro comparativo Profundizacin del tema

1 punto Descripcin clara y sustancial del cuadro y buena cantidad de detalles. Cuadro bien organizado y claramente presentado as como de fcil seguimiento. Cuadro sobresaliente y atractivo

0,5 puntos Descripcin ambigua del tema, algunos detalles que no clarifican el tema. Cuadro sinptico bien focalizado pero no suficientemente organizado.

0,1 puntos Descripcin incorrecta del tema, sin detalles significativos o escasos.

Aclaracin sobre el tema

Cuadro sinptico impreciso y poco claro, sin coherencia entre las partes que lo componen.

Cuadro sinptico simple pero bien organizado con al menos tres errores de ortografa.

Cuadro sinptico mal planteado que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa.

Alta calidad del diseo

que cumple con los criterios de diseo planteados, sin errores de ortografa. Los temas centrales se ubicaron

Se ubicaron los temas centrales en la columna izquierda pero las variables no se colocaron de forma ordenada.

No se ubicaron o se ubicaron de forma incorrecta los temas centrales y las variables no tienen relacin con el tema principal.

Elementos propios del cuadro comparativo

en la columna izquierda y en correcto orden y en la parte

superior se colocaron las variables y La informacin hace referencia al la informacin fue acertada La presentacin/exposicin fue tema. La presentacin/exposicin fue hecha en tiempo y forma, aunque la entrega no fue en el formato preestablecido.

La presentacin/exposicin no fue hecha en tiempo y forma, adems la entrega no se dio de la forma pre establecida por el docente.

Presentacin del cuadro sinptico

hecha en tiempo y forma, adems se entreg de forma limpia en el formato pre establecido (papel o digital).

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

298

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Investigador - Analista DESCRIPCIN Investigar informacin necesaria para la realizacin del trabajo.

Cuadro comparativo de los lenguajes de programacin: Python, Pearl, Java, C, C++


CARACTERISTICAS Orientado a objetos Multiplataforma Recolector de basura Multiparadigma Funcional (paradigma de programacin declarativa basado
en la utilizacin de funciones aritmticas que no maneja datos mutables o de estado)

PYTHON
Si Si Si Si

PERL
Si Si Si Si

JAVA
Si Si Si Si

C
No Si No Si

C++
Si Si No Si

Si

Si

No

No

No

Imperativa (conjunto de instrucciones que le indican al


computador cmo realizar una tarea.)

Si

Si

Si

Si

Si

Reflexivo (es la capacidad que tiene un programa de


ordenador para observar y opcionalmente modificar su estructura de alto nivel)

Si

Si

No

No

No

Software Libre

Si

Si

Si

Si

Si

299

Cuadro de diferencias entre Python, C#, Visual Basic.NET


CARACTERISTICAS Diseador PYTHON
Guido van Rossum Orientado a objetos

C#
Microsoft Estructurado Imperativo Orientado a objetos Dirigido por eventos Funcional Genrico Reflexivo 2000

VISUAL BASIC.NET
Microsoft

Paradigmas

Imperativo Funcional Reflexivo

Dirigida por eventos

Aparicin

1991 CPython IronPython Jython Python for S60 PyPy PyGame Unladen Swallow

2002

Microsoft .NET Mono DotGNU

Framework SharpDevelop MonoDevelop

Implementaciones

Extensiones comunes

.py, .pyc, .pyd, .pyo, .pyw Python Software Foundation License

.cs

.bas, .frm, .exe, .vbp

Licencia

Privativa

Propietario

Sistema Operativo

Multiplataforma

Multiplataforma

Microsoft Windows, MSDOS

ACTIVIDAD N:

FECHA ENVIO:

10-05-2013

FECHA ENTREGA:

13-05-2013

Utilizando los buscadores en Internet, elabore un ensayo acerca de las fortalezas y

TEMA:

limitaciones de Python. Busque ejemplos de sistemas (aplicaciones comerciales) que han sido automatizados con Python (mnimo 5). Establezca las caractersticas (en cuanto a apariencia fsica), funcionalidades que tienen dichos sistemas,

300

requerimientos de hardware y software de cada ejemplo.

UNIDAD N1.5 - 1.6: OBJETIVO: PROBLEMA:

Introduccin a IronPython Studio Instalacin de IronPython Studio

Identificar los elementos de IronPython Studio. Conocer las caractersticas de Python.

INDICADOR DE EVALUACION:

CALIFICACIN

Ensayo Profundizacin del tema

1 punto Descripcin clara y sustancial del tema y buena cantidad de detalles. Tema bien organizado y

0,5 puntos

0,1 puntos

Descripcin ambigua del tema Descripcin inexacta del tema a tratar, algunos detalles que no clarifican el tema. Tema con informacin bien focalizada pero no suficientemente organizado. a tratar, sin detalles significativos o escasos. Tema impreciso y poco claro, sin coherencia entre las partes que lo componen.

Aclaracin sobre el tema

claramente presentado as como de fcil seguimiento.

Ensayo escrito con tipografa Ensayo simple pero bien Alta calidad del diseo sencilla y que cumple con los organizado con al menos tres criterios de diseo planteados, sin errores de ortografa. El ensayo cumple con los Elementos propios del ensayo cuatro criterios de diseo (Resumen, palabras clave, cuerpo del ensayo y referencias bibliogrficas) El ensayo cumple con los errores de ortografa y tipografa difcil de leer.

Ensayo mal planteado que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa.

El ensayo no cumple con los

cuatro criterios de diseo pero criterios de diseo planteados no con la extensin solicitada (mnimo 3 pginas) o bien, estos puntos no han sido correctamente realizados. o bien no estn claramente ordenados o definidos ni cumple con la extensin mnima. La presentacin/exposicin no fue hecha en tiempo y forma, adems la entrega no se dio de la forma pre establecida por el docente.

La presentacin/exposicin fue hecha en tiempo y Presentacin del ensayo forma, adems se entreg de forma limpia en el formato pre establecido (papel o digital).

La presentacin/exposicin fue hecha en tiempo y forma, aunque la entrega fue en el formato preestablecido.

301

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Investigador - Analista DESCRIPCIN Investigar informacin necesaria para la realizacin del trabajo.

Fortalezas y limitaciones de Python.

Limitaciones:
Programacin de bajo nivel (system-programming), como programacin de drivers y kernels PYTHON es de demasiado alto nivel, no hay control directo sobre memoria y otras tareas de bajo nivel Aplicaciones que requieren alta capacidad de computo no hay nada mejor para este tipo de aplicaciones que el viejo C

Fortalezas
Como lenguaje pegamento para combinar varios componentes juntos Para llevar a cabo prototipos de sistemas Para la elaboracin de aplicaiones clientes Para desarrollo web y de sistemas distribuidos Para el desarrollo de tareas cientficas, en los que hay que simular y prototipar rpidamente El pseudo-cdigo natural de Python es una de sus grandes fortalezas ya que permite concentrarse en la solucin del problema en lugar de la sintaxis, es decir el propio lenguaje.

302

Busque ejemplos de sistemas (aplicaciones comerciales) que han sido automatizados con Python (mnimo 5). Establezca las caractersticas (en cuanto a apariencia fsica), funcionalidades que tienen dichos sistemas, requerimientos de hardware y software de cada ejemplo.
Calibre
Es un gestor y organizador de libros electrnicos libre, que permite la conversin de numerosos formatos de archivos para libros electrnicos. Calibre est programado en los lenguajes Python y C, usa la biblioteca Qt de Nokia y es multiplataforma, siendo compatible con los tres principales sistemas operativos: GNU/Linux, Mac OS X y Microsoft Windows. Caractersticas: Gestin de libros.- Programa de catalogacin y ordenacin de libros electrnicos. Ordenacin de libros.- Calibre admite la ordenacin de los libros en su base de datos por los siguientes campos: Ttulo, Autor, Fecha, Editor, Clasificacin, Tamao, Serie Conversin de formatos.- Calibre facilita la conversin de numerosos formatos, tanto de entrada como de salida Sincronizacin.- Calibre soporta actualmente el lector Sony PRS 300/500/505/600/700, Cybook Gen 3, Amazon Kindle, Papyre y otros lectores Buscador de noticias.- Calibre puede ser configurado para que busque, recopile y enve al lector de libros automticamente noticias de diversos sitios web y repositorios RSS presentndolas en formato de libro electrnico. Compatibilidad con lectores de libros electrnicos.- Calibre admite, en principio, todos los lectores de libros electrnicos, y puede leer cualquiera de los formatos indicados anteriormente.

Mailman
Es software libre para el manejo de listas de discusin electrnicas y listas de noticias. Funciona sobre GNU/Linux y la mayora de sistemas tipo Unix,

303

requiere

Python

2.1.3

superior.

GNU

Mailman

funciona

con

sistemas

de

correo

como Postfix, Sendmail y qmail. Caractersticas: Una interfaz Web para la administracin de la lista, archivo de mensajes, filtro de correo no deseado. Una configurable pgina de inicio para cada lista de correo. Deteccin de rebote y el manejo automtica de direcciones de rebote. Integracin con filtros de correo no deseado. Comandos al estilo de correo no deseado. Mltiple administradores de listas. Establecer las normas de suscripcin basado en remitente y cerrar suscripciones. Soporta dominios virtuales. Interfaz Web para subscripcin y de suscripcin. Los usuarios pueden deshabilitar temporalmente sus cuentas, seleccionar los modos de recepcin de mensajes, ocultar las direcciones de correo de los suscriptores.

SAGE
SAGE es un sistema algebraico computacional (en ingls CAS) escrito en Python y en una versin modificada de Pyrex (llamada inicialmente SageX y posteriormente Cython). Rene y unifica bajo un solo entorno, lenguaje y jerarqua de objetos toda una coleccin de software matemtico y trata de rellenar los huecos de funcionalidad dejados por unos y otros. Proporciona una interfaz Python a software libre como GAP, Pari, Maxima, SINGULAR (todos distribuidos con SAGE). Tambin proporciona una interfaz a software no libre: Magma, Maple, Mathematica (no distribuidos con SAGE). Caractersticas: Una interfaz grfica (notebook) para la revisin y reutilizacin de entradas y salidas anteriores, incluyendo grficas y notas de texto disponibles en la mayora de los navegadores web incluyendo Firefox, Opera, Konqueror, y Safari. Una lnea de comandos basada en texto usando iPython

304

El lenguaje de programacin Python, que soporta expresiones en programacin orientada a objetos y funcional.

Procesamiento paralelo usando tanto procesadores de ncleo mltiple como multiprocesadores simtricos.

Clculo usando Maxima y SymPy lgebra lineal numrica usando GSL, SciPy y NumPy Control interactivo de los clculos Libreras de funciones elementales y especiales Grficas en 2D y 3D tanto de funciones como de datos. Herramientas de manipulacin de datos y matrices. Libreras de estadstica multivariable Una caja de herramientas para aadir interfaces de usuario a clculos y aplicaciones Herramientas para procesamiento de imgenes usando pylab as como Python Herramientas para visualizar y analizar grficas Libreras para funciones de teora de nmeros Filtros para importar y exportar datos, imgenes, vdeo, sonido, CAD, y GIS Soporte para nmeros complejos, aritmtica de precisin arbitraria, y computacin simblica de funciones donde esto sea apropiado.

Embeber Sage en documentos LaTeX4 Interfaces a otro software como Mathematica, Magma y Maple, que le permite a los usuarios combinar software y comparar resultados y desempeo.

SpamBayes
Es un filtro de spam escrito en Python que utiliza tcnicas establecidas por Paul Graham en su ensayo "Un Plan de spam". Posteriormente, ha sido mejorada por Gary Robinson y Tim Peters, entre otros. Caractersticas: El filtro utilizado por SpamBayes es que hay tres clasificaciones en lugar de dos: spam, no spam (llamado jamn en SpamBayes), e inseguro. El usuario recibe un mensaje como correo no deseado, al filtrar un mensaje, los filtros de spam generan una puntuacin de spam.

305

Si la puntuacin de spam es alto y la puntuacin jamn es bajo, el mensaje se clasifica como spam. Si la puntuacin de spam es baja y la puntuacin de jamn es alta, el mensaje se clasifica como jamn. Si los resultados son a la vez de alta o baja tanto, el mensaje se clasifica como seguro.

Este enfoque conduce a un bajo nmero de falsos positivos y falsos negativos , pero puede resultar en un nmero de unsures que necesitan una decisin humana.

Access Grid
Es un conjunto de herramientas y tecnologas creadas por el Argonne National Laboratory de Chicago que facilitan la colaboracin remota usando vdeo y audio. Haciendo una simplificacin se puede entender como un sistema

de videoconferencia mejorado para adaptarse a pantallas extra-grandes y varias cmaras por nodo. Caractersticas: La mayor parte de la red de acceso est escrito en Python , por lo que la familiaridad con Python es asumido ms all de este punto. Incluye tecnologa multimedia para pantallas extra-grandes, entornos interactivos y middleware de conexin con tecnologas de computacin en grid y entornos de visualizacin.

306

ACTIVIDAD N:

FECHA ENVIO:

13-05-2013

FECHA ENTREGA:

15-05-2013

TEMA:

Cules son los DBMS que trabajan con Python, caractersticas, ventajas, desventajas. Seleccionar el DBMS idneo en el que desarrollara la Base de Datos para un Sistema.

UNIDAD N 1 OBJETIVO: PROBLEMA:

Introduccin a Python Identificar los elementos de IronPython Studio. Conocer los diferentes DBMS que trabajan con Python

INDICADOR DE EVALUACION:

CALIFICACIN
0,5 puntos Descripcin ambigua del tema a tratar, algunos detalles que no clarifican el tema. 0,1 puntos Descripcin inexacta del tema a tratar, sin detalles significativos o escasos. Tema impreciso y poco claro, sin coherencia entre las partes que lo componen. Ensayo simple pero bien organizado con al menos tres errores de ortografa y tipografa difcil de leer. Ensayo mal planteado que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa. El ensayo cumple con los cuatro criterios de diseo pero no con la extensin solicitada (mnimo 3 pginas) o bien, estos puntos no han sido correctamente realizados. El ensayo no cumple con los criterios de diseo planteados o bien no estn claramente ordenados o definidos ni cumple con la extensin mnima.

Ensayo Profundizacin del tema

1 punto Descripcin clara y sustancial del tema y buena cantidad de detalles.

Aclaracin sobre el tema

Tema bien organizado y claramente presentado as como de fcil seguimiento. Ensayo escrito con tipografa

Tema con informacin bien focalizada pero no suficientemente organizado.

Alta calidad del diseo

sencilla y que cumple con los criterios de diseo planteados, sin errores de ortografa. El ensayo cumple con los cuatro

Elementos propios del ensayo

criterios de diseo (Resumen, palabras clave, cuerpo del ensayo y referencias bibliogrficas)

La presentacin/exposicin fue hecha en tiempo y forma, adems Presentacin del ensayo se entreg de forma limpia en el formato pre establecido (papel o digital).

La presentacin/exposicin fue hecha en tiempo y forma, aunque la entrega fue en el formato preestablecido.

La presentacin/exposicin no fue hecha en tiempo y forma, adems la entrega no se dio de la forma pre establecida por el docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Investigador - Analista DESCRIPCIN Investigar informacin necesaria para la realizacin del trabajo.

DBMS que trabajan con Python: caractersticas, ventajas y desventajas

Resumen
El presente ensayo hace referencia a los diferentes tipos de DBMS que se pueden utilizar para trabajar con el lenguaje de programacin Python, cules son las caractersticas con las cuentan estas bases de datos adems de su ventajas y desventajas que podran ser tiles al momento de su implementacin. Tambin mediante este ensayo podremos conocer cul sera el DBMS ms adecuado para trabajar con el lenguaje de programacin Python

Sumario

308

Resumen I. II. SQLite MySQL

III. PostgreSQL IV. Firebird

I. SQLite
SQLite es un sistema de gestin de bases de datos relacional compatible con ACID, contenida en una relativamente pequea biblioteca escrita en C. SQLite es un proyecto de dominio pblico creado por D. Richard Hipp. A diferencia de los sistemas de gestin de bases de datos cliente-servidor, el motor de SQLite no es un proceso independiente con el que el programa principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el programa pasando a ser parte integral del mismo. El programa utiliza la funcionalidad de SQLite a travs de llamadas simples a subrutinas y funciones. Esto reduce la latencia en el acceso a la base de datos, debido a que las llamadas a funciones son ms eficientes que la comunicacin entre procesos. El conjunto de la base de datos (definiciones, tablas, ndices, y los propios datos), son guardados como un slo fichero estndar en la mquina host. Este diseo simple se logra bloqueando todo el fichero de base de datos al principio de cada transaccin.

CARACTERISTICAS:
La biblioteca implementa la mayor parte del estndar SQL-92, incluyendo transacciones de base de datos atmicas, consistencia de base de datos, aislamiento, y durabilidad (ACID), triggers y la mayor parte de las consultas complejas. SQLite usa un sistema de tipos inusual. En lugar de asignar un tipo a una columna como en la mayor parte de los sistemas de bases de datos SQL, los tipos se asignan a los valores individuales. Varios procesos o hilos pueden acceder a la misma base de datos sin problemas. Varios accesos de lectura pueden ser servidos en paralelo. Un acceso de escritura slo puede ser servido si no se est sirviendo ningn otro acceso concurrentemente. En caso contrario, el acceso de escritura falla devolviendo un cdigo de error.

309

Existe un programa independiente de nombre sqlite que puede ser utilizado para consultar y gestionar los ficheros de base de datos SQLite. Tambin sirve como ejemplo para la escritura de aplicaciones utilizando la biblioteca SQLite.

VENTAJAS
Tamao: SQLite tiene una pequea memoria y una nica biblioteca es necesaria para acceder a bases de datos, lo que lo hace ideal para aplicaciones de bases de datos incorporadas. Rendimiento de base de datos: SQLite realiza operaciones de manera eficiente y es ms rpido que MySQL y PostgreSQL. Portabilidad: se ejecuta en muchas plataformas y sus bases de datos pueden ser fcilmente portadas sin ninguna configuracin o administracin. Estabilidad: SQLite es compatible con ACID, reunin de los cuatro criterios de Atomicidad, Consistencia, Aislamiento y Durabilidad. SQL: implementa un gran subconjunto de la ANSI 92 SQL estndar, incluyendo sub-consultas, generacin de usuarios, vistas y triggers. Interfaces: cuenta con diferentes interfaces del API, las cuales permiten trabajar con C++, PHP, Perl, Python, Ruby, Tcl, groovy, etc. Costo: SQLite es de dominio pblico, y por tanto, es libre de utilizar para cualquier propsito sin costo y se puede redistribuir libremente.

DESVENTAJAS
Limitaciones en Where: esta limitacin est dada por el soporte para clausuras anidadas. Falta de Clave Fornea: se hace caso omiso de las claves forneas; esto quiere decir, cuando se realice la creacin de la tabla desde el modo consola, est permitiendo el uso de la clausura, aunque no realizara el chequeo de la misma. Falta de documentacin en espaol: si bien ya contamos con una comunidad latino americana de SQLite, sera importante encontrar mucha ms documentacin, libros, etc. como muchos otros motores de bases de datos cuentan hoy en da.

II.

MySQL
310

MySQL es un sistema de gestin de bases de datos relacional, multihilo y multiusuario con ms de seis millones de instalaciones.1 MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia especfica que les permita este uso. Est desarrollado en su mayor parte en ANSI C.

CARACTERISTICAS
Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente. Disponibilidad en gran cantidad de plataformas y sistemas. Posibilidad de seleccin de mecanismos de almacenamiento que ofrecen diferente velocidad de operacin, soporte fsico, capacidad, distribucin geogrfica, transacciones... Transacciones y claves forneas. Conectividad segura. Replicacin. Bsqueda e indexacin de campos de texto.

VENTAJAS
MySQL software es Open Source Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor Bajo costo en requerimientos para la elaboracin de bases de datos, ya que rendimiento. debido a su bajo

consumo puede ser ejecutado en una mquina con escasos Facilidad de configuracin e instalacin.

recursos sin ningn problema.

Soporta gran variedad de Sistemas Operativos Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio

gestor, sino en el sistema en el que est. Su conectividad, velocidad, y seguridad hacen de MySQL Server altamente apropiado para

acceder bases de datos en Internet El software MySQL usa la licencia GPL

311

DESVENTAJAS
Un gran porcentaje de las utilidades de MySQL no estn documentadas. No es intuitivo, como otros programas (ACCESS).

III. PostgreSQL
PostgreSQL es un SGBD relacional orientado a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de cdigo abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

CARACTERISTICAS
Claves ajenas tambin denominadas Llaves ajenas o Claves Forneas (foreign keys). Disparadores (triggers): Un disparador o trigger se define como una accin especfica que se realiza de acuerdo a un evento, cuando ste ocurra dentro de la base de datos. En PostgreSQL esto significa la ejecucin de un procedimiento almacenado basado en una determinada accin sobre una tabla especfica. Vistas. Integridad transaccional. Herencia de tablas. Tipos de datos y operaciones geomtricas. Soporte para transacciones distribuidas. Permite a PostgreSQL integrarse en un sistema distribuido formado por varios recursos (p.ej, una base de datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un ERP SAP) gestionado por un servidor de aplicaciones donde el xito ("commit") de la transaccin globlal es el resultado del xito de las transacciones locales.

VENTAJAS
Ampliamente popular - Ideal para tecnologias Web. Fcil de Administrar. Su sintaxis SQL es estndar y fcil de aprender. Footprint bajo de memoria, bastante poderoso con una configuracin adecuada. Multiplataforma.

312

Capacidades de replicacin de datos. Soporte empresarial disponible.

DESVENTAJAS
Sin experticia, configurar llega a ser un caos. Es fcil de vulnerar sin proteccion adecuada. El motor MyISAM es instalado por defecto y carece de capacidades de integridad relacional. InnoDB genera mucho footprint en memoria al indizar. El toolset empresarial tiene un costo adicional por suscripcin anual. Realizar revisiones llegar a ser una labor manual y tediosa para el DBA. Reducida cantidad de tipos de datos.

IV.

Firebird

Firebird es un sistema de administracin de base de datos relacional (o RDBMS) (Lenguaje consultas: SQL) de cdigo abierto, basado en la versin 6 de Interbase, cuyo cdigo fue liberado por Borland en 2000. Su cdigo fue reescrito de C a C++. El proyecto se desarrolla activamente, el 18 de abril de 2008 fue liberada la versin 2.1 y el 26 de diciembre de 2009 fue liberada la versin 2.5.0 RC1. La versin 2.5.2, ms reciente del proyecto, fue liberada el 6 de noviembre de 2012.

CARACTERISTICAS
Es multiplataforma, y actualmente puede ejecutarse en los sistemas operativos: Linux, HP-UX, FreeBSD, Mac OS, Solaris y Microsoft Windows. Ejecutable pequeo, con requerimientos de hardware bajos. Arquitectura Cliente/Servidor sobre protocolo TCP/IP y otros (embedded). Soporte de transacciones ACID y claves forneas. Es medianamente escalable. Buena seguridad basada en usuarios/roles. Diferentes arquitecturas, entre ellas el Servidor Embebido1 (embedded server) que permite ejecutar aplicaciones monousuario en ordenadores sin instalar el software Firebird. Bases de datos de slo lectura, para aplicaciones que corran desde dispositivos sin capacidad de escritura, como cd-roms. Existencia de controladores ODBC, OLEDB, JDBC, PHP, Perl, .net, etc.

313

Requisitos de administracin bajos, siendo considerada como una base de datos libre de mantenimiento, al margen de la realizacin de copias de seguridad.

Pleno soporte del estndar SQL-92, tanto de sintaxis como de tipos de datos. Completo lenguaje para la escritura de disparadores y procedimientos almacenados denominado PSQL.

Capacidad de almacenar elementos BLOB (Binary Large OBjects). Soporte de User-Defined Functions (UDFs). Versin autoejecutable, sin instalacin, excelente para la creacin de catlogos en CD-Rom y para crear versiones de evaluacin de algunas aplicaciones

Ventajas:
Firebird es una base de datos ligera y sencilla de instalar. Solo un ejecutable autoinstalable o un script segn plataforma. No consume grandes recursos en el servidor. Es rpida y potente. (Ver Lmites Firebird). Tiene un tipo de licencia similar a MPL (Mozilla Public License), que permite su uso de forma gratuita y con una distribucin muy poco restrictiva. Permite su utilizacin en nuestras aplicaciones sin la obligacin de tener que publicar el cdigo fuente, de la misma. Se pueden usar libreras externas que mejoran la operativa de Firebird. Existe un driver ODBC para Firebird. Existen multitud de componentes para distintos lenguajes de programacin para conectar con Firebird de forma nativa o indirecta.

DESVENTAJAS
Una desventaja de la BD es que ya fue descontinuada, y que solamente puede acceder a base de datos de Firebird/Interbase 6 con el dialecto 1 de SQL Solo manipulan lo ms usados en lenguaje SQL

314

CONCLUSIN
Para concluir con el ensayo podemos decir que MySql sera uno de los DBMS ms idneos para la utilizacin con el lenguaje de programacin Python, por un lado porque es una herramienta que ya hemos utilizado anteriormente y tambin porque de todas las DBMS habladas en este ensayo MySql es la que menos desventajas de importancia tiene.

BIBLIOGRAFA
http://www.aplicacionesempresariales.com/sqlite-el-motor-de-base-de-datos-agil-y-robusto.html http://es.wikipedia.org/wiki/SQLite http://es.wikipedia.org/wiki/MySQL#Caracter.C3.ADsticas http://mysqldaniel.wordpress.com/ventajas-y-desventajas/ http://es.wikipedia.org/wiki/PostgreSQL#Caracter.C3.ADsticas http://postgressql-adsi.blogspot.com/2011/11/ampliamente-popular-ideal-para.html http://es.wikipedia.org/wiki/Firebird#Caracter.C3.ADsticas http://www.firebirdmanual.com/firebird/es/firebird-manual/2/virtudes-del-firebird/12 http://www.slideshare.net/lejogu/fire-bird-1507055

315

ACTIVIDAD N:

FECHA ENVIO:

15-05-2013

FECHA ENTREGA:

17-05-2013

TEMA: UNIDAD N 1 OBJETIVO: PROBLEMA:

Elaboracin de un ensayo sobre las Diferencia de Python con otros lenguajes conocidos como Java, C#, entre otros. Introduccin a Python Identificar los elementos de IronPython Studio. Conocer las diferencias entre Python y otros lenguajes de programacin.

INDICADOR DE EVALUACION:

CALIFICACIN

Ensayo Profundizacin del tema

1 punto Descripcin clara y sustancial del tema y buena cantidad de detalles.

0,5 puntos Descripcin ambigua del tema a tratar, algunos detalles que no clarifican el tema.

0,1 puntos Descripcin inexacta del tema a tratar, sin detalles significativos o escasos. Tema impreciso y poco claro, sin coherencia entre las partes que lo componen.

Aclaracin sobre el tema

Tema bien organizado y claramente presentado as como de fcil seguimiento. Ensayo escrito con tipografa

Tema con informacin bien focalizada pero no suficientemente organizado.

Ensayo simple pero bien organizado con al menos tres errores de ortografa y tipografa difcil de leer.

Ensayo mal planteado que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa.

Alta calidad del diseo

sencilla y que cumple con los criterios de diseo planteados, sin errores de ortografa. El ensayo cumple con los cuatro

El ensayo cumple con los cuatro criterios de diseo pero no con la extensin solicitada (mnimo 3 pginas) o bien, estos puntos no han sido correctamente realizados.

El ensayo no cumple con los criterios de diseo planteados o bien no estn claramente ordenados o definidos ni cumple con la extensin mnima.

Elementos propios del ensayo

criterios de diseo (Resumen, palabras clave, cuerpo del ensayo y referencias bibliogrficas)

La presentacin/exposicin fue hecha en tiempo y forma, adems Presentacin del ensayo se entreg de forma limpia en el formato pre establecido (papel o digital).

La presentacin/exposicin fue hecha en tiempo y forma, aunque la entrega fue en el formato preestablecido.

La presentacin/exposicin no fue hecha en tiempo y forma, adems la entrega no se dio de la forma pre establecida por el docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas

Prctica en laboratorio Prctica en clase

316

Caso de estudio Investigativa Vinculacin con la colectividad

Resolucin de problemas,
ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo Villalta ROL Investigador - Analista DESCRIPCIN Investigar informacin necesaria para la realizacin del trabajo.

Diferencia de Python con otros lenguajes conocidos como Java, C#, entre otros

Resumen
En el siguiente ensayo, conoceremos las diferencias entre el lenguaje de programacin Python, con otros que tambin son muy conocidos como es Java, C# y Perl. Se mostraran caractersticas importantes de cada uno de estos lenguajes para ir comparndolas y viendo las diferencias que hay entre estos lenguajes de programacin.

SUMARIO
I. II. III. IV. Python Java C# Perl

317

I. Python
Python es un lenguaje de programacin interpretado cuya filosofa hace hincapi en una sintaxis muy limpia y que favorezca un cdigo legible. Se trata de un lenguaje de programacin multiparadigma, ya que soporta orientacin a objetos, programacin imperativa y, en menor medida, programacin funcional. Es un lenguaje interpretado, usa tipado dinmico y es multiplataforma.

CARACTERSTICAS Python es un lenguaje de programacin multiparadigma. Esto significa que ms que forzar a los programadores a adoptar un estilo particular de programacin, permite varios estilos: programacin orientada a objetos, programacin imperativa y programacin funcional. Python usa tipado dinmico y conteo de referencias para la administracin de memoria. Una caracterstica importante de Python es la resolucin dinmica de nombres; es decir, lo que enlaza un mtodo y un nombre de variable durante la ejecucin del programa (tambin llamado enlace dinmico de mtodos). Otro objetivo del diseo del lenguaje es la facilidad de extensin. Se pueden escribir nuevos mdulos fcilmente en C o C++. Python puede incluirse en aplicaciones que necesitan una interfaz programable.

II. Java
Java es un lenguaje de programacin originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compaa Oracle) y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. El lenguaje deriva mucho de su sintaxis de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede correr en cualquier mquina virtual Java (JVM) sin importar la arquitectura de la computadora. Java es un lenguaje de programacin de propsito general, concurrente, basado en clases, y orientado a 318

objetos, que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible. Su intencin es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier, lo que quiere decir que el cdigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.

CARACTERSTICA Lenguaje Simple Orientado a Objeto Distribuido Robusto Seguro Portable Interpretado y compilado a la vez Multihebra o Multihilo Dinmico Produce Applets Alto rendimiento

III. C#
C# es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que despus fue aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programacin diseados para la infraestructura de lenguaje comn. Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. El nombre C Sharp fue inspirado por la notacin musical, donde '#' (sostenido, en ingls sharp) indica que la nota (C es la nota do en ingls) es un semitono ms alta, sugiriendo que C# es superior a C/C++. Adems, el signo '#' se compone de cuatro signos '+' pegados.1

319

Aunque C# forma parte de la plataforma .NET, sta es una API, mientras que C# es un lenguaje de programacin independiente diseado para generar programas sobre dicha plataforma. CARACTERSTICAS C# es un lenguaje de programacin simple pero eficaz, diseado para escribir aplicaciones empresariales. El lenguaje C# es una evolucin de los lenguajes C y C++. Utiliza muchas de las caractersticas de C++ en las reas de instrucciones, expresiones y operadores. C# presenta considerables mejoras e innovaciones en reas como seguridad de tipos, control de versiones, eventos y recoleccin de elementos no utilizados (liberacin de memoria).

C# proporciona acceso a los tipos de API ms comunes: .NET Framework, COM, Automatizacin y estilo C. Asimismo, admite el modo unsafe, en el que se pueden utilizar punteros para manipular memoria que no se encuentra bajo el control del recolector de elementos no utilizados.

IV. Perl
Perl es un lenguaje de programacin diseado por Larry Wall en 1987. Perl toma caractersticas del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programacin. Estructuralmente, Perl est basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.

CARACTERSTICAS La estructura completa de Perl deriva ampliamente del lenguaje C. Perl es un lenguaje imperativo, con variables, expresiones, asignaciones, bloques de cdigo delimitados por llaves, estructuras de control y subrutinas.
320

Perl tambin toma caractersticas de la programacin shell. Todas las variables son marcadas con un Sigilo precedente (Sigil, en ingls). Los sigilos identifican inequvocamente los nombres de las variables, permitiendo a Perl tener una rica sintaxis. Notablemente, los sigilos permiten interpolar variables directamente dentro de las cadenas de caracteres (strings). Como en los shell, Perl tiene muchas funciones integradas para tareas comunes y para acceder a los recursos del sistema.

Perl toma las listas del Lisp, hash (memoria asociativa) del AWK y expresiones regulares del sed. Todo esto simplifica y facilita todas las formas del anlisis sintctico, manejo de texto y tareas de gestin de datos.

Todas las versiones de Perl hacen el tipificado automtico de datos y la gestin de memoria. El intrprete conoce el tipo y requerimientos de almacenamiento de cada objeto en el programa; reserva y libera espacio para ellos segn sea necesario. Las conversiones legales de tipo se hacen de forma automtica en tiempo de ejecucin; las conversiones ilegales son consideradas errores fatales.

BIBLIOGRAFIA
http://es.wikipedia.org/wiki/Python http://sheyla88.blogspot.es/ http://msdn.microsoft.com/es-es/library/aa287483(v=vs.71).aspx http://es.wikipedia.org/wiki/Perl#Caracter.C3.ADsticas

321

ACTIVIDAD N:
TEMA:

FECHA ENVIO:

15/05/2013

FECHA ENTREGA:

17/05/2013

Elaboracin de un ensayo sobre las Diferencia de Python con otros lenguajes conocidos como Java, C#, entre otros.

UNIDAD N 1:

Tipos de Datos Referencia de objetos Coleccin de tipos de datos Reconoce los componentes del IDE de IronPython

OBJETIVO: PROBLEMA:

Utilizando los buscadores de internet se puede desarrollar la tarea con mucha certeza.

INDICADOR DE EVALUACION:

CALIFICACIN

Ensayo
Profundizacin del tema

1 punto
Descripcin clara y sustancial del tema y buena cantidad de detalles. Tema bien organizado y

0,5 puntos
a tratar, algunos detalles que no clarifican el tema. Tema con informacin bien focalizada pero no suficientemente organizado.

0,1 puntos
a tratar, sindetalles significativos o escasos. Tema impreciso y poco claro, sin coherencia entre las partes que lo componen.

Descripcin ambigua del tema Descripcin inexacta del tema

Aclaracin sobre claramente presentado as el tema comode fcil seguimiento.

Ensayo escrito con tipografa Ensayo simple pero bien Alta calidad del diseo sencilla y que cumple con los organizado con al menos tres criterios de diseo planteados, sin errores de ortografa. El ensayo cumple con los Elementos propios del ensayo cuatro criterios de diseo (Resumen, palabras clave, cuerpo del ensayo y referencias bibliogrficas) El ensayo cumple con los errores de ortografa y tipografa difcil de leer.

Ensayo mal planteado que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa.

El ensayo no cumple con los

cuatro criterios de diseo pero criterios de diseo planteados no con la extensin solicitada (mnimo 3 pginas) o bien, estos puntos no han sido correctamente realizados. o bien no estn claramente ordenados o definidos ni cumple con la extensin mnima. La presentacin/exposicin no fuehecha en tiempo y forma,

Presentacin del La presentacin/exposicin ensayo fue hecha en tiempo y

La presentacin/exposicin fuehecha en tiempo y forma,

322

forma, ademsse entreg de aunquela entrega fue en el forma limpia en elformato pre establecido (papel odigital). formato preestablecido.

ademsla entrega no se dio de la formapre establecida por el docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Investigador - Analista DESCRIPCIN Resolucin de los problemas planteados.

RESUMEN:
Python es un lenguaje de programacin de muy alto nivel, llamado as porque su sintaxis es muy similar al ingls, tiene varias caractersticas que le saca ventaja entre los lenguajes de programacin conocidos actualmente, aunque hay otros que estn basados en Python, de tal manera que este ensayo se lo hace con el fin de puntualizar aquellas caractersticas que llaman la atencin de los programadores modernos, se puede decir que Python tambin puede ser incrustado con fragmentos de cdigo de otros lenguajes de programacin por lo que cualquiera que programe pueda tomar cdigo que le guste de otro lenguaje para introducirlo en Python, pero de seguro que conociendo las funcionalidades y facilidades que ofrece Python no habr necesidad de llegar a esas instancias, sin ms que decir analicen y juzguen.

PALABRAS CLAVES: Python sobre los lenguajes de programacin Diferencias entre lenguajes modernos
323

Ventajas de Python sobre lenguajes de programacin conocidos

ENSAYO ACERCA DE LAS DIFERENCIAS ENTRE PYTHON CON OTROS LENGUAJES CONOCIDOS. INTRODUCCIN1:
Python es simple. Ofrece ms apoyo e infraestructura para programas grandes que el intrprete de rdenes. Por otra parte, tambin ofrece mucha ms comprobacin de errores que C y, al ser un lenguaje de muy alto nivel, tiene incluidos tipos de datos de alto nivel, como matrices flexibles y diccionarios, que llevaran das de programacin en C. Dados sus tipos de datos ms generales, se puede aplicar a un rango de problemas ms amplio que Awk o incluso Perl, pero muchas cosas son, al menos, igual de fciles en Python que en esos lenguajes. Python te permite dividir su programa en mdulos reutilizables desde otros programas Python. Viene con una gran coleccin de mdulos estndar que puedes utilizar como base de tus programas (o como ejemplos para empezar a aprender Python). Tambin hay mdulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a IGU (interfaz grfica con el usuario) como Tk.

http://www.programacion.com/articulo/guia_de_aprendizaje_de_python_65

DESARROLLO:
Python es un lenguaje muy expresivo, lo que significa que por regla general podremos escribir bastantes menos lnea de cdigo Python que si estuvisemos escribiendo la misma aplicacin, digamos, C++ o Java. Python presenta varias diferencias en su desarrollo con algunos lenguajes de programacin conocidos, las cuales se van a explicar a continuacin:

MULTIPARADIGMA:

324

A diferencia de Java, C#, Visual Basic entre otros Python posee la caracterstica de ser multiparadigma lo que quiere decir que puede trabajar de distintas formas, es decir puede ser utilizado para hacer una aplicacin mediante una programacin estructurada, se lo puede utilizar para programar orientado a objetos y tambin puede ser utilizado de forma funcional.

NO NECESITA DECLARAR VARIABLES:

Esta caracterstica saca muchas ventajas ante cualquier lenguaje de programacin conocido como Java, C#, Visual Basic, C++, entre otros que estos lenguajes siempre deben declarar la variable y el tipo de datos que va a ser almacenado en esa variable, en cambio Python puede utilizar cualquier variable en cualquier parte del programa sin necesidad de declararlo o mucho menos indicando que tipo de dato va a almacenar, todo lo hace Python internamente.

USO DE TABULACIONES:

En Java, C#, Visual Basic, C++, C y otros utilizan las tabulaciones como convencin de estructura, mas no en Python las tabulaciones indican que se agrupa un fragmento de cdigo es el equivalente de las llaves que se utiliza en los lenguajes de programacin antes mencionados.

HERENCIA MULTIPLE:

En sentido terico Python posee la herencia mltiple cuyo caso no ocurre en Java, C#, Visual Basic y dems, Python puede heredar atributos de una o ms clases padres y mtodos, por lo que tambin es una caracterstica que hace a Python ms ventajoso.

MULTIPLATAFORMA Y LIBRE:

Esta caracterstica no es muy nueva pero para C# y Visual Basic si es diferente ya que necesitan licencia para poseer alguna aplicacin desarrollada en estos lenguajes adems de ejecutarse solo en Windows, en cambio Python es software libre y puede ejecutarse en cualquier plataforma, pero solo cuando se usa Python en toda la aplicacin, es decir si importa libreras de .NET se ata a Windows.

SINTAXIS SENCILLA Java es un lenguaje de programacin cuya sintaxis es sencilla al igual que Visual Basic o C#, pero Python va mucho ms lejos ya que leer un programa hecho en
325

Python es bsicamente estar leyendo en ingls por lo que lo categorizan como un lenguaje de programacin de muy alto nivel. FCIL DE APRENDER

Al ser un lenguaje de programacin de muy alto nivel es muy bueno para aquellas personas que deseen iniciarse en la programacin tanto estructurada, orientada a objetos o funcional, esto a diferencia de C#, Visual Basic, C++ o PHP, que para aprender estos lenguajes ya debe tener una base para iniciarse en ellos.

AMPIABLE

Python es un lenguaje de programacin que puede poseer mdulos con cdigo de otro lenguaje de programacin, es una caracterstica que algunos lenguajes poseen pero contra Java es ventajoso.

INCRUSTADO

Bueno as como es ampliable tambin puede ser incrustado en otros cdigos como C/C++, esta caracterstica es muy poco ventajosa ya que muchos lenguajes de programacin puede ser incrustado en otros.

CONCLUSIN:
Python en algunas caractersticas le saca mucha ventaja sobre sus principales competencias en el mercado actual como lo es Java, y mucha mas ventaja de sus rivales licenciados como lo es C# o el mismo Visual Basic, aunque siendo mas realistas existen muchas mas personas expertas en Visual Basic y temen migrar hacia un nuevo lenguaje de programacin indiferente de cual sea. Pero en lo personal Python me parece una herramienta muy interesante que puede facilitar la programacin y hacerla mucho mas sencilla que otros lenguajes de programacin lo hacen, adems de hacer aplicaciones mucho ms ligeras.

REFERENCIA BIBLIOGRFICA:
http://www.programacion.com/articulo/guia_de_aprendizaje_de_python_65 http://www.monografias.com/Links/Computacion/Programacion/more5.shtml 326

ACTIVIDAD N:

10

FECHA ENVIO:

05/06/2013

FECHA ENTREGA:

07/06/2013

TEMA: UNIDAD N3: OBJETIVO: PROBLEMA:

ELABORACIN DE PROGRAMAS BSICOS EN EL LENGUAJE DE PROGRAMACIN PYTHON INTRODUCCIN A LA PROGRAMACIN POR PROCEDIMIENTOS Utilizar los tipos y las colecciones de datos en la creacin de programas. Maneja los tipos de datos y las colecciones de datos

INDICADOR DE EVALUACION:

CALIFICACIN

Habilidad para aplicar el conocimiento de las Ciencias Bsicas de la profesin

Destreza para el manejar procesos de Ingeniera de Sistemas Resuelve problemas de Ingeniera de Sistemas. Maneja los tipos de datos y las colecciones de datos

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Desarrollador DESCRIPCIN Desarrolla planteados y soluciona los ejercicios

327

Ejercicio #1: Disee el algoritmo (en pseudocdigo) de un programa que: 1) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2) Muestre por pantalla el nmero en letras (dato cadena) de la cara opuesta al resultado obtenido.

Nota 1: En las caras opuestas de un dado de seis caras estn los nmeros: 1-6, 2-5 y 3-4. Nota 2: Si el nmero del dado introducido es menor que 1 mayor que 6, se mostrar el mensaje: "ERROR: Nmero incorrecto.".

En pantalla:
Introduzca nmero del dado: 5 En la cara opuesta est el "dos".

Introduzca nmero del dado: 8 ERROR: Nmero incorrecto.

CDIGO

Uno="\"Uno\"" Dos="\"Dos\"" Tres="\"Tres\"" Cuatro="\"Cuatro\"" Cinco="\"Cinco\"" Seis="\"Seis\""

328

Lista=[Seis,Cinco,Cuatro,Tres,Dos,Uno]

NumeroDado= int(raw_input("Ingreso numero del dado: "))

if NumeroDado<7: print "El numero del lado contrario es: ",Lista[NumeroDado-1] else: print "Ese numero no esta en el dado" input()

CAPTURAS DE LA EJECUCIN

Ejercicio #2:

329

Escribir un programa que calcule la nmina de un trabajador de la manera siguiente. El trabajador cobra un precio fijo por hora y se le retiene un 5% en concepto de IRPF. El programa debe pedir el nombre del trabajador, las horas trabajadas y el precio que cobra por hora. Como salida debe imprimir el sueldo bruto, la retencin y el sueldo neto.

CDIGO

nombre = raw_input("Ingrese nombre del trabajador: ") horas = int(input("Ingrese numero de horas trabajadas: ")) preciofh = float(input("Ingrese el precio fijo por hora: "))

sueldoBruto = preciofh * horas retencion = sueldoBruto * 0.05 sueldoNeto = sueldoBruto - retencion

print "\nEl Sr. \"", nombre, "\" obtiene los siguientes valores:" print "Sueldo bruto: \t", sueldoBruto print "Retencin (IRPF): ", retencion print "Sueldo Neto: \t", sueldoNeto

input()

CAPTURAS DE LA EJECUCIN
330

ACTIVIDAD N:
TEMA: UNIDAD N2: OBJETIVO: PROBLEMA:

FECHA ENVIO: Resolver 2 ejercicios propuestos.

FECHA ENTREGA:

Introduccin a la Programacin por Procedimientos Escribir programas utilizando las respectivas estructuras de control y manejo de errores que se pueden producir. Desconocimiento del lenguaje de programacin con Python.

INDICADOR DE EVALUACION:

CALIFICACIN
0,5 puntos 0,1 puntos

Cuadro sinptico
Profundizacin del tema

1 punto

Descripcin clara y sustancial deltema y buena cantidad dedetalles. Cuadro sinptico bien

Descripcin ambigua del tema,algunos detalles que no clarificanel tema. Cuadro sinptico bien focalizadopero no suficientementeorganizado.

Descripcin incorrecta del tema,sin detalles significativos oescasos. Cuadro sinptico impreciso y pococlaro, sin coherencia entre laspartes que lo componen.

Aclaracinsobre el organizadoy claramente tema presentado as comode fcil seguimiento.

331

Cuadro sinptico sobresaliente Alta calidad deldiseo yatractivo que cumple con loscriterios de diseo planteados, sinerrores de ortografa. Se organizaron las ideas de Elementospropios delcuadrosinptic o formajerrquica y el titulo expresclaramente la idea central deltema. Las ideas secundariascomplementaron el tema. La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre establecido (papel odigital).

Cuadro sinptico simple pero bienorganizado con al menos treserrores de ortografa.

Cuadro sinptico mal planteadoque no cumple con los criterios dediseo planteados y con ms detres errores de ortografa.

Las ideas se organizaron de forma La organizacin de ideas no fue la jerrquica pero las ideas adecuada ya que no estn

secundarias fueron vagas, el titulo jerarquizadas y no existe no corresponde al tema asignado. coherencia con las ideas secundarias.

La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el docente.

Cuadro comparativo
Profundizacin del tema

1 punto

0,5 puntos

0,1 puntos

Descripcin clara y sustancial del cuadro y buena cantidad de detalles. Cuadro bien organizado y claramente presentado as comode fcil seguimiento. Cuadro sobresaliente y

Descripcin ambigua del tema, algunos detalles que no clarifican el tema. Cuadro sinptico bien focalizado pero no suficientemente organizado.

Descripcin incorrecta del tema, sin detalles significativos o escasos. Cuadro sinptico impreciso y poco claro, sin coherencia entre las partes que lo componen.

Aclaracin sobre el tema

Cuadro sinptico simple pero bien Cuadro sinptico mal planteado organizado con al menos tres errores de ortografa. que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa. No se ubicaron o se ubicaron deforma incorrecta los temascentrales y las variables no tienenrelacin con el tema principal.

Alta calidad del diseo

atractivo que cumple con los criterios de diseo planteados, sin errores de ortografa.

Los temas centrales se ubicaron Se ubicaron los temas centrales Elementos propios del cuadro comparativo en la columna izquierda y encorrecto orden y en la partesuperior se colocaron las variablesy la informacin fue acertada La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido. enla columna izquierda pero lasvariables no se colocaron de formaordenada. La informacin hacereferencia al tema.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el

332

establecido (papel odigital).

docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arevalo ROL Investigador - Analista DESCRIPCIN Realizador de la tarea, bsqueda, seleccin de informacin adecuada.

Tarea 1: Una interesantes variacin del programa es cambiar los * por los nmeros correspondientes. Pueden darse dos planteamientos, el ms sencillo es cambiar los * en las listas, pero opcin no es la ms flexible, y no debera ser el planteamiento que utilice. Ms bien se debe cambiar el cdigo del proceso para que, en lugar de aadir cada fila de dgitos en la lnea de una sola vez, se aada carcter por carcter. As siempre que encuentre un *, se colocar el dgito correspondiente. Vista Codigo
def reemplazar(numero, valor): retorno = "";

for i in numero: if i == "*": retorno += str(valor) else:

333

retorno += i

return retorno

cero = [" **** ", " * * ", " * * ", " * * ", " * * ", " * * ", " **** "]

" *** "]

cuatro = [" * ", " ** ", " * * ", " * * ", " ****** ",

uno = [" * ", " ** ", " * ", " * ", " * ", " * ", " *** "]

" * ", " * "]

cinco = [" *** ", "* "* ", ",

" **** ", " * ", * ",

dos = [" *** ", " * * ", " * * ", " * ", " * ", "* ",

"

" *** "]

seis = [" *** ", "* "* ", ",

" ***** "]

" **** ", " * * ",

tres = [" *** ", " " * ", * ",

" * * ", " *** "]

" *** ", " " * ", * ",

siete = [" ***** ", " * ",

" * ",

334

" * ", " * ", "* "* ", "]

ocho = [" *** ", " * * ", " * * ", " *** ", " * * ", " * * ", " *** "]

nueve = [" *** ", " * * ", " * * ", " **** ", " " * ", * ",

" *** "]

335

digitos = [cero, uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve]

try:

numero = str( input('INGRESE UN VALOR :')) row = 0

while row < 7: linea = "" columna = 0

while columna < len(numero): num = int(numero[columna]) digit = digitos[num] linea += reemplazar(digit[row], num) + " " columna += 1

print linea row += 1

except: print 'Error' input()

Pantallas Insertando el valor 12345 tenemos:

336

Insertando el valor 67890 tenemos:

Insertando el valor 25420 tenemos:

Tarea 2: Se pretende crear un programa que pida al usuario introducir un nmero en un bucle while, creando una lista de los nmeros introducidos. Cuando el usuario haya finalizado (al pulsar la tecla ENTER), se imprimirn todos los nmeros introducidos, la cantidad de nmeros, la suma de los nmeros, el nmero ms bajo y el ms elevado y la media (promedio) de los nmeros. 337

Vista Codigo
def imprimir_numeros(numeros): print "Nmeros ingresados" for i in range(0, len(numeros)): print "Nmero " + str(i + 1) + ": " + str(numeros[i])

def cantidad_numeros(numeros): return len(numeros)

def suma_numeros(numeros): suma = 0 for i in numeros: suma += i

return suma

def imprimir_rango(numeros): numeros.sort()

print "El nmero menor es: " + str(numeros[0]) print "El nmero mayor es: " + str(numeros[len(numeros) - 1])

def promedio_numeros(numeros): return suma_numeros(numeros) / cantidad_numeros(numeros)

#Codigo principal entradas = 1 numeros = []

while True:

338

try: texto = str(input('Ingrese nmero el ' + str(entradas) + ' : '))

if texto: break else: num = int(texto) numeros.append(num) continue

except: print "Error" continue

print() print("RESULTADOS") print() imprimir_numeros(numeros) print() print "Cantidad total de nmeros" + cantidad_numeros(numeros) print() print "La suma total es: " + suma_numeros(numeros) print() imprimir_rango(numeros) print() promedio_numeros(numeros)

339

ACTIVIDAD N:

FECHA ENVIO:

FECHA ENTREGA:

TEMA: UNIDAD N2:

Resolver 2 ejercicios propuestos. Introduccin a la Programacin por Procedimientos Escribir programas utilizando las respectivas estructuras de control y manejo de errores que se pueden producir. Desconocimiento del lenguaje de programacin con Python.

OBJETIVO:

PROBLEMA:

INDICADOR DE EVALUACION:

CALIFICACIN

Cuadro sinptico
Profundizacin del tema

1 punto

0,5 puntos

0,1 puntos

Descripcin clara y sustancial deltema y buena cantidad dedetalles. Cuadro sinptico bien

Descripcin ambigua del tema,algunos detalles que no clarificanel tema. Cuadro sinptico bien focalizadopero no suficientementeorganizado.

Descripcin incorrecta del tema,sin detalles significativos oescasos. Cuadro sinptico impreciso y pococlaro, sin coherencia entre laspartes que lo componen.

Aclaracinsobre el organizadoy claramente tema presentado as comode fcil seguimiento. Cuadro sinptico sobresaliente Alta calidad deldiseo yatractivo que cumple con loscriterios de diseo planteados, sinerrores de ortografa. Se organizaron las ideas de Elementospropios delcuadrosinptic o formajerrquica y el titulo expresclaramente la idea central deltema. Las ideas secundariascomplementaron el tema.

Cuadro sinptico simple pero bienorganizado con al menos treserrores de ortografa.

Cuadro sinptico mal planteadoque no cumple con los criterios dediseo planteados y con ms detres errores de ortografa.

Las ideas se organizaron de forma La organizacin de ideas no fue la jerrquica pero las ideas adecuada ya que no estn

secundarias fueron vagas, el titulo jerarquizadas y no existe no corresponde al tema asignado. coherencia con las ideas secundarias.

340

La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre establecido (papel odigital).

La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el docente.

Cuadro comparativo
Profundizacin del tema

1 punto

0,5 puntos

0,1 puntos

Descripcin clara y sustancial del cuadro y buena cantidad de detalles. Cuadro bien organizado y claramente presentado as comode fcil seguimiento. Cuadro sobresaliente y

Descripcin ambigua del tema, algunos detalles que no clarifican el tema. Cuadro sinptico bien focalizado pero no suficientemente organizado.

Descripcin incorrecta del tema, sin detalles significativos o escasos. Cuadro sinptico impreciso y poco claro, sin coherencia entre las partes que lo componen.

Aclaracin sobre el tema

Cuadro sinptico simple pero bien Cuadro sinptico mal planteado organizado con al menos tres errores de ortografa. que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa. No se ubicaron o se ubicaron deforma incorrecta los temascentrales y las variables no tienenrelacin con el tema principal.

Alta calidad del diseo

atractivo que cumple con los criterios de diseo planteados, sin errores de ortografa.

Los temas centrales se ubicaron Se ubicaron los temas centrales Elementos propios del cuadro comparativo en la columna izquierda y encorrecto orden y en la partesuperior se colocaron las variablesy la informacin fue acertada La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre establecido (papel odigital). La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido. enla columna izquierda pero lasvariables no se colocaron de formaordenada. La informacin hacereferencia al tema.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio

Prctica en laboratorio Prctica en clase Resolucin de problemas,

341

Investigativa Vinculacin con la colectividad

ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE ROL DESCRIPCIN

Daniel Arvalo

Investigador - Analista

Realizador de la tarea, bsqueda, seleccin de informacin adecuada.

Ejercicio N1 Se leen tres datos que representan el nombre, sueldo bsico y antigedad de un empleado y se debe escribir el nombre y el sueldo a cobrar. El sueldo se calcula, adicionando al bsico el 15 % del mismo, si la antigedad supera los 3 aos; 30 % del mismo, si la antigedad supera los 6 aos y 50 % del mismo, si la antigedad supera los 10 aos. Vista Codigo
nombre = raw_input("Ingrese nombre: ") sueldo = int(input("Ingrese sueldo: ")) antiguedad = int(input("Ingrese antiguedad: ")) sueltotal = 0 if antiguedad>10: sueltotal = sueldo + (sueldo*0.5) else:

342

if antiguedad>6: sueltotal = sueldo + (sueldo*0.30) else: if antiguedad>3: sueltotal = sueldo + (sueldo*0.15) else: sueltotal = sueldo print "El Sr. ", nombre, " tiene un sueldo de :", sueltotal input()

Pantallas

Ejercicio N2 Se leen tres valores que corresponden al da, mes y ao. Verificar si los datos constituyen una fecha posible o no. Vista Codigo
dias = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

try: # fecha = date(dia, mes, anio)

dia = int(input("Ingrese dia: "))

343

mes = int(input("Ingrese mes: ")) anio = int(input("Ingrese anio: "))


confirmar = False if (mes >= 1 and mes <=12): if ((anio % 4 == 0) and (anio % 100 != 0)) or (anio % 400 == 0): dias[1] = 29 else: dias[1] = 28 if dia >= 1 and dia <= dias[(mes - 1)]: confirmar = True else: confirmar = False else: confirmar = False if confirmar:

print "La fecha es correcta" else: print "La fecha " + str(dia) + "/" + str(mes) + "/" + str(anio) + " no es correcta" except: print "Error" input()

Pantallas

344

ACTIVIDAD N:
TEMA: UNIDAD N2: OBJETIVO: PROBLEMA:

FECHA ENVIO: Resolver 2 ejercicios propuestos.

FECHA ENTREGA:

Introduccin a la Programacin por Procedimientos Utilizar los tipos y las colecciones de datos en la creacin de programas Manejo de los tipos de datos y las colecciones de datos

INDICADOR DE EVALUACION:

CALIFICACIN

Cuadro sinptico
Profundizacin del tema

1 punto

0,5 puntos

0,1 puntos

Descripcin clara y sustancial deltema y buena cantidad dedetalles. Cuadro sinptico bien

Descripcin ambigua del tema,algunos detalles que no clarificanel tema. Cuadro sinptico bien focalizadopero no suficientementeorganizado.

Descripcin incorrecta del tema,sin detalles significativos oescasos. Cuadro sinptico impreciso y pococlaro, sin coherencia entre laspartes que lo componen.

Aclaracinsobre el organizadoy claramente tema presentado as comode fcil seguimiento. Cuadro sinptico sobresaliente Alta calidad deldiseo yatractivo que cumple con loscriterios de diseo planteados, sinerrores de ortografa. Se organizaron las ideas de Elementospropios delcuadrosinptic o formajerrquica y el titulo expresclaramente la idea central deltema. Las ideas secundariascomplementaron el tema. La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre establecido (papel odigital).

Cuadro sinptico simple pero bienorganizado con al menos treserrores de ortografa.

Cuadro sinptico mal planteadoque no cumple con los criterios dediseo planteados y con ms detres errores de ortografa.

Las ideas se organizaron de forma La organizacin de ideas no fue la jerrquica pero las ideas adecuada ya que no estn

secundarias fueron vagas, el titulo jerarquizadas y no existe no corresponde al tema asignado. coherencia con las ideas secundarias.

La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el docente.

Cuadro comparativo

1 punto

0,5 puntos

0,1 puntos

345

Profundizacin del tema

Descripcin clara y sustancial del cuadro y buena cantidad de detalles. Cuadro bien organizado y claramente presentado as comode fcil seguimiento. Cuadro sobresaliente y

Descripcin ambigua del tema, algunos detalles que no clarifican el tema. Cuadro sinptico bien focalizado pero no suficientemente organizado.

Descripcin incorrecta del tema, sin detalles significativos o escasos. Cuadro sinptico impreciso y poco claro, sin coherencia entre las partes que lo componen.

Aclaracin sobre el tema

Cuadro sinptico simple pero bien Cuadro sinptico mal planteado organizado con al menos tres errores de ortografa. que no cumple con los criterios de diseo planteados y con ms de tres errores de ortografa. No se ubicaron o se ubicaron deforma incorrecta los temascentrales y las variables no tienenrelacin con el tema principal.

Alta calidad del diseo

atractivo que cumple con los criterios de diseo planteados, sin errores de ortografa.

Los temas centrales se ubicaron Se ubicaron los temas centrales Elementos propios del cuadro comparativo en la columna izquierda y encorrecto orden y en la partesuperior se colocaron las variablesy la informacin fue acertada La presentacin/exposicin Presentacin del cuadro sinptico fuehecha en tiempo y forma, ademsse entreg de forma limpia en elformato pre establecido (papel odigital). La presentacin/exposicin fuehecha en tiempo y forma, aunquela entrega no fue en el formato preestablecido. enla columna izquierda pero lasvariables no se colocaron de formaordenada. La informacin hacereferencia al tema.

La presentacin/exposicin no fuehecha en tiempo y forma, ademsla entrega no se dio de la formapre establecida por el docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE Daniel Arvalo ROL Investigador - Analista DESCRIPCIN Realizador de la tarea, bsqueda, seleccin de informacin adecuada.

346

Ejercicio N1 Disee el algoritmo (en pseudocdigo) de un programa que: 1) Pida por teclado el resultado (dato entero) obtenido al lanzar un dado de seis caras. 2) Muestre por pantalla el nmero en letras (dato cadena) de la cara opuesta al resultado obtenido.

Nota 1: En las caras opuestas de un dado de seis caras estn los nmeros: 1-6, 2-5 y 3-4.

Nota 2: Si el nmero del dado introducido es menor que 1 mayor que 6, se mostrar el mensaje: "ERROR: Nmero incorrecto.".

En pantalla:
Introduzca nmero del dado: 5 En la cara opuesta est el "dos".

Introduzca nmero del dado: 8 ERROR: Nmero incorrecto.

Vista Codigo
dado = ["seis", "cinco", "cuatro", "tres", "dos", "uno"] try: numero = int(input("Introduzca numero del dado: ")) if numero < 1 or numero > 6: print "ERROR: Numero incorrecto." else: print "En la cara opuesta esta el \"" + dado[numero - 1] + "\"."

347

except: print "Error." input()

Pantallas

348

Ejercicio N2 Escribir un programa que calcule la nmina de un trabajador de la manera siguiente. El trabajador cobra un precio fijo por hora y se le retiene un 5% en concepto de IRPF. El programa debe pedir el nombre del trabajador, las horas trabajadas y el precio que cobra por hora. Como salida debe imprimir el sueldo bruto, la retencin y el sueldo neto

349

try: nombre = str(input("Ingrese el nombre del trabajador: ")) horas = int(input("Ingrese las horas trabajadas: ")) precio = float(input("Ingrese el precio por hora: "))

sueldoBruto = horas*precio retencion = sueldoBruto * 5 / 100 sueldoNeto = sueldoBruto - retencion

print ""

print "El trabajador", nombre, "tiene:" print "Sueldo bruto: ", sueldoBruto print "Se le retiene: ", retencion print "Sueldo neto: ", sueldoNeto

input("") except: print "Error"

Pantallas

350

CONCLUSIONES

En este presente trabajo realizado hemos adquirido conocimiento sobre la Programacin de Python, en donde es un Lenguaje de Alto Nivel, que en la actualidad muchas empresas lo utilizan como por ejemplo: Yahoo, Google, Walt Disney, NASA, Red Hat, entre Otros. Adems este trabajo es una gua de aprendizaje, quienes estos interesados a aprender la Programacin de Python este documento lo facilita, en donde esta detallado cada uno sus funciones en la programacin para la creacin de herramientas que son tiles en la vida diaria. Python, es una herramienta flexible que permite tanto la enseanza de la

programacin orientada a objetos modernos

RECOMENDACIONES Realizar correcta y oportunamente los talleres o ejercicios prcticos para tener un mayor entendimiento de lo terico. Realizar adecuadamente el portafolio, con sus respectivas normas de calidad ISO 9001-2008. Administrar correctamente el tiempo para realizar las tareas que contiene el portafolio. Contar con una correcta reestructuracin del contenido del portafolio para mayor entendimiento del usuario final.
351

352

EVALUACIONES PARCIALES

353

354

PROYECTO FINAL

355

CONTROL DE PROYECTO N:
TEMA:

FECHA ENVIO:

14/09/2012 - 14/09/2012

SISTEMA GESTION CONTROL Y AUTOMATIZACION DE CLIENTES, ABOGADOS, AGENTES SUSCRIPTORES, PAGOS, CASOS Y AGENDA, PARA EL CONSORCIO JURIDICO CHACAGUASAY Y ASOCIADOS Identificar problemas, en las reas donde vamos a trabajar y recolectar informacin necesaria acerca de la empresa donde vamos a implementar nuestro Sistema, con el fin de analizar la misma y buscar los posibles problemas, para luego proceder a establecer alternativas de solucin.

OBJETIVO:

PROBLEMA: INDICADOR DE EVALUACION:

CALIFICACIN

Valoracin
Introduccin

1 punto

0,5 puntos

0,1 puntos

La introduccin incluye el propsito, No se presenta la exposicin general exposicin general del tema, objetivos del tema o las subdivisiones claros y subdivisiones principales. principales. El propsito, el tema y los objetivos requieren clarificacin o no se presentan de forma objetiva.

Organizacin (prrafos y transiciones)

Cohesin

La introduccin est incompleta, es inefectiva, confusa o est ausente. No incluye exposicin general del tema, sus subdivisiones principales o no son relevantes. El propsito, el tema y los objetivos no estn claros. Las ideas se presentan en orden Las ideas presentan orden lgico. Las ideas no se presentan en orden lgico. Tiene coherencia pero la transicin de lgico. Tiene coherencia y presenta fluidez las ideas entre los prrafos no se No tiene coherencia, las transiciones en la transicin de las ideas. presenta con fluidez. entre prrafos es pobre o ninguna y el El orden de los prrafos refuerza el El orden y las ideas de los prrafos orden de los prrafos no refuerza el contenido. refuerzan limitadamente el contenido. contenido. Cada prrafo presenta una idea Necesita aadir ms espacios en Los espacios en blanco no son distinta. blanco para contribuir a la suficientes para contribuir a la El espacio en blanco o las grficas organizacin. organizacin. contribuyen a la organizacin. La estructura o el orden de las Tiene errores en la estructura de las Tiene demasiados errores de palabras (sintaxis) en las oraciones oraciones, en la puntuacin y en la puntuacin y en la utilizacin de los es lgico. utilizacin de los pronombres. pronombres. Tiene muy pocos errores de Las palabras seleccionadas son poco Las palabras seleccionadas son puntuacin o en la utilizacin de apropiadas. Son frecuentes inapropiadas. pronombres. fragmentos y oraciones incompletas. Selecciona cuidadosamente las palabras. No tiene errores ortogrficos, de acentuacin o de conjugacin de verbos. Voz activa, apropiada para el tema y la audiencia. Tiene errores ortogrficos, de Tiene muchos errores que distraen acentuacin o conjugacin de verbos. considerablemente o totalmente al La voz no es activa y es poco lector. apropiada para el tema y la audiencia. Los errores distraen al lector. Muestra falta de cuidado.

Correccin (gramtica)

356

Contenido

Todas las ideas que se presentan tienen relacin directa con el tema. Las ideas se presentan con claridad y objetividad. stas no se repiten ni se presentan lagunas. No utiliz el copiar y pegar.

Una buena cantidad de las ideas que se presentan tienen relacin con el tema. stas deben presentarse con mayor claridad u objetividad. Algunas ideas se repiten. El documento presenta muy poca originalidad.

Las ideas que se presentan tienen poca o ninguna relacin con el tema, estn pobremente definidas, no son claras ni se presentan con objetividad. Muchas ideas se repiten. El texto es prcticamente un copiado y pegado.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA

Intraclase Extraclase

Individual Grupal

Taller Sntesis, esquemas Caso de estudio Investigativa Vinculacin con la colectividad

Prctica en laboratorio Prctica en clase Resolucin de problemas,


ejercicios

Ensayo, artculo Informe de exposicin

ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA: NOMBRE ROL DESCRIPCIN Investigador - Analista

INTRODUCCIN
Con el nimo de aplicar y de alguna manera cumplir con el objetivo de nuestra especialidad y porque no decirlo de la universidad, hemos credo conveniente
357

realizar nuestro proyecto en el bufete de abogados. PARQUE COLN organizacin en la cual se ha venido realizando los procesos de gestin y manipulacin de informacin de una manera manual ocasionando en

muchos de los casos duplicidad, perdida de los datos asi como la falta de optimizacin y organizacin de la informacin lo que ha provocado que se

dificulte el control de la misma, otra cuestin es el control de registro de todos los socios con que cuenta la empresa ya que debe rendir cuentas a las entidades pertinentes.

A todo lo anterior debemos agregar que en la actualidad vivimos en un medio virtualizado, por ende es imprescindible el uso de la tecnologa como una herramienta indispensable de comunicacin.

Por lo tanto en este proyecto tenemos como intencin poder aportar con nuestros conocimientos a dicha institucin, teniendo como finalidad la

estructuracin de un sistema que permita controlar manipular y clasificar los datos de manera ms ptima y eficiente, sin dejar de por medio la orientacin de los beneficiarios en cuanto al manejo de nuestro sitio Web el mismo que contara con, gestin de Registro, Actualizacin, Eliminacin y Control Pagos, Socios, Mviles y Choferes.

1. ESTUDIO PRELIMINAR
1.1. Propsito
Identificar problemas, en las reas donde vamos a trabajar y recolectar informacin necesaria acerca de la empresa donde vamos a implementar nuestro Sistema, con el fin de analizar la misma y buscar los posibles problemas, para luego proceder a establecer alternativas de solucin.
358

1.2. Datos de la empresa


Nombre: Chacaguasay y asociados. Telefono: 0989669966 Ciudad: Machala Direccion Pasaje y Vela, esquina Correo

disemax_0077@yahoo.es

1.3. Cometido de la empresa


Chacaguasay y asociados es un estudio jurdico fundado hace 3 aos por su principal representante y gerente Abg. Luis Miguel Chacaguasay Molina. El fin de esta empresa es brindar asesora legal a sus clientes en cualquiera de las distintas reas de Derecho, brindado apoyo en juicios como Civil, Penal, Mercantil, Laboral, Niez, Alimentos, Aduaneros entre otros. Cuenta con un conjunto de abogados con aos de experiencia, estos abogados se encuentran repartidos en toda la provincia de El Oro, ubicados en cada Cantn para que sus clientes o afiliados tengan total cobertura. Lo que busca el estudio jurdico es llevar a cabo el proceso de afiliacin para mayor asesora, el cual consiste en que una persona se puede afiliar por un ao, con un costo de $100 dlares, los cuales pueden ser cancelados al contado, o existe la facilidad de pagarlos durante 10 meses, con $10 dlares cada mes. Cuando persona est afiliada cuenta con asesora legal en toda la provincia de El Oro, las 24 horas del da, los 365 das de la semana, esto brinda total soporte y confianza para sus afiliados, ya que no se est exento de que en cualquier momento se puedan solicitar estos servicios. Durante este ao de afiliacin los afiliados pueden pedir asesora cuantas veces lo requieran y tiene mayores descuentos en los procesos legales. El estudio jurdico tambin cuenta con Agentes Suscriptores los cuales se encargan de promocionar la afiliacin al estudio jurdico, y dar a conocer sus beneficios.
359

1.4. Organigrama estructural

Gerente

Secretaria

Abogados

Abogados

Abogados
Agentes Suscriptores

1.5. Croquis

360

2. ORGANIZACIN DEL EQUIPO DE TRABAJO


2.1. Estructura del equipo

2.2.
Rol

Roles y Responsabilidades
Responsabilidad Encargado controlar el sistema en el transcurso del mismo, coordina la interaccin con el cliente. Adems se encarga de dar prioridad a diversas tareas que deban cumplirse en un determinado lapso de tiempo. Encargado de recopilar todos los datos necesarios, tiene que haber una interaccin legible con el cliente y evitar capturar datos redundantes. Utiliza los requisitos para hacer el modelo de datos, su arquitectura de tal forma que sea entendible al cliente. Tambin se encarga de la documentacin y gestiona cambios. Construye y desarrolla el sistema mediante codificacin, usando las metodologas necesarias para ello.

Lder del Proyecto

Analista Diseador

Ingeniero de Software (Arquitectura)

Programador

361

Anexo. 1

Datos personales:

ROL: Lder del Proyecto (ing. De pruebas/Tester) Cdigo Cdula Nombres Apellidos Direccin telfonos e-mail Habilidades 001 0705867794 Brayan Omar Loayza Quito Barrrio 8 de Noviembre 0997989512 bryan_omar_66@hotmail.com Conocimiento de Metodologas de desarrollo de software Habilidades interpersonales Mediador de problemas Responsabilidad en su desempeo

Anexo. 2

Datos personales:

ROL: Analista Cdigo Cdula Nombres Apellidos Direccin Telfonos e-mail Habilidades 002 0705184992 Daniel Stalin Arvalo Villalta Huaquillas (cdla. Martha-Bucaram ) 094030856 danger-leinad@hotmail.com Aplicacin de Metodologas de desarrollo de software. Habilidades en relaciones humanas Observador e identificador de posibles problemas y soluciones

362

Anexo. 3

Datos personales:
ROL: Ing. Software /Arquitecto Cdigo Cdula Nombres Apellidos Direccin Telfonos e-mail Habilidades 003 0704948710 Adrin Gavilnez El bosque 0986758845 gavilanes@hotmail.com Modelado de software Estructura de datos

Anexo. 4

Datos personales:
ROL: Desarrollador Programador Cdigo Cdula Nombres Apellidos Direccin Telfonos e-mail 004 0704211853 Jos Gabriel Eras Castillo Rayito de luz 093901659 jose_02rok@hotmail.com

Habilidades

Habilidades interpersonales Mediador de problemas en el grupo Control y planificacin de actividades

363

3. SISTEMA SISCHACAGUASAY
Sistema de gestin control y automatizacin de clientes, abogados, agentes suscriptores, pagos, casos y agenda, para el consorcio jurdico chacaguasay y asociados

3.1

Identificacin Y Priorizacin De Problemas /Oportunidades

No 1

PROBLEMA
Duplicidad de datos en registros de los juicios

CAUSA
Tratamiento de datos manual

EFECTO
Un socio consta ms de una vez en nmina.

URGENCIA
Previo al inicio del nuevo ao.

VISIBILIDAD PRIORIDAD
Alta 1

SOLUCIN
Crear un formulario que automatice y verifique los juicios transados Crear una interfaz que permita registrar y validar automticamente los datos de los clientes ingresados Disear una interfaz de planificacin que maneje la agenda de cada abogado Disear una interfaz que maneje frmulas y funciones para controlar el ingreso referente a los usuarios del establecimiento del software

Datos errados en la introduccin de datos de los clientes.

Por la Insercin manual de datos

Al estar los procesos realizados de forma manual provoca ineficiencia y errores

Previo al inicio del nuevo ao

Alta

Ineficiencia en el control de actividades y obligaciones de los socios

Tratamiento de datos manual

Informes con datos errneos

Previo al inicio del nuevo ao lectivo

Alta

Control ineficiente de los usuarios con que cuenta la institucin

Tratamiento de datos manual

Informes con datos errneos de las unidades.

Previo al inicio del nuevo ao lectivo.

Alta

364

3.2.

Clasificacin de problemas por Proceso


Proceso Problema Duplicidad de datos Datos errados en la introduccin de datos. Ineficiencia en el control de ingreso de juicios Control ineficiente de los actividades con que cuenta la institucin Afecta Al ser los procesos manuales suceden equivocaciones y prdida de tiempo La parte financiera ya que un mal registro ocasiona perdidas A la elaboracin de Informes con datos precisos Responsable

Mantenimiento de Abogados y clientes Control de Juicios y obligaciones Mantenimiento de Actividades

Secretaria y Administrador

3.3.

mbito del Sistema

Se nos ha solicitado el desarrollo de un sistema de informacin que permita controlar de una manera eficaz los procesos realizados en el estudio jurdico, que tenga una base de datos segura, que se pueda acceder en cualquier momento, que su informacin se mantenga integra y se pueda acceder solo por las personas autorizadas. Este sistema llevara a cabo el control de los siguientes procesos:

Clientes: Tener un control total de todos los clientes con los que cuenta el estudio jurdico, sus datos son: Cedula, Nombre, Apellido, Edad, Sexo, Direccin, Cantn, Telfono, Correo, Tipo de cliente, Tipo de Juicio, Estado de Juicio. Este proceso permitir tener una lista de todos los clientes afiliados o no, lo que se requiere saber es que tipo de juicio se ha solicitado y cul es su estado, por ejemplo si se encuentra activo o terminado. Que se pueda llevar un historial de los casos.

Abogados: Tener una lista actualizada de todos los abogados asociados al estudio jurdico, para poder localizarlos fcilmente. Sus datos son: Cedula, Nombre, Apellido, Edad, Sexo, Direccin, Cantn, Telfono, Correo, Especialidad, Disponibilidad, Experiencia.

365

Este control facilitara la asignacin de abogados a clientes, puede haber ms de uno por cantn, se podr saber su disponibilidad, y su experiencia, tambin se podrn visualizar cuantos casos tiene a cargo y su estado actual. Agendas: En este proceso se llevara una planificacin y control de cada una de las actividades habidas y por haber, de cada uno de los abogados, los das en que tendr que registrar cada una de las eventos del respectivo juicio, siempre tomando en cuenta factores fundamentales como estado, el cual determinar si el evento fue registrado o an est en el proceso Juicios: es este mdulo se tomara en cuenta los juicios asignados a cada abogado, sin duda alguna la planificacin, y el control que se maneja en este proceso es el centro de todo el sistema, en este proceso se tomaran en cuenta muchos campos renuentes de otras tablas para poder tener una serie de consultas apropiadas y alineadas con los requerimientos establecidos por el cliente.

366

(SISTEMA DE GESTION CONTROL Y AUTOMATIZACION DE CLIENTES, ABOGADOS, AGENTES SUSCRIPTORES, PAGOS, CASOS Y AGENDA, PARA EL CONSORCIO JURIDICO CHACAGUASAY Y ASOCIADOS)

BUFETE DE ABOGADOS

FICHA TCNICA

2013-2014
367

VERSION 1.0

BUFETE DE ABOGADOS

Nombre: Chacaguasay y asociados. Telefono: 0989669966 Ciudad: Machala Direccion Pasaje y Vela, esquina Correo

disemax_0077@yahoo.es

368

DESCRIPCIN DEL SISTEMA


El SISTEMA DE GESTION CONTROL Y AUTOMATIZACION DE CLIENTES, ABOGADOS, AGENTES SUSCRIPTORES, PAGOS, CASOS Y AGENDA, PARA EL CONSORCIO JURIDICO CHACAGUASAY Y ASOCIADOS (SISCHACAGUASAY), fue desarrollado con el afn de optimizar los procesos de Mantenimiento de Abogados, Clientes, y Juicios, buscando de esta forma automatizar y agilizar dichos procesos con la elaboracin de un sistema que les permita efectuar las diferentes tareas que se lleven a cabo, de manera rpida, segura y precisa. El mismo permitir llevar la correcta gestin de pagos, para de esta manera tener conocimiento de que socio cumple con normalidad el pago de sus obligaciones monetarias, y por ultimo contara con el proceso de gestin de Agenda con que cuenta la institucin.

FUNCIONES GENERALES
Inicio de sesin Pgina principal Mantenimiento de informacin Privilegios de usuario

GESTIONES PRINCIPALES
Mantenimiento de Juicios Mantenimiento de Abogados Mantenimiento de Clientes Gestin de Agenda

369

CARACTERSTICAS TECNICAS
SISCHACAGUASAY, desarrollado con las normas de la programacin orientada a objetos, siendo vinculada especficamente con la colectividad, dando beneficios al bufete de abogados CHACAGUASAY Y ASOCIADOS, los cuales en su estructura elaborada cuentan con las siguientes caractersticas

REQUERIMIENTOS MNIMOS DEL SITIO


Sistema Operativo Windows XP ( otro sistema necesitara plugins) 350 MB de Espacio libre en Disco. 1GB de Memoria RAM. Monitor Monocromtico. Procesador Intel Pentium IV

REQUERIMIENTOS DEL SISTEMA PARA UN PTIMO RENDIMIENTO


Sistema Operativo Windows 7, MAC, LINUX. Navegador web cualquiera actualizado. Monitor Color Sper VGA. Buen ancho de banda. Plugins actualizados

DESARROLLADORES DEL SOFTWARE


Arvalo Villalta Daniel Eras Castillo Jos Adrin Gavilanes Brayan Loaiza

Elaborado por estudiantes de la Escuela de Informtica de la Universidad Tcnica de Machala.

370

MANUAL DEL USUARIO


Logeo de ingreso, solo permitir el ingreso a usuario con contrasea valida

MENU PRICIPAL

371

MANTENIMIENTO DE CLIENTES El sistema nos permitir guardar, modificar, eliminar y buscar un registro

Debemos tomar en cuenta el ingreso de datos reales como la cedula sino nos aparece lo siguiente:

MANTENIMIENTO DE USUARIO Permitir registrar un usuario para acceder al sistema

372

373

ANEXOS

374

Potrebbero piacerti anche