Logo Studenta

Sesión 02_Mg Orleans Gálvez Tapia(1)

¡Este material tiene más páginas!

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

Continuar navegando