Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
ANÁLISIS DE ALGORITMOS Y ESTRATEGIAS DE PROGRAMACIÓN Docente: Mg. Gálvez Tapia Orleans Moisés CIP. 171497 UNIDAD 1: LA COMPLEJIDAD ALGORÍTMICA Y PRINCIPALES ESTRATEGIAS DE PROGRAMACIÓN SEMANA 02: Tipos estructurados, registros, cadena de caracteres en Python ¿Qué estructuras repetitivas conoce? SABERES PREVIOS AGENDA: 1. Estructuras repetitivas do-while, while y for en Python 2. Arreglos en Python 3. Listas bidimensionales o matrices en Python 4. Ejercicios Resueltos 5. Ejercicio Propuesto 6. Conclusiones 7. Referencias Bibliográficas LOGRO DE LA SESIÓN Al término de la clase, el estudiante elabora programas en el lenguaje Python, usando arreglos, cadenas de caracteres y listas, mostrando dominio técnico del lenguaje y una lógica coherente. DO-WHILE EN C vs DO-WHILE EN PYTHON No existe do-while en Python, pero podemos simularlo con un ciclo infinito y break. do-while en C do-while en Python EJEMPLO 01 Desarrollar un programa en Python que lea por teclado “n” notas (0<=nota<=20), calcule la nota media del grupo, muestre las notas superiores a la media. El valor de “n” se lee por teclado. Usar listas y estructuras repetitivas: do-while, for. EJEMPLO 01 Desarrollar un programa en Python que lea por teclado “n” notas (0<=nota<=20), calcule la nota media del grupo, muestre las notas superiores a la media. El valor de “n” se lee por teclado. Usar listas y estructuras repetitivas: do-while, for. Salida del programa: LISTAS BIDIMENSIONALES EN PYTHON (MATRICES) [0] [1] [2] [3] [4] [0] m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] [1] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] [2] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] [3] m[3][0] m[3][1] m[3][2] m[3][3] m[3][4] [4] m[4][0] m[4][1] m[4][2] m[4][3] m[4][4] f: Número de filas c: Número de columnas f = len(m) c = len(m[0]) = len(m[1]) = … len(m[i]) Para recorrer las filas usamos: i Para recorrer las columnas usamos j Los valores que toman i y j son: i: 0,1,2,...,(f-1) i: 0,1,2,...,len(m)-1 j: 0,1,2,...,(c-1) j: 0,1,2,...,len(m[i])-1 m: i f-1 j c-1 LISTAS BIDIMENSIONALES EN PYTHON (MATRICES) [0] [1] [2] [3] [4] [0] m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] [1] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] [2] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] [3] m[3][0] m[3][1] m[3][2] m[3][3] m[3][4] [4] m[4][0] m[4][1] m[4][2] m[4][3] m[4][4] Para recorrer toda la matriz necesitamos dos bucles for anidados: i: 0,1,2,...,len(m)-1 j: 0,1,2,...,len(m[i])-1 for i in range(len(m)): for j in range(len(m[i])): #procesamos m[i][j] m: i f-1 j c-1 EJEMPLO 02 (Trabajando con matrices en Phyton) Creamos la matriz A con 3 filas y 4 columnas, los datos los ingresamos en tiempo de desarrollo. Finalmente retornamos la matriz. Con una sola sentencia mostramos todo el contenido de la matriz A. Mostramos los datos de cada una de las filas. En cada iteración del for se lee una fila de la matriz A, y se muestran todos sus elementos con la sentencia print(fila). EJEMPLO 02 (Trabajando con matrices en Phyton) Creamos una lista vacía para almacenar los datos de la primera columna. Luego, leemos todas las filas de la matriz, y de cada fila solamente tomamos un dato, el de la primera columna, y lo agregamos al final de columna0. Mostramos los datos de cada una de las columnas. De la misma manera procedemos con todas las columnas. EJEMPLO 02 (Trabajando con matrices en Phyton) Invocamos a los métodos para generar la salida del programa. El for garantiza que se recorran todas las columnas de la matriz, y en cada iteración se muestren los datos de cada una de ellas. Para mostrar los datos de una columna en particular (columna j), creamos una lista vacía para almacenar sus datos. Luego, leemos todas las filas de la matriz, y de cada fila solamente tomamos un dato, el de la columna j, y lo agregamos al final de lista. EJEMPLO 03 Elaborar un programa en Phyton que permita sumar dos matrices: EJEMPLO 03 Salida del programa: EJEMPLO 04 Elaborar un programa en Phyton que permita calcular la transpuesta de una matriz: Salida del programa: EJEMPLO 04 EJERCICIO RESUELO PASO A PASO Desarrollar un programa en Python que permita: i. Pedir al usuario que ingrese el número de filas y columnas. ii. Crear y poblar una matriz de enteros pidiendo cada elemento al usuario. Si se trata de una matriz cuadrada debe almacenar en un vector los elementos de la diagonal principal y en otro los elementos de la diagonal secundaria. iii. Mostrar los elementos de la matriz y los elementos de las diagonales iv. Mostrar el mayor elemento almacenado en la matriz Desarrollar un programa en Python que permita: i. Pedir al usuario que ingrese el número de filas y columnas. ii. Crear y poblar una matriz de enteros pidiendo cada elemento al usuario. Si se trata de una matriz cuadrada debe almacenar en un vector los elementos de la diagonal principal y en otro los elementos de la diagonal secundaria. iii. Mostrar los elementos de la matriz y los elementos de las diagonales iv. Mostrar el mayor elemento almacenado en la matriz [0] [1] [2] [3] [4] [0] m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] [1] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] [2] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] [3] m[3][0] m[3][1] m[3][2] m[3][3] m[3][4] [4] m[4][0] m[4][1] m[4][2] m[4][3] m[4][4] m: Los elementos de la diagonal principal son aquellos donde: i = j EJERCICIO RESUELO PASO A PASO Desarrollar un programa en Python que permita: i. Pedir al usuario que ingrese el número de filas y columnas. ii. Crear y poblar una matriz de enteros pidiendo cada elemento al usuario. Si se trata de una matriz cuadrada debe almacenar en un vector los elementos de la diagonal principal y en otro los elementos de la diagonal secundaria. iii. Mostrar los elementos de la matriz y los elementos de las diagonales iv. Mostrar el mayor elemento almacenado en la matriz [0] [1] [2] [3] [4] [0] m[0][0] m[0][1] m[0][2] m[0][3] m[0][4] [1] m[1][0] m[1][1] m[1][2] m[1][3] m[1][4] [2] m[2][0] m[2][1] m[2][2] m[2][3] m[2][4] [3] m[3][0] m[3][1] m[3][2] m[3][3] m[3][4] [4] m[4][0] m[4][1] m[4][2] m[4][3] m[4][4] m: Los elementos de la diagonal secundaria son aquellos donde: i+j = len(m) - 1 EJERCICIO RESUELO PASO A PASO Salida del programa: EJERCICIO RESUELO PASO A PASO EJERCICIO PROPUESTO Elaborar un programa en Phyton que permita identificar y mostrar los números primos almacenados dentro de una matriz. CONCLUSIONES a. Las listas en Python son un tipo de dato que permite almacenar datos de cualquier tipo. b. Algunas propiedades de las listas: • Pueden ser indexadas con [i]. • Se pueden anidar, es decir, meter una dentro de la otra. • Son mutables, ya que sus elementos pueden ser modificados. • Son dinámicas, ya que se pueden añadir o eliminar elementos. REFERENCIAS BIBLIOGRÁFICAS REFERENCIA ENLACE Una introducción a las matemáticas para el análisis y diseño de algoritmos https://elibro.bibliotecaupn.elogim.com/es/lc/upnort e/titulos/35059 Manual de algorítmica: recursividad, complejidad y diseño de algoritmos https://elibro.bibliotecaupn.elogim.com/es/lc/upnort e/titulos/56561 Introducción práctica a la programación con Python https://elibro.bibliotecaupn.elogim.com/es/lc/upnort e/titulos/124259 Criptografía sin secretos con Python https://elibro.bibliotecaupn.elogim.com/es/lc/upnort e/titulos/106497 ACM UVA Online http://uva.onlinejudge.org/ ACM ICPC Competition https://icpc.global/compete/preparation https://elibro.bibliotecaupn.elogim.com/es/lc/upnorte/titulos/35059 https://elibro.bibliotecaupn.elogim.com/es/lc/upnorte/titulos/56561 https://elibro.bibliotecaupn.elogim.com/es/lc/upnorte/titulos/124259 https://elibro.bibliotecaupn.elogim.com/es/lc/upnorte/titulos/106497 http://uva.onlinejudge.org/ https://icpc.global/compete/preparation
Compartir