Logo Studenta

Sesión 01_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 01: Introducción al lenguaje Python. 
¿Cuáles son las 
principales 
características de 
Python?
SABERES PREVIOS
AGENDA:
1. Características del lenguaje Python
2. Ingreso de datos usando input()
3. Definición de procedimientos y funciones en Python
4. Estructuras condicionales if-else, if-elif-else
5. Ejercicios Resueltos
6. Ejercicio Propuesto
7. Conclusiones 
8. Referencias Bibliográficas
LOGRO DE LA SESIÓN
Al término de la clase, el estudiante elabora programas en 
el lenguaje Python, usando estructuras secuenciales, 
condicionales y repetitivas, mostrando dominio técnico del 
lenguaje y una lógica coherente.
CARACTERÍSTICAS DEL LENGUAJE PYTHON
a. Programación Orientada a objetos (POO)
b. Lenguaje interpretado
c. Multiplataforma
d. Tipado dinámico
e. Lenguaje open source
f. Ampliamente respaldado
g. Es polivalente. 
EJEMPLO 01
Ingresar 3 números enteros distintos y mostrar el mayor
Primera forma:
o Input(), retorna todos los caracteres escritos
por el operador del programa, pero no en
formato numérico.
o Es necesario convertir el dato ingresado a
entero con la función int(), para poder realizar
operaciones matemáticas posteriormente.
o #comentario de una línea
o ‘’’ comentario de varias líneas ‘’’
o “”” comentario de varias líneas “””
Ingresar 3 números enteros distintos y mostrar el mayor
Segunda forma:
Creamos una o más rutinas (procedimientos o
funciones) cuyas instrucciones nos permiten
resolver parte del problema.
def nombre_método(parámetros):
Instrucciones
Finalmente, invocamos a las rutinas que
generan la salida esperada del programa.
nombre_método(valor para cada parámetro)
EJEMPLO 01
CONDICIONALES ANIDADAS
Para indicar un bloque de código en Python,
debemos indentar cada línea del bloque en la
misma cantidad.
En Python la indentación (sangría) es necesaria
para indicar a qué bloque de código pertenece una
declaración.
CONDICIONALES ANIDADAS IF-ELIF-ELSE
if <expr>:
<statement(s)>
elif <expr>:
<statement(s)>
elif <expr>:
<statement(s)>
...
else:
<statement(s)>
Ingresar un número y mostrar si es negativo, positivo o cero.
Primera forma: Segunda forma:
EJEMPLO 02
Ingresar un número y mostrar si es negativo, positivo o cero.
Tercera forma:
EJEMPLO 02
Ingresar un número entre 0 y 999, luego mostrar la cantidad de dígitos que tiene.
Solución:
EJEMPLO 03
¿Cuál es el problema de este 
código?
Respuesta: El usuario puede ingresar
valores negativos y mayores a 999. Es
decir, no hay validaciones del
número ingresado.
Solución. Utilizar un bucle (do-while)
para evitar que se ingresen datos
fuera del rango permitido.
Ingresar un número entre 0 y 999, luego mostrar la cantidad de dígitos que tiene. Utilizar un do-while para 
garantizar que el dato ingresado esté en el rango permitido.
EJEMPLO 04 (primera forma)
do-while
Estas instrucciones se repiten 
hasta que se cumpla esta condición
Ingresar un número entre 0 y 999, luego mostrar la cantidad de dígitos que tiene. Utilizar un do-while para 
garantizar que el dato ingresado esté en el rango permitido.
do-while
Estas instrucciones se repiten 
Mientras esta condición es falsa
EJEMPLO 04 (primera forma)
EJEMPLO 04 (segunda forma)
do-while
Con esto garantizamos que las
instrucciones se ejecuten al
menos una vez (característica
principal de un bucle do-while)
Un postulante a un empleo realizó un test de capacitación. De ese test se obtuvo la siguiente
información:
o Total de preguntas que se realizaron.
o Cantidad de preguntas que contestó correctamente.
Elaborar un programa que permita ingresar los datos anteriores y muestre una calificación para el
postulante, la misma que se obtendrá de acuerdo al porcentaje de respuestas correctas, así:
Si Porcentaje>=90% ⇒ la calificación será “Máximo”
Si Porcentaje>=75% y <90% ⇒ la calificación será “Medio”
Si Porcentaje>=50% y <75%. ⇒ la calificación será “Regular”
Si Porcentaje<50%. ⇒ la calificación será “Pésimo”
EJEMPLO 05 
EJEMPLO 05
Primera forma:
Ingreso de datos
Proceso
(if - elif - else)
Salida
EJEMPLO 05
Segunda forma:
Ingreso de datos
Proceso
(if - elif - else)
Salida
EJEMPLO 06
Elaborar un programa que muestre los divisores de un número (n>0) ingresado por teclado.
Primera forma:
do-while
EJEMPLO 06
Elaborar un programa que muestre los divisores de un número (n>0) ingresado por teclado.
Segunda forma:
do-while
Tomado de: https://pynative.com/python-range-function/
Fecha: 15/03/2023
ESTRUCTURA REPETITIVA FOR
https://pynative.com/python-range-function/
Tomado de: https://pynative.com/python-for-loop/
Fecha: 15/03/2023
ESTRUCTURA REPETITIVA FOR
https://pynative.com/python-for-loop/
EJEMPLO 06
Elaborar un programa que muestre los divisores de un número (n>0) ingresado por teclado.
Tercera forma:
for
# Numbers from 10 to 15
# start = 10
# stop = 16
for i in range(10, 16):
print(i, end=' ') 
# Output 10 11 12 13 14 15
EJEMPLO 07 (Primera Forma)
Elaborar un programa que permite determinar si un número es primo o no.
En vez de mostrar los 
divisores, únicamente 
los contabilizamos.
Elaborar un programa que permite determinar si un número es primo o no.
EJEMPLO 07 (Segunda Forma)
Este procedimiento
muestra directamente un 
mensaje indicando si el 
número es primo o no.
EJEMPLO 07 (Tercera Forma)
Función booleana que 
devuelve True cuando el 
número que recibe como 
parámetro es primo, en 
caso contrario retorna 
False.
LONGITUD DE UNA LISTA O CADENA EN PYTHON
P y t h o n
[0] [1] [2] [3] [4] [5]
len(cadena) - 1
EJEMPLO 08 (Primera Forma)
Elaborar un programa que permita ingresar un mail por teclado. Verificar si el string ingresado 
contiene solo un caracter "@"
EJEMPLO 08 (Segunda Forma)
Elaborar un programa que permita ingresar un mail por teclado. Verificar si el string ingresado 
contiene solo un caracter "@"
AGREGAR UN ELEMENTO AL FINAL DE UNA LISTA CON lista.append()
Sintaxis:
Ejemplo 1: Ejemplo 2:
Elaborar un programa que permita ingresar “n” elementos en una lista (n>0), mostrar la lista y el 
mayor de todos ellos.
EJEMPLO 09
EJERCICIO DESARROLLADO EN VISUAL STUDIO CODE
Elaborar un programa que permita ingresar “n” elementos en una lista (n>0), mostrar la lista y el mayor de 
todos ellos. El programa debe incluir procedimientos, funciones y deberá ejecutarlo desde VSCode. 
EJERCICIO PROPUESTO 01
Escribir un programa en Python que
solicite la carga de un valor “n”
(n>0), almacene en una lista todos
los números desde 1 hasta el valor
ingresado, y finalmente muestre la
lista.
Por ejemplo, si ingresamos 30 se debe
mostrar en pantalla los números del 1 al
30.
1 2 3 4 … n
[0] [1] [2] [3] [..] [n-1]
Escribir un programa en Python
que solicite la carga de un
valor “n” (n>0), almacene en
una lista los cuadrados de los
números (desde 1 hasta el
cuadrado del valor ingresado), y
finalmente muestre la lista.
Por ejemplo, si ingresamos 5 se
debe mostrar en pantalla lo
siguiente:
[1,4,9,16,25]
𝟏𝟐 𝟐𝟐 𝟑𝟐 𝟒𝟐 … 𝒏𝟐
[0] [1] [2] [3] [..] [n-1]
EJERCICIO PROPUESTO 02
CONCLUSIONES
a. Python es un lenguaje del tipo interpretado, es de tipado dinámico, multiplataforma y
multipropósito.
b. Python se utiliza para infinidad de proyectos:
• Inteligencia Artificial (IA)
• Big data y Análisis de datos
• Programación de Apps
• Etc.
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/upnorte/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