SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Algoritmia de programación
de Software
Aplicable a partir del ingreso 202010
PROFESIONAL TÉCNICO
MANUAL DE APRENDIZAJE
Ingenieria de Software con
Inteligencia Artificial
MANUAL DE APRENDIZAJE
1111
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 2
ÍNDICE
HT-01 Aplicar elementos para el desarrollo de aplicaciones de cálculo........................ 3
HT-02 : Desarrollar aplicativo con manejo de programación ........................................ 10
HT-03: : Crear aplicación con el manejo de Errores y gestión de Expresiones Regulares
........................................................................................................................................ 16
HT-04: Desarrollar aplicaciones con Base de Datos y entorno grafico .......................... 20
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 3
HT-01 Aplicar elementos para el desarrollo de aplicaciones de cálculo
OBJETIVO: Con los recursos proporcionados y los conocimientos previos,
aplicar los elementos básicos de programación, sin error para desarrollar
operaciones básicas de cálculo.
1. FUNDAMENTOS DE PROGRAMACIÓN
1.1.LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación es un
lenguaje formal que proporciona una
serie de instrucciones que permiten a un
programador escribir secuencias de
órdenes y algoritmos a modo de
controlar el comportamiento físico y
lógico de una computadora con el objetivo de que produzca diversas
clases de datos.
1.2.PROGRAMA
Un programa es un conjunto de pasos lógicos escritos en un lenguaje de
programación que nos permite realizar una tarea específica.
1.3.FASES PARA ELABORAR UN PROGRAMA DE COMPUTADORA
Ilustración 1: Elementos en la elaboración de un programa
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 4
Ilustración 2: Fases en la elaboración de un programa
1.4.EL LENGUAJE DE PROGRAMACIÓN PYTHON
Python es un lenguaje de programación interpretado de tipado dinámico
cuya filosofía hace hincapié en una sintaxis que favorezca un código
legible. Se trata de uenguaje de programación multiparadigma y
disponible en varias plataformas.
1.5.ESCRITURA DE UN PROGRAMA EN PYTHON
Para la edición (escritura), compilación y ejecución de un programa en
Python debemos utilizar un IDE.
1.6.¿QUÉ ES UN IDE?
Un entorno de desarrollo integrado (IDE) es un sistema de software para
el diseño de aplicaciones que combina herramientas del desarrollador
comunes en una sola interfaz gráfica de usuario (GUI). Generalmente, un
IDE cuenta con las siguientes características:
 Editor de código fuente: editor de texto que ayuda a escribir el código
de software con funciones como el resaltado de la sintaxis con
indicaciones visuales, el relleno automático específico del lenguaje y
la comprobación de errores a medida que se escribe el código.
 Automatización de compilación local: herramientas que
automatizan tareas sencillas y repetibles como parte de la creación de
una compilación local del software para su uso por parte del
desarrollador, como la compilación del código fuente de la
computadora en un código binario, el empaquetado del código binario
y la ejecución de pruebas automatizadas.
 Depurador: programa que sirve para probar otros programas y
mostrar la ubicación de un error en el código original de forma gráfica.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 5
Ilustración 3: Entorno de Desarrollo Integrado IDLE Python
1.7. ELEMENTOS DE UN PROGRAMA
1.8. TIPOS DE DATOS EN PYTHON
Ilustración 4: Tipos de datos en Python
*El tipo de dato carácter no existe en Python, un carácter simple se
representa como cadena de caracteres (string).
1.9.MI PRIMER PROGRAMA EN PYTHON: Ingrese al IDLE de Python,
escriba
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 6
Ilustración 5: Programa “Hola mundo”
1.10. COMPILACIÓN Y EJECUCIÓN DE UN PROGRAMA: Si utiliza el
IDLE, pulse <F5>para ejecutar el programa. El código fuente se ha de
convertir en ejecutable.
Ilustración 6: Paso para la conversión de código fuente a ejecutable.
2. MANEJO DE VARIABLES EN PYTHON
2.1. VARIABLES
En muchos lenguajes de programación, una variable se puede entender
como una especie de caja en la que se puede guardar un valor (por
ejemplo, un valor numérico). Esa caja suele corresponder a una posición
de memoria en la memoria del ordenador. Las variables se representan
o tienen un identificador que puede ser letras o palabras completas: x, y,
a, b, nombre, apellidos, edad, etc. También podemos identificar variables
con letras y números Ejemplo: NumTel01
Ejemplo de un programa con variables
Ilustración 7: Uso de variables
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 7
2.2. CONVERSIONES ENTRE TIPOS DE VARIABLES EN PYTHON
Tomando en cuenta los tipos de datos en Python (Punto 2.4), se utilizan
funciones intrínsecas de Python para efectuar conversiones entre los
datos de acuerdo al programa que se ha desarrollado. Ejemplos:
Ilustración 8: Conversión entre tipo de datos
3. MANEJO DE CADENAS
Una cadena es un conjunto de caracteres delimitados por comillas. La
concatenación Ejemplo
Ilustración 9: Programa que permite la gestión de Cadenas
3.1. Operadores de Cadena:
Concatenar (+)
Multiplicar (*)
Añadir (+=)
4. COLECCIÓN DE DATOS EN PYTHON
Una colección permite agrupar varios objetos bajo un mismo nombre. Por
ejemplo, si necesitamos almacenar en nuestro programa los nombres de
los alumnos de un curso de programación, será más conveniente
ubicarlos a todos dentro de una misma colección de nombre.
En Python existen tres colecciones básicas, a saber: las listas, las tuplas
y los diccionarios.
4.1. Listas
Una lista es un conjunto ordenado de objetos. Por objetos entendemos
cualquiera de los tipos de dato ya mencionados, incluso otras listas.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 8
Para crear una lista, especificamos sus elementos entre corchetes y
separados por comas.
>>> lenguajes = [”Python”, “Java”, “C”, “C++”]
Ejemplo:
Ilustración 10: Manejo de listas
4.2. Tuplas
Las tuplas, al igual que las listas, son colecciones ordenadas. No obstante,
a diferencia de éstas, son inmutables. Es decir, una vez asignados los
elementos, no pueden ser alterados. En términos funcionales, podría
decirse que las tuplas son un subconjunto de las listas, por cuanto
soportan las operaciones con índices para acceder a sus elementos, pero
no así las de asignación.
Ejemplo:
Ilustración 11: Manejo de Tuplas
4.3. Diccionarios
Los diccionarios, a diferencia de las listas y las tuplas, son colecciones
no ordenadas de objetos. Además, sus elementos tienen una
particularidad: siempre conforman un par clave-valor. Es decir, cuando
añadimos un valor a un diccionario, se le asigna una clave única con la
que luego se podrá acceder a él (pues la posición ya no es un
determinante).
Para crear un diccionario, indicamos los pares clave-valor separados por
comas y estos, a su vez, separados por dos puntos.
Para acceder a cualquiera de los valores, debemos indicar su clave entre
corchetes.
Ejemplo
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 9
Ilustración 12: Manejo de Diccionario
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 10
HT-02 : Desarrollar aplicativo con manejo de programación
OBJETIVO: Con los recursos proporcionados y los conocimientos previos,
desarrollar aplicaciones, utilizando estructuras de control y ficheros.
ESTRUCTURAS DE CONTROL
Una estructura de control, es un bloque de código que permite agrupar
instrucciones de manera controlada. Las estructuras de control pueden ser:
4.4. ESTRUCTURA DE CONTROL SELECTIVAS O CONDICIONALES
4.4.1. Identación:
La identación es lo que la sangría al lenguaje humano escrito (a
nivel formal). Así como para el lenguaje formal, cuando uno
redacta una carta, debe respetar ciertas sangrías, los lenguajes
informáticos, requieren una identación.
En Python, la identación es obligatoria, ya que de ella, dependerá
su estructura.
4.4.2. Encoding
El encoding (o codificación) es otro de los elementos del lenguaje
que no puede omitirse a la hora de hablar de estructuras de control.
El encoding no es más que una directiva que se coloca al inicio de
un archivo Python, a fin de indicar al sistema, la codificación de
caracteres utilizada en el archivo.
# -*- coding: utf-8 -*-
utf-8 podría ser cualquier codificación de caracteres. Si no se
indica una codificación de caracteres, Python podría producir un
error si encontrara caracteres extraños:
print “En el Ñágara encontré un Ñandú”
Por lo tanto el programa debería escribirse de la siguiente manera:
Ilustración 13: Uso de Encoding
4.4.3. Asignación múltiple:
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 11
Otra de las ventajas que Python nos provee, es la de poder asignar
en una sola instrucción, múltiples variables:
a, b, c = ‘string’, 15, True
En una sola instrucción, estamos declarando tres variables: a, b y
c y asignándoles un valor concreto a cada una:
Estructuras de control de flujo condicionales o selectivas
Las estructuras de control selectivas, son aquellas que nos
permiten evaluar si una o más condiciones se cumplen, para
determinar que bloque de acción(es) vamos a ejecutar.
La evaluación de condiciones o expresión lógica, solo puede
arrojar 1 de 2 resultados: verdadero o falso (True o False).
Para construir expresiones lógicas o condiciones se han de utilizar
operadores de relación y lógicos
Símbolo Significado
== Igual que
!= Distinto que
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
Tabla 1: Operadores de Relación
Operador Operación
and Conjunción
or
Disyunción
Inclusiva
not Negación
Tabla 2: Operadores lógicos
Ejemplo:
A partir de un número ingresado, determinar si es negativo, si es cero,
igual a uno o mayor a uno.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 12
Ilustración 14: Programa con Estructura Selectiva
ESTRUCTURA DE CONTROL REPETITIVAS O ITERATIVAS
A diferencia de las estructuras de control condicionales, las repetitivas o
iterativas (también llamadas cíclicas o bucles), nos permiten ejecutar un
mismo código, de manera repetida, mientras se cumpla una condición.
En Python se dispone de dos estructuras cíclicas:
 El bucle while
 El bucle for
4.4.4. Bucle while
Ejecuta un bloque de instrucciones "mientras que" una
determinada condición se cumpla o sea verdadera. Ejemplo:
Mientras que año sea menor o igual a 2020, mostrar la frase
"Consolidado del Año <<yyyy>>".
Ilustración 15: Estructura repetitiva While
4.4.4.1.
4.4.5. Bucle for
Efectúa iteraciones sobre los ítems de cualquier secuencia (una
lista o una cadena de caracteres), en el orden que aparecen en
la secuencia.
4.4.5.1. Bucle ‘for’ con Listas
Efectúa iteraciones
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 13
Ilustración 16: for con listas
4.4.5.2. Bucle ‘for’ con Listas y función ‘range’
Ilustración 17: Uso de la función range en for
Bucle ‘for’ con Tuplas
Ilustración 18: for con Tuplas
4.4.5.3. Bucle ‘for’ con Diccionarios
Ilustración 19: for con Diccionarios
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 14
4.4.5.4. Bucle ‘for’ con ‘else’
El bloque else se ejecutará en todos los casos, es
decir, cuando la expresión condicional del bucle for sea
False, (a comparación de la sentencia if).
La sentencia else tiene la ventaja de mantener el
mismo nombre y la misma sintaxis que en las demás
estructuras de control.
Ilustración 20: for... else
5. PROGAMACIÓN OREINTADO DE OBJETOS: CLASES, OBJETOS,
MÉTODOS Y FUNCIONES
7.1. Clases
Una clase es una plantilla genérica de un objeto. La clase proporciona
variables iniciales de estado (donde se guardan los atributos) e
implementaciones de comportamiento (métodos) necesarias para crear
nuevos objetos, son los modelos sobre los cuáles serán construidos.
7.2. Objetos
Al crear instancias de una clase hace relación a la creación de objetos
de ese tipo
7.3. Métodos
Los métodos son como funciones. Se definen con la palabra clave def y
cuentan con el mismo formato que las funciones. Sin embargo, la
principal diferencia es que los métodos necesitan tener un argumento
convenientemente llamado self, que se refiere al objeto del método que
está siendo llamado
7.4. Funciones
Es un bloque de código con un nombre asociado, que recibe cero o
más argumentos como entrada, sigue una secuencia de sentencias, la
cuales ejecuta una operación deseada y devuelve un valor y/o realiza
una tarea, este bloque puede ser llamados cuando se necesite.
Ejemplo:
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 15
Ilustración 21: Definición de clases y métodos
Ilustración 22: método __init__ (inicializador)
El inicializador es un método especial, con nombre __init__ (será
tratado de forma especial, por eso que tiene subrayados dobles al
principio y al final).
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 16
HT-03: : Crear aplicación con el manejo de Errores y gestión de Expresiones
Regulares
OBJETIVO : los estudiantes al finalizar la sesión estarán en la capacidad de
identificar, definir y utilizar instrucciones y expresiones para la
gestión de errores en Python con exactItud.
6. GESTIÓN DE ERRORES Y/O EXCEPCIONES
Una de las características más poderosas del lenguaje de programación
Python es la gestión de excepciones.
Debido a lo dinámico que puede ser Python es muy común que el intérprete
se tope con múltiples fuentes de error.
Es posible con Python no sólo identificar y rastrear los errores, sino tomar
acciones correctivas y preventivas.
6.1. ERRORES DE SINTAXIS.
Los errores sintácticos o denominados también de compilación son los
más comunes cuando se escribe código.
Los errores sintácticos ocurren cuando el intérprete encuentra una
expresión que no está bien formada (rompe las reglas de sintaxis).
Ejemplo
print “hola”
Se generaría el siguiente error:
SyntaxError: Missing parentheses in call to 'print'. Did you mean
print("hola")?
6.2. EXCEPCIONES
Los errores de ejecución son llamados comúnmente excepciones y por
eso de ahora en más utilizaremos ese nombre. Durante la ejecución de
un programa, si dentro de una función surge una excepción y la función
no la maneja, la excepción se propaga hacia la función que la invocó, si
esta otra tampoco la maneja, la excepción continua propagándose hasta
llegar a la función inicial del programa y si esta tampoco la maneja se
interrumpe la ejecución del programa.
6.2.1. Manejo de excepciones
Para el manejo de excepciones los lenguajes proveen ciertas
palabras reservadas, que nos permiten manejar las excepciones
que puedan surgir y tomar acciones de recuperación para evitar la
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 17
interrupción del programa o, al menos, para realizar algunas
acciones adicionales antes de interrumpir el programa.
En el caso de Python, el manejo de excepciones se hace mediante
los bloques que utilizan las sentencias try, except y finally.
Ejemplo: Controlando el mensaje de error por el usuario
Ilustración 23: Uso de Try... except
Un bloque finally donde se escriben las sentencias de finalización,
que son típicamente acciones de limpieza. La particularidad del
bloque finally es que se ejecuta siempre, haya surgido una
excepción o no.
Ilustración 24: except y finally en gestión de excepciones
7. FUNCIONES DE FECHA Y HORA
La biblioteca estándar de Python cuenta con dos paquetes especializados en
manejos de fechas y horas.
 time.
 datetime.
7.1. EL MÓDULO TIME
Este módulo permite realizar algunas operaciones básicas de fecha y
hora. Utilice la línea, para poder utilizar funciones de fecha y hora en los
programas
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 18
7.2. LA FUNCIÓN time.asctime().
Regresa una cadena de caracteres con la fecha que se ingresa como una
tupla de tiempo.
Ilustración 25: time.asctime
7.3. LA FUNCIÓN time.sleep().
Permite detener la ejecución de un script durante un tiempo definido en
segundos.
Ilustración 26: time.sleep
7.4. FUNCIÓN time.strftime( formato [ , t ] )
Convierte un tiempo devuelto por gmtime() o localtime()en una cadena
como se especifica en el argumento de formato . Si no se proporciona t ,
gmtime()se utiliza la hora actual.
Ilustración 27: función time.strftime
8. UTILIZAR JSON EN PYTHON
8.1. ¿Qué es JSON?
JSON (JavaScript Object Notation - Notación de Objetos de
JavaScript) es un formato ligero de intercambio de datos. Leerlo y
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 19
escribirlo es simple para humanos, mientras que para las máquinas
es simple interpretarlo y generarlo. JSON está constituído por dos
estructuras:
 Una colección de pares de nombre/valor. En varios lenguajes esto
es conocido como un objeto, registro, estructura, diccionario, tabla
hash, lista de claves o un arreglo asociativo.
 Una lista ordenada de valores. En la mayoría de los lenguajes,
esto se implementa como arreglos, vectores, listas o sequencias.
8.2. Pre-requisitos
Para hacer uso de JSON en Python, vamos a usar el paquete json, el
cual, incluye todas las funciones necesarias para el tratamiento de
JSONs. Como ejemplo de uso vamos a usar el siguiente JSON,
8.3. Codificar JSON
El codificador entiende varios tipos nativos de Python por defecto
como por ejemplo: string, unicode, int, float, list, tuple, dict. Por lo tanto
en nuestro caso, vamos a crear listas de diccionarios con los datos.
8.4. Decodificar JSON
Para decodificar un JSON a vamos a hacer uso de la función
json_loads(String)
Ejemplo:
Ilustración 28: Uso de json
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 20
HT-04: Desarrollar aplicaciones con Base de Datos y entorno grafico
OBJETIVO : Con la ayuda del material digital proporcionado por el docente, los
estudiantes al finalizar la sesión estarán en la capacidad de definir
la estructura básica de una base de datos con exactitud.
9. FUNDAMENTOS BASE DE DATOS
9.1. ¿QUÉ ES UNA BASE DE DATOS
Una base de datos es un “almacén” que nos permite guardar grandes
cantidades de información de forma organizada para que luego
podamos encontrar y utilizar fácilmente.
Se define una base de datos como una serie de datos organizados y
relacionados entre sí, los cuales son recolectados y explotados por los
sistemas de información de una empresa o negocio en particular.
9.2. ELEMENTOS DE UNA BASE DE DATOS
Cada base de datos se compone de una o más tablas que guarda un
conjunto de datos. Cada tabla tiene una o más columnas y filas. Las
columnas guardan una parte de la información sobre cada elemento
que queramos guardar en la tabla, cada fila de la tabla conforma un
registro.
Ilustración 29: Elementos de una Base de Datos
9.3. CARACTERÍSTICAS
Entre las principales características de los sistemas de base de
datos podemos mencionar:
 Independencia lógica y física de los datos.
 Redundancia mínima.
 Acceso concurrente por parte de múltiples usuarios.
 Integridad de los datos.
 Consultas complejas optimizadas.
 Seguridad de acceso y auditoría.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 21
 Respaldo y recuperación.
 Acceso a través de lenguajes de programación estándar.
MODELO DE UNA BASE DE DATOS
Para construir una base de datos, partimos del estudio de un caso o
problema donde tenemos la necesidad de automatizar los procesos
que están relacionados con la gestión de datos.
El análisis del modelo conceptual o modelo del negocio ha de generar
el MER o modelo entidad-relación.
9.3.1. Modelo entidad-relación
Los diagramas o modelos entidad-relación (denominado por su
siglas, ERD “Diagram Entity relationship”) son una herramienta
para el modelado de datos de un sistema de información. Estos
modelos expresan entidades relevantes para un sistema de
información, sus inter-relaciones y propiedades
Ilustración 30: Modelo Entidad Relación
9.3.2. Cardinalidad de las Relaciones
El diseño de relaciones entre las tablas de una base de datos
puede ser la siguiente:
Relaciones de uno a uno: una instancia de la entidad A se
relaciona con una y solamente una de la entidad B.
Relaciones de uno a muchos: cada instancia de la entidad A
se relaciona con varias instancias de la entidad B.
Relaciones de muchos a muchos: cualquier instancia de la
entidad A se relaciona con cualquier instancia de la entidad B.
9.4. ESTRUCTURA DE UNA BASE DE DATOS
Una base de datos, a fin de ordenar la información de manera lógica,
posee un orden que debe ser cumplido para acceder a la información
de manera coherente. Cada base de datos contiene una o más tablas,
que cumplen la función de contener los campos.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 22
En el siguiente ejemplo mostramos una tabla “TbMarcas” que contiene
3 campos.
Ilustración 31: Estructura de la Tabla Marca
Los datos quedarían organizados como mostramos en siguiente
ejemplo:
Ilustración 32: Listado de datos TbMarcas
9.5. LENGUAJE SQL
El lenguaje SQL es el más universal en los sistemas de base de datos.
Este lenguaje nos permite realizar consultas a nuestras bases de
datos para mostrar, insertar, actualizar y borrar datos.
9.6. BASE DE DATOS DESDE PYTHON
Cuando tenemos que almacenar gran cantidad de datos y su posterior
procesamiento es muy común utilizar un gestor de bases de datos.
Con Python podemos comunicarnos con un gestor de bases de datos
para enviar y recuperar datos.
Existen gran cantidad de gestores de bases de datos y el primero que
veremos para ver cuál es la mecánica para conectarnos desde Python
será el gestor de base de datos MySQL.
9.7. INSTALACIÓN DE MYSQL.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 23
Para facilitar la administración del MySQL utilizaremos el programa
XAMPP que entre otros instala:
 MySQL
 PHPMyAdmin (que nos permitirá administrar las bases de datos
existentes en MySQL)
 PHP (Lenguaje que nos permite ejecutar el PHPMyAdmin)
 Apache (Servidor Web que nos permite ejecutar PHPMyAdmin y
PHP en un servidor)
Descargamos e instalamos XAMPP para el sistema operativo que
estamos trabajando.
Luego instalamos la aplicación que hemos descargado:
Ilustración 33: Instalación de XAMPP
Una vez finalizada la instalación de todo el software debemos arrancar
el programa "XAMPP Control Panel":
Ilustración 34: Abrir Xampp desde el menú de inicio
Aparece la interfaz desde donde debemos iniciar el gestor de base de
datos MySQL:
Presionamos el botón "Start" tanto para MySQL como para Apache:
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 24
Ilustración 35: Iniciar los servicios: Apache y MySQL
Si aparecen en verde significa que los programas se encuentran
correctamente en funcionamiento.
Ilustración 36: Apache y MySQL en ejecución
9.8. CREACIÓN DE UNA BASE DE DATOS
Para crear la base de datos utilizaremos el programa PHPMyAdmin
que lo iniciamos presionando el botón "MySQL - Admin" del "XAMPP
Control Panel":
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 25
Ilustración 37: Acceso al Administrador de Base de Datos
Se nos abre una aplicación web PHPMyAdmin que nos permite
administrar nuestras bases de datos de MySQL:
Ilustración 38: Crear una nueva base de datos
En el siguiente diálogo debemos definir el nombre de nuestra base de
datos, Ejemplo: "bdferreyros":
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 26
Ilustración 39: Creación de una base de datos
Al terminar crear la base de datos tendremos la siguiente estructura:
Ilustración 40: Estructura de una base de datos
10.INTERFAZ GRÁFICA CON TKINTER
Con Python hay muchas posibilidades para programar una interfaz gráfica
de usuario (GUI) pero Tkinter es fácil de usar, es multiplataforma y, además,
viene incluido con Python en su versión para Windows, para Mac y para la
mayoría de las distribuciones GNU/Linux. Se le considera el estándar de
facto en la programación GUI con Python.
Tkinter es un binding de la biblioteca Tcl/Tk que está también
disponible para otros lenguajes como Perl y Rubí.
Normalmente, el paquete Tkinter estará disponible en nuestra instalación
Python, excepto en algunas distribuciones GNU/Linux.
10.1. Aplicaciones con Tkinter
El siguiente ejemplo crea una aplicación que incluye una ventana
con un botón en la parte inferior. Al presionar el botón la aplicación
termina su ejecución. Una ventana es el elemento fundamental de
una aplicación GUI. Es el primer objeto que se crea y sobre éste se
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 27
colocan el resto de objetos llamados widgets (etiquetas, botones,
etc.).
Ilustración 41: Definir una GUI con Tkinter
Ilustración 42: Ventana construida con Tkinter
El siguiente ejemplo crea una aplicación que permite el ingreso de dos
números en cajas de texto con un botón “Sumar” que permite calcular
y mostrar el resultado de la suma.
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 28
Ilustración 43: Programa que suma dos números
11.GENERAR DOCUMENTACIÓN AUTOMATICAMENTE
11.1. Documentando programas en Python
Aunque yo sea el único usuario de mi programa, resulta más sencillo
entender y reutilizar lo que escribí hace seis meses si cuento con una
documentación adecuada.
Si deseamos que nuestros programas trasciendan más allá del
momento en que los escribimos necesitamos dedicarles algo de
tiempo para documentarlos.
Una buena noticia es que Python cuenta con un mecanismo bastante
sencillo y conveniente para elaborar la documentación técnica de un
programa. A continuación expondré dicho mecanismo.
11.2. Cadenas de documentación
En Python, un docstring o cadena de documentación es una literal de
cadena de caracteres que se coloca como primer enunciado de un
módulo, clase, método o función, y cuyo propósito es explicar su
intención.
 Los comentarios de una línea se puede hacer con #
 Los comentarios de varias líneas comienzan con ’ ’ ’ o ” ” ” (3
apostrofes o comillas) y terminan de la misma manera
ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE
ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 29
Ilustración 44: Documentación de un programa
12.TRABAJAR CON PRUEBAS AUTOMÁTICAS
Las pruebas son de mucha importancia, son las que definen el flujo de
proyectos y grandes equipos de trabajo. Dentro de las prácticas de buen
desarrollador se encuentra las pruebas de los diferentes desarrollos que
realicen, lo que los diferencia es la forma en la que realizan dichas pruebas.
Por eso es tan importante la implementación de pruebas ya que ayudan a
verificar errores y dificultades del desarrollo rápidamente, para poder
solucionarlos en la brevedad.
Entonces, ¿Porque Automatizar?
La principal razón es el tiempo y con las pruebas automatizadas se puede
reducir el tiempo de las pruebas. Además al automatizar las actividades
comunes que no requieren de inteligencia humana, los testers pueden
dedicar mayor tiempo a pruebas más críticas y caminos más elaborados
dejando los caminos básicos a las pruebas automatizadas.
Rapidez: Las herramientas de testing automatizado corren las pruebas
significativamente más rápido que los testers humanos.
Fiabilidad: Las pruebas ejecutan precisamente las mismas operaciones
cada vez que se ejecutan, eliminando el error humano.
Repetición: Se puede testear como reacciona el soft bajo repetidas
ejecuciones de las mismas operaciones.
Programable: Se pueden programar pruebas sofisticadas y complejas que
muestren información oculta de la aplicación.
Reusabilidad: Se pueden rehusar los scripts con pruebas automatizadas

Más contenido relacionado

Similar a PIAD-211_MATERIAL.pdf (20)

Python
PythonPython
Python
 
Introducción a python
Introducción a pythonIntroducción a python
Introducción a python
 
Programación
ProgramaciónProgramación
Programación
 
Visual basic .NET
Visual basic .NETVisual basic .NET
Visual basic .NET
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Introduccion a la programación I Parte
Introduccion a la programación I Parte Introduccion a la programación I Parte
Introduccion a la programación I Parte
 
Introduccion a la Programación I parte
Introduccion a la Programación I parte Introduccion a la Programación I parte
Introduccion a la Programación I parte
 
conceptos de programacion
conceptos de programacionconceptos de programacion
conceptos de programacion
 
Unmsm02 2008
Unmsm02 2008Unmsm02 2008
Unmsm02 2008
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
 
Apuntes vb6
Apuntes vb6Apuntes vb6
Apuntes vb6
 
Maryan toledo
Maryan toledoMaryan toledo
Maryan toledo
 
Software pao
Software paoSoftware pao
Software pao
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#
 
PYTHON.pptx
PYTHON.pptxPYTHON.pptx
PYTHON.pptx
 
Manual laboratorio de programación#1
Manual laboratorio de programación#1Manual laboratorio de programación#1
Manual laboratorio de programación#1
 
Reconocimiento de voz c#
Reconocimiento de voz c#Reconocimiento de voz c#
Reconocimiento de voz c#
 
Int a la computacion
Int a la computacionInt a la computacion
Int a la computacion
 

Más de Enrique Francisco Flores Gallo

Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...
Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...
Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...Enrique Francisco Flores Gallo
 
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...Enrique Francisco Flores Gallo
 

Más de Enrique Francisco Flores Gallo (20)

2023_BPM_PHS_HACCP.pptx.pdf
2023_BPM_PHS_HACCP.pptx.pdf2023_BPM_PHS_HACCP.pptx.pdf
2023_BPM_PHS_HACCP.pptx.pdf
 
limpieza CIP y COP.pptx
limpieza CIP y COP.pptxlimpieza CIP y COP.pptx
limpieza CIP y COP.pptx
 
Curso de residuos - (INT) Propuesta institucional.pdf
Curso de residuos - (INT) Propuesta institucional.pdfCurso de residuos - (INT) Propuesta institucional.pdf
Curso de residuos - (INT) Propuesta institucional.pdf
 
PIAD-211_TRABAJOFINAL.pdf
PIAD-211_TRABAJOFINAL.pdfPIAD-211_TRABAJOFINAL.pdf
PIAD-211_TRABAJOFINAL.pdf
 
PIAD-211_MALLA.pdf
PIAD-211_MALLA.pdfPIAD-211_MALLA.pdf
PIAD-211_MALLA.pdf
 
PIAD-211_VIDEOS.pdf
PIAD-211_VIDEOS.pdfPIAD-211_VIDEOS.pdf
PIAD-211_VIDEOS.pdf
 
Art20
Art20Art20
Art20
 
1. baltaza el potencial de la tilapia en el perú
1. baltaza el potencial de la tilapia en el perú1. baltaza el potencial de la tilapia en el perú
1. baltaza el potencial de la tilapia en el perú
 
1.cip20.nuevas tecnologias trucha.jmuñoz
1.cip20.nuevas tecnologias trucha.jmuñoz1.cip20.nuevas tecnologias trucha.jmuñoz
1.cip20.nuevas tecnologias trucha.jmuñoz
 
Rm 249 2011 produce
Rm 249 2011 produceRm 249 2011 produce
Rm 249 2011 produce
 
30021
3002130021
30021
 
Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...
Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...
Decreto supremo-que-aprueba-el-reglamento-de-la-ley-n-30021-decreto-supremo-n...
 
Operador logistico
Operador logisticoOperador logistico
Operador logistico
 
Ga 3-0-2-19-04-88-indicadores-de-sst
Ga 3-0-2-19-04-88-indicadores-de-sstGa 3-0-2-19-04-88-indicadores-de-sst
Ga 3-0-2-19-04-88-indicadores-de-sst
 
Gastos indirectos-de-produccion
Gastos indirectos-de-produccionGastos indirectos-de-produccion
Gastos indirectos-de-produccion
 
Conchasdeabanicocongeladas 130715225546-phpapp01
Conchasdeabanicocongeladas 130715225546-phpapp01Conchasdeabanicocongeladas 130715225546-phpapp01
Conchasdeabanicocongeladas 130715225546-phpapp01
 
Asistem modif ds004-2006-tr
Asistem modif ds004-2006-trAsistem modif ds004-2006-tr
Asistem modif ds004-2006-tr
 
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...
Análisis y selección de proceso de secado de cacao y diseño de prototipo de u...
 
2 presentacion-jose-luis-cabrera-ponce (1)
2 presentacion-jose-luis-cabrera-ponce (1)2 presentacion-jose-luis-cabrera-ponce (1)
2 presentacion-jose-luis-cabrera-ponce (1)
 
12 proceso adm
12 proceso adm12 proceso adm
12 proceso adm
 

PIAD-211_MATERIAL.pdf

  • 1. Algoritmia de programación de Software Aplicable a partir del ingreso 202010 PROFESIONAL TÉCNICO MANUAL DE APRENDIZAJE Ingenieria de Software con Inteligencia Artificial MANUAL DE APRENDIZAJE 1111
  • 2. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 2 ÍNDICE HT-01 Aplicar elementos para el desarrollo de aplicaciones de cálculo........................ 3 HT-02 : Desarrollar aplicativo con manejo de programación ........................................ 10 HT-03: : Crear aplicación con el manejo de Errores y gestión de Expresiones Regulares ........................................................................................................................................ 16 HT-04: Desarrollar aplicaciones con Base de Datos y entorno grafico .......................... 20
  • 3. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 3 HT-01 Aplicar elementos para el desarrollo de aplicaciones de cálculo OBJETIVO: Con los recursos proporcionados y los conocimientos previos, aplicar los elementos básicos de programación, sin error para desarrollar operaciones básicas de cálculo. 1. FUNDAMENTOS DE PROGRAMACIÓN 1.1.LENGUAJE DE PROGRAMACIÓN Un lenguaje de programación es un lenguaje formal que proporciona una serie de instrucciones que permiten a un programador escribir secuencias de órdenes y algoritmos a modo de controlar el comportamiento físico y lógico de una computadora con el objetivo de que produzca diversas clases de datos. 1.2.PROGRAMA Un programa es un conjunto de pasos lógicos escritos en un lenguaje de programación que nos permite realizar una tarea específica. 1.3.FASES PARA ELABORAR UN PROGRAMA DE COMPUTADORA Ilustración 1: Elementos en la elaboración de un programa
  • 4. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 4 Ilustración 2: Fases en la elaboración de un programa 1.4.EL LENGUAJE DE PROGRAMACIÓN PYTHON Python es un lenguaje de programación interpretado de tipado dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de uenguaje de programación multiparadigma y disponible en varias plataformas. 1.5.ESCRITURA DE UN PROGRAMA EN PYTHON Para la edición (escritura), compilación y ejecución de un programa en Python debemos utilizar un IDE. 1.6.¿QUÉ ES UN IDE? Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas del desarrollador comunes en una sola interfaz gráfica de usuario (GUI). Generalmente, un IDE cuenta con las siguientes características:  Editor de código fuente: editor de texto que ayuda a escribir el código de software con funciones como el resaltado de la sintaxis con indicaciones visuales, el relleno automático específico del lenguaje y la comprobación de errores a medida que se escribe el código.  Automatización de compilación local: herramientas que automatizan tareas sencillas y repetibles como parte de la creación de una compilación local del software para su uso por parte del desarrollador, como la compilación del código fuente de la computadora en un código binario, el empaquetado del código binario y la ejecución de pruebas automatizadas.  Depurador: programa que sirve para probar otros programas y mostrar la ubicación de un error en el código original de forma gráfica.
  • 5. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 5 Ilustración 3: Entorno de Desarrollo Integrado IDLE Python 1.7. ELEMENTOS DE UN PROGRAMA 1.8. TIPOS DE DATOS EN PYTHON Ilustración 4: Tipos de datos en Python *El tipo de dato carácter no existe en Python, un carácter simple se representa como cadena de caracteres (string). 1.9.MI PRIMER PROGRAMA EN PYTHON: Ingrese al IDLE de Python, escriba
  • 6. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 6 Ilustración 5: Programa “Hola mundo” 1.10. COMPILACIÓN Y EJECUCIÓN DE UN PROGRAMA: Si utiliza el IDLE, pulse <F5>para ejecutar el programa. El código fuente se ha de convertir en ejecutable. Ilustración 6: Paso para la conversión de código fuente a ejecutable. 2. MANEJO DE VARIABLES EN PYTHON 2.1. VARIABLES En muchos lenguajes de programación, una variable se puede entender como una especie de caja en la que se puede guardar un valor (por ejemplo, un valor numérico). Esa caja suele corresponder a una posición de memoria en la memoria del ordenador. Las variables se representan o tienen un identificador que puede ser letras o palabras completas: x, y, a, b, nombre, apellidos, edad, etc. También podemos identificar variables con letras y números Ejemplo: NumTel01 Ejemplo de un programa con variables Ilustración 7: Uso de variables
  • 7. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 7 2.2. CONVERSIONES ENTRE TIPOS DE VARIABLES EN PYTHON Tomando en cuenta los tipos de datos en Python (Punto 2.4), se utilizan funciones intrínsecas de Python para efectuar conversiones entre los datos de acuerdo al programa que se ha desarrollado. Ejemplos: Ilustración 8: Conversión entre tipo de datos 3. MANEJO DE CADENAS Una cadena es un conjunto de caracteres delimitados por comillas. La concatenación Ejemplo Ilustración 9: Programa que permite la gestión de Cadenas 3.1. Operadores de Cadena: Concatenar (+) Multiplicar (*) Añadir (+=) 4. COLECCIÓN DE DATOS EN PYTHON Una colección permite agrupar varios objetos bajo un mismo nombre. Por ejemplo, si necesitamos almacenar en nuestro programa los nombres de los alumnos de un curso de programación, será más conveniente ubicarlos a todos dentro de una misma colección de nombre. En Python existen tres colecciones básicas, a saber: las listas, las tuplas y los diccionarios. 4.1. Listas Una lista es un conjunto ordenado de objetos. Por objetos entendemos cualquiera de los tipos de dato ya mencionados, incluso otras listas.
  • 8. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 8 Para crear una lista, especificamos sus elementos entre corchetes y separados por comas. >>> lenguajes = [”Python”, “Java”, “C”, “C++”] Ejemplo: Ilustración 10: Manejo de listas 4.2. Tuplas Las tuplas, al igual que las listas, son colecciones ordenadas. No obstante, a diferencia de éstas, son inmutables. Es decir, una vez asignados los elementos, no pueden ser alterados. En términos funcionales, podría decirse que las tuplas son un subconjunto de las listas, por cuanto soportan las operaciones con índices para acceder a sus elementos, pero no así las de asignación. Ejemplo: Ilustración 11: Manejo de Tuplas 4.3. Diccionarios Los diccionarios, a diferencia de las listas y las tuplas, son colecciones no ordenadas de objetos. Además, sus elementos tienen una particularidad: siempre conforman un par clave-valor. Es decir, cuando añadimos un valor a un diccionario, se le asigna una clave única con la que luego se podrá acceder a él (pues la posición ya no es un determinante). Para crear un diccionario, indicamos los pares clave-valor separados por comas y estos, a su vez, separados por dos puntos. Para acceder a cualquiera de los valores, debemos indicar su clave entre corchetes. Ejemplo
  • 9. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 9 Ilustración 12: Manejo de Diccionario
  • 10. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 10 HT-02 : Desarrollar aplicativo con manejo de programación OBJETIVO: Con los recursos proporcionados y los conocimientos previos, desarrollar aplicaciones, utilizando estructuras de control y ficheros. ESTRUCTURAS DE CONTROL Una estructura de control, es un bloque de código que permite agrupar instrucciones de manera controlada. Las estructuras de control pueden ser: 4.4. ESTRUCTURA DE CONTROL SELECTIVAS O CONDICIONALES 4.4.1. Identación: La identación es lo que la sangría al lenguaje humano escrito (a nivel formal). Así como para el lenguaje formal, cuando uno redacta una carta, debe respetar ciertas sangrías, los lenguajes informáticos, requieren una identación. En Python, la identación es obligatoria, ya que de ella, dependerá su estructura. 4.4.2. Encoding El encoding (o codificación) es otro de los elementos del lenguaje que no puede omitirse a la hora de hablar de estructuras de control. El encoding no es más que una directiva que se coloca al inicio de un archivo Python, a fin de indicar al sistema, la codificación de caracteres utilizada en el archivo. # -*- coding: utf-8 -*- utf-8 podría ser cualquier codificación de caracteres. Si no se indica una codificación de caracteres, Python podría producir un error si encontrara caracteres extraños: print “En el Ñágara encontré un Ñandú” Por lo tanto el programa debería escribirse de la siguiente manera: Ilustración 13: Uso de Encoding 4.4.3. Asignación múltiple:
  • 11. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 11 Otra de las ventajas que Python nos provee, es la de poder asignar en una sola instrucción, múltiples variables: a, b, c = ‘string’, 15, True En una sola instrucción, estamos declarando tres variables: a, b y c y asignándoles un valor concreto a cada una: Estructuras de control de flujo condicionales o selectivas Las estructuras de control selectivas, son aquellas que nos permiten evaluar si una o más condiciones se cumplen, para determinar que bloque de acción(es) vamos a ejecutar. La evaluación de condiciones o expresión lógica, solo puede arrojar 1 de 2 resultados: verdadero o falso (True o False). Para construir expresiones lógicas o condiciones se han de utilizar operadores de relación y lógicos Símbolo Significado == Igual que != Distinto que < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que Tabla 1: Operadores de Relación Operador Operación and Conjunción or Disyunción Inclusiva not Negación Tabla 2: Operadores lógicos Ejemplo: A partir de un número ingresado, determinar si es negativo, si es cero, igual a uno o mayor a uno.
  • 12. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 12 Ilustración 14: Programa con Estructura Selectiva ESTRUCTURA DE CONTROL REPETITIVAS O ITERATIVAS A diferencia de las estructuras de control condicionales, las repetitivas o iterativas (también llamadas cíclicas o bucles), nos permiten ejecutar un mismo código, de manera repetida, mientras se cumpla una condición. En Python se dispone de dos estructuras cíclicas:  El bucle while  El bucle for 4.4.4. Bucle while Ejecuta un bloque de instrucciones "mientras que" una determinada condición se cumpla o sea verdadera. Ejemplo: Mientras que año sea menor o igual a 2020, mostrar la frase "Consolidado del Año <<yyyy>>". Ilustración 15: Estructura repetitiva While 4.4.4.1. 4.4.5. Bucle for Efectúa iteraciones sobre los ítems de cualquier secuencia (una lista o una cadena de caracteres), en el orden que aparecen en la secuencia. 4.4.5.1. Bucle ‘for’ con Listas Efectúa iteraciones
  • 13. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 13 Ilustración 16: for con listas 4.4.5.2. Bucle ‘for’ con Listas y función ‘range’ Ilustración 17: Uso de la función range en for Bucle ‘for’ con Tuplas Ilustración 18: for con Tuplas 4.4.5.3. Bucle ‘for’ con Diccionarios Ilustración 19: for con Diccionarios
  • 14. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 14 4.4.5.4. Bucle ‘for’ con ‘else’ El bloque else se ejecutará en todos los casos, es decir, cuando la expresión condicional del bucle for sea False, (a comparación de la sentencia if). La sentencia else tiene la ventaja de mantener el mismo nombre y la misma sintaxis que en las demás estructuras de control. Ilustración 20: for... else 5. PROGAMACIÓN OREINTADO DE OBJETOS: CLASES, OBJETOS, MÉTODOS Y FUNCIONES 7.1. Clases Una clase es una plantilla genérica de un objeto. La clase proporciona variables iniciales de estado (donde se guardan los atributos) e implementaciones de comportamiento (métodos) necesarias para crear nuevos objetos, son los modelos sobre los cuáles serán construidos. 7.2. Objetos Al crear instancias de una clase hace relación a la creación de objetos de ese tipo 7.3. Métodos Los métodos son como funciones. Se definen con la palabra clave def y cuentan con el mismo formato que las funciones. Sin embargo, la principal diferencia es que los métodos necesitan tener un argumento convenientemente llamado self, que se refiere al objeto del método que está siendo llamado 7.4. Funciones Es un bloque de código con un nombre asociado, que recibe cero o más argumentos como entrada, sigue una secuencia de sentencias, la cuales ejecuta una operación deseada y devuelve un valor y/o realiza una tarea, este bloque puede ser llamados cuando se necesite. Ejemplo:
  • 15. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 15 Ilustración 21: Definición de clases y métodos Ilustración 22: método __init__ (inicializador) El inicializador es un método especial, con nombre __init__ (será tratado de forma especial, por eso que tiene subrayados dobles al principio y al final).
  • 16. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 16 HT-03: : Crear aplicación con el manejo de Errores y gestión de Expresiones Regulares OBJETIVO : los estudiantes al finalizar la sesión estarán en la capacidad de identificar, definir y utilizar instrucciones y expresiones para la gestión de errores en Python con exactItud. 6. GESTIÓN DE ERRORES Y/O EXCEPCIONES Una de las características más poderosas del lenguaje de programación Python es la gestión de excepciones. Debido a lo dinámico que puede ser Python es muy común que el intérprete se tope con múltiples fuentes de error. Es posible con Python no sólo identificar y rastrear los errores, sino tomar acciones correctivas y preventivas. 6.1. ERRORES DE SINTAXIS. Los errores sintácticos o denominados también de compilación son los más comunes cuando se escribe código. Los errores sintácticos ocurren cuando el intérprete encuentra una expresión que no está bien formada (rompe las reglas de sintaxis). Ejemplo print “hola” Se generaría el siguiente error: SyntaxError: Missing parentheses in call to 'print'. Did you mean print("hola")? 6.2. EXCEPCIONES Los errores de ejecución son llamados comúnmente excepciones y por eso de ahora en más utilizaremos ese nombre. Durante la ejecución de un programa, si dentro de una función surge una excepción y la función no la maneja, la excepción se propaga hacia la función que la invocó, si esta otra tampoco la maneja, la excepción continua propagándose hasta llegar a la función inicial del programa y si esta tampoco la maneja se interrumpe la ejecución del programa. 6.2.1. Manejo de excepciones Para el manejo de excepciones los lenguajes proveen ciertas palabras reservadas, que nos permiten manejar las excepciones que puedan surgir y tomar acciones de recuperación para evitar la
  • 17. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 17 interrupción del programa o, al menos, para realizar algunas acciones adicionales antes de interrumpir el programa. En el caso de Python, el manejo de excepciones se hace mediante los bloques que utilizan las sentencias try, except y finally. Ejemplo: Controlando el mensaje de error por el usuario Ilustración 23: Uso de Try... except Un bloque finally donde se escriben las sentencias de finalización, que son típicamente acciones de limpieza. La particularidad del bloque finally es que se ejecuta siempre, haya surgido una excepción o no. Ilustración 24: except y finally en gestión de excepciones 7. FUNCIONES DE FECHA Y HORA La biblioteca estándar de Python cuenta con dos paquetes especializados en manejos de fechas y horas.  time.  datetime. 7.1. EL MÓDULO TIME Este módulo permite realizar algunas operaciones básicas de fecha y hora. Utilice la línea, para poder utilizar funciones de fecha y hora en los programas
  • 18. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 18 7.2. LA FUNCIÓN time.asctime(). Regresa una cadena de caracteres con la fecha que se ingresa como una tupla de tiempo. Ilustración 25: time.asctime 7.3. LA FUNCIÓN time.sleep(). Permite detener la ejecución de un script durante un tiempo definido en segundos. Ilustración 26: time.sleep 7.4. FUNCIÓN time.strftime( formato [ , t ] ) Convierte un tiempo devuelto por gmtime() o localtime()en una cadena como se especifica en el argumento de formato . Si no se proporciona t , gmtime()se utiliza la hora actual. Ilustración 27: función time.strftime 8. UTILIZAR JSON EN PYTHON 8.1. ¿Qué es JSON? JSON (JavaScript Object Notation - Notación de Objetos de JavaScript) es un formato ligero de intercambio de datos. Leerlo y
  • 19. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 19 escribirlo es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo. JSON está constituído por dos estructuras:  Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.  Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias. 8.2. Pre-requisitos Para hacer uso de JSON en Python, vamos a usar el paquete json, el cual, incluye todas las funciones necesarias para el tratamiento de JSONs. Como ejemplo de uso vamos a usar el siguiente JSON, 8.3. Codificar JSON El codificador entiende varios tipos nativos de Python por defecto como por ejemplo: string, unicode, int, float, list, tuple, dict. Por lo tanto en nuestro caso, vamos a crear listas de diccionarios con los datos. 8.4. Decodificar JSON Para decodificar un JSON a vamos a hacer uso de la función json_loads(String) Ejemplo: Ilustración 28: Uso de json
  • 20. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 20 HT-04: Desarrollar aplicaciones con Base de Datos y entorno grafico OBJETIVO : Con la ayuda del material digital proporcionado por el docente, los estudiantes al finalizar la sesión estarán en la capacidad de definir la estructura básica de una base de datos con exactitud. 9. FUNDAMENTOS BASE DE DATOS 9.1. ¿QUÉ ES UNA BASE DE DATOS Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular. 9.2. ELEMENTOS DE UNA BASE DE DATOS Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro. Ilustración 29: Elementos de una Base de Datos 9.3. CARACTERÍSTICAS Entre las principales características de los sistemas de base de datos podemos mencionar:  Independencia lógica y física de los datos.  Redundancia mínima.  Acceso concurrente por parte de múltiples usuarios.  Integridad de los datos.  Consultas complejas optimizadas.  Seguridad de acceso y auditoría.
  • 21. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 21  Respaldo y recuperación.  Acceso a través de lenguajes de programación estándar. MODELO DE UNA BASE DE DATOS Para construir una base de datos, partimos del estudio de un caso o problema donde tenemos la necesidad de automatizar los procesos que están relacionados con la gestión de datos. El análisis del modelo conceptual o modelo del negocio ha de generar el MER o modelo entidad-relación. 9.3.1. Modelo entidad-relación Los diagramas o modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades Ilustración 30: Modelo Entidad Relación 9.3.2. Cardinalidad de las Relaciones El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente: Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B. Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B. Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B. 9.4. ESTRUCTURA DE UNA BASE DE DATOS Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente. Cada base de datos contiene una o más tablas, que cumplen la función de contener los campos.
  • 22. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 22 En el siguiente ejemplo mostramos una tabla “TbMarcas” que contiene 3 campos. Ilustración 31: Estructura de la Tabla Marca Los datos quedarían organizados como mostramos en siguiente ejemplo: Ilustración 32: Listado de datos TbMarcas 9.5. LENGUAJE SQL El lenguaje SQL es el más universal en los sistemas de base de datos. Este lenguaje nos permite realizar consultas a nuestras bases de datos para mostrar, insertar, actualizar y borrar datos. 9.6. BASE DE DATOS DESDE PYTHON Cuando tenemos que almacenar gran cantidad de datos y su posterior procesamiento es muy común utilizar un gestor de bases de datos. Con Python podemos comunicarnos con un gestor de bases de datos para enviar y recuperar datos. Existen gran cantidad de gestores de bases de datos y el primero que veremos para ver cuál es la mecánica para conectarnos desde Python será el gestor de base de datos MySQL. 9.7. INSTALACIÓN DE MYSQL.
  • 23. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 23 Para facilitar la administración del MySQL utilizaremos el programa XAMPP que entre otros instala:  MySQL  PHPMyAdmin (que nos permitirá administrar las bases de datos existentes en MySQL)  PHP (Lenguaje que nos permite ejecutar el PHPMyAdmin)  Apache (Servidor Web que nos permite ejecutar PHPMyAdmin y PHP en un servidor) Descargamos e instalamos XAMPP para el sistema operativo que estamos trabajando. Luego instalamos la aplicación que hemos descargado: Ilustración 33: Instalación de XAMPP Una vez finalizada la instalación de todo el software debemos arrancar el programa "XAMPP Control Panel": Ilustración 34: Abrir Xampp desde el menú de inicio Aparece la interfaz desde donde debemos iniciar el gestor de base de datos MySQL: Presionamos el botón "Start" tanto para MySQL como para Apache:
  • 24. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 24 Ilustración 35: Iniciar los servicios: Apache y MySQL Si aparecen en verde significa que los programas se encuentran correctamente en funcionamiento. Ilustración 36: Apache y MySQL en ejecución 9.8. CREACIÓN DE UNA BASE DE DATOS Para crear la base de datos utilizaremos el programa PHPMyAdmin que lo iniciamos presionando el botón "MySQL - Admin" del "XAMPP Control Panel":
  • 25. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 25 Ilustración 37: Acceso al Administrador de Base de Datos Se nos abre una aplicación web PHPMyAdmin que nos permite administrar nuestras bases de datos de MySQL: Ilustración 38: Crear una nueva base de datos En el siguiente diálogo debemos definir el nombre de nuestra base de datos, Ejemplo: "bdferreyros":
  • 26. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 26 Ilustración 39: Creación de una base de datos Al terminar crear la base de datos tendremos la siguiente estructura: Ilustración 40: Estructura de una base de datos 10.INTERFAZ GRÁFICA CON TKINTER Con Python hay muchas posibilidades para programar una interfaz gráfica de usuario (GUI) pero Tkinter es fácil de usar, es multiplataforma y, además, viene incluido con Python en su versión para Windows, para Mac y para la mayoría de las distribuciones GNU/Linux. Se le considera el estándar de facto en la programación GUI con Python. Tkinter es un binding de la biblioteca Tcl/Tk que está también disponible para otros lenguajes como Perl y Rubí. Normalmente, el paquete Tkinter estará disponible en nuestra instalación Python, excepto en algunas distribuciones GNU/Linux. 10.1. Aplicaciones con Tkinter El siguiente ejemplo crea una aplicación que incluye una ventana con un botón en la parte inferior. Al presionar el botón la aplicación termina su ejecución. Una ventana es el elemento fundamental de una aplicación GUI. Es el primer objeto que se crea y sobre éste se
  • 27. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 27 colocan el resto de objetos llamados widgets (etiquetas, botones, etc.). Ilustración 41: Definir una GUI con Tkinter Ilustración 42: Ventana construida con Tkinter El siguiente ejemplo crea una aplicación que permite el ingreso de dos números en cajas de texto con un botón “Sumar” que permite calcular y mostrar el resultado de la suma.
  • 28. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 28 Ilustración 43: Programa que suma dos números 11.GENERAR DOCUMENTACIÓN AUTOMATICAMENTE 11.1. Documentando programas en Python Aunque yo sea el único usuario de mi programa, resulta más sencillo entender y reutilizar lo que escribí hace seis meses si cuento con una documentación adecuada. Si deseamos que nuestros programas trasciendan más allá del momento en que los escribimos necesitamos dedicarles algo de tiempo para documentarlos. Una buena noticia es que Python cuenta con un mecanismo bastante sencillo y conveniente para elaborar la documentación técnica de un programa. A continuación expondré dicho mecanismo. 11.2. Cadenas de documentación En Python, un docstring o cadena de documentación es una literal de cadena de caracteres que se coloca como primer enunciado de un módulo, clase, método o función, y cuyo propósito es explicar su intención.  Los comentarios de una línea se puede hacer con #  Los comentarios de varias líneas comienzan con ’ ’ ’ o ” ” ” (3 apostrofes o comillas) y terminan de la misma manera
  • 29. ALGORITMIA DE PROGRAMACIÓN DEL SOFTWARE ESCUELA DE TECNOLOGÍAS DE LA INFORMACIÓN 29 Ilustración 44: Documentación de un programa 12.TRABAJAR CON PRUEBAS AUTOMÁTICAS Las pruebas son de mucha importancia, son las que definen el flujo de proyectos y grandes equipos de trabajo. Dentro de las prácticas de buen desarrollador se encuentra las pruebas de los diferentes desarrollos que realicen, lo que los diferencia es la forma en la que realizan dichas pruebas. Por eso es tan importante la implementación de pruebas ya que ayudan a verificar errores y dificultades del desarrollo rápidamente, para poder solucionarlos en la brevedad. Entonces, ¿Porque Automatizar? La principal razón es el tiempo y con las pruebas automatizadas se puede reducir el tiempo de las pruebas. Además al automatizar las actividades comunes que no requieren de inteligencia humana, los testers pueden dedicar mayor tiempo a pruebas más críticas y caminos más elaborados dejando los caminos básicos a las pruebas automatizadas. Rapidez: Las herramientas de testing automatizado corren las pruebas significativamente más rápido que los testers humanos. Fiabilidad: Las pruebas ejecutan precisamente las mismas operaciones cada vez que se ejecutan, eliminando el error humano. Repetición: Se puede testear como reacciona el soft bajo repetidas ejecuciones de las mismas operaciones. Programable: Se pueden programar pruebas sofisticadas y complejas que muestren información oculta de la aplicación. Reusabilidad: Se pueden rehusar los scripts con pruebas automatizadas