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 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
Compartir