Estructura Programación Iterativas (Bucles) PDF

Summary

These notes cover iterative structures (loops) in programming, specifically focusing on Python code examples and the concept of accumulators. The document demonstrates "while" and "for" loops, handling input and output with Python.

Full Transcript

LENGUAJE DE PROGRAMACIO NI Estructuras Iterativas (Bucles) Las estructuras iterativas o bucles La estructura iterativa es la otra estructura de control de flujo fundamental, conocida también por el nombre de bucles (loops). El control de flujo iterativo permite resolver cómodamen...

LENGUAJE DE PROGRAMACIO NI Estructuras Iterativas (Bucles) Las estructuras iterativas o bucles La estructura iterativa es la otra estructura de control de flujo fundamental, conocida también por el nombre de bucles (loops). El control de flujo iterativo permite resolver cómodamente una situación frecuente en todo tipo de algoritmos: es necesario ejecutar un conjunto de sentencias una y otra vez. Estas sentencias se ejecutan y se repiten:  WHILE mientras determinada condición lógica se cumpla.  FOR un número determinado de veces. Las estructura iterativa Bucle while El bucle while se ejecuta mientras se cumpla una condición. La estructura básica es la siguiente: while condicion: instruccion ……. Por un lado, la palabra reservada while que lo identifica más la condición lógica y el delimitador : 2 Por el otro lado, el cuerpo de sentencias, que debe aparecer adecuadamente sangrado. Las estructura iterativa Bucle while SCRIPT PYTHON # Un bucle para garantizar que el mes introducido es correcto mes = int(input("Introduzca el mes del año (entre 1 y 12): ")) while mes > 12 or mes < 1: print("Mes introducido incorrecto. Inténtelo de nuevo.") mes = int(input("Introduzca el mes del año (entre 1 y 12):")) print(f'El mes {mes} es válido.') Una forma alternativa de programar el ejemplo anterior es la siguiente: SCRIPT PYTHON # Un bucle para garantizar que el mes introducido es correcto. Versión alternativa (I). mes = 0 # Inicializamos la variable con un valor que # hace que se evalúe a True la condición de control while mes > 12 or mes < 1: mes = int(input("Introduzca el mes del año (entre 1 y 12):")) if mes > 12 or mes < 1: print("Mes introducido incorrecto. Inténtelo de nuevo") print(f'El mes {mes} es válido.') 3 Las estructura iterativa Bucle while Una forma alternativa de programar el ejemplo anterior es la siguiente: SCRIPT PYTHON # Un bucle para garantizar que el mes introducido es correcto. Versión alternativa (I). mes = 0 # Inicializamos la variable con un valor que # hace que se evalúe a True la condición de control while mes > 12 or mes < 1: mes = int(input("Introduzca el mes del año (entre 1 y 12):")) if mes > 12 or mes < 1: print("Mes introducido incorrecto. Inténtelo de nuevo") print(f'El mes {mes} es válido.') Otra alternativa es forzar la entrada al bucle con una variable booleana. SCRIPT PYTHON # Un bucle para garantizar que el mes introducido es correcto. Versión alternativa (II). mes_correcto = False while not mes_correcto: mes = int(input("Introduzca el mes del año (entre 1 y 12):")) if mes > 12 or mes < 1: print("Mes introducido incorrecto. Inténtelo de nuevo") else: mes_correcto = True 4 print(f'El mes {mes} es válido.') Bucle controlado por un contador El anterior es un ejemplo de un bucle controlado por una condición lógica de carácter general. En muchas ocasiones, la condición de salida del bucle viene determinada por un contador. SCRIPT PYTHON # Bucle controlado por un contador que suma un determinado conjunto de reales. (Versión 1) contador = int(input('Diga cuantos números reales quiere sumar: ')) suma = 0.0 while contador > 0: valor = float(input('Dame un valor real: ')) suma += valor # Equivalente a suma = suma + valor contador = contador - 1 # Se podría usar: contador -= 1 print("La suma de los números introducidos es", suma) 5 El acumulador El ejemplo anterior implementa una de las ideas básicas más habituales en programación: el concepto de acumulador. Se quiere realizar una operación (la suma) que involucra un conjunto (no determinado en el momento de la programación) de operandos. La idea consiste en dedicar una variable acumulador (suma) para contener los resultados parciales de dicha operación. Dicha variable acumulador ha de ser inicializada antes de entrar al bucle a un valor que sea neutro respecto a la operación seleccionada (el 0 en caso de la suma). Ya dentro del bucle, la variable acumulador es actualizada en cada iteración. Se podría haber programado el ejemplo anterior de otra forma, igualmente válida y legible, en la que no perdemos el valor inicial de cuantos números queremos sumar. Además, resulta fácil distinguir el caso en el cual no se introdujeron números. 6 Bucle con acumulador # Bucle controlado por un contador que suma un determinado conjunto de reales. (Versión 2) num_valores = int(input("Diga cuantos números reales quiere sumar: ")) suma = 0.0 contador = 0 while contador < num_valores: valor = float(input("Deme el valor real {} a sumar: ".format(contador))) suma += valor contador += 1 if num_valores > 0: print("La suma de los {} números introducidos es {}".format(num_valores, suma)) else: print("El usuario no introdujo ningún valor.") 7 Las estructura iterativa Bucle for Para el caso, muy común, de los bucles controlados por contador, Python y otros lenguajes tienen el bucle for, que resulta especialmente adaptado. El bucle for nos permite iterar sobre una secuencia de elementos (listas, tuplas, diccionarios). La estructura básica es la siguiente: for elemento in secuencia: instrucción ……. El bucle for... in... utiliza en este ejemplo la secuencia range(). # Determina producto de enteros en rango inf = int(input("Diga límite inferior del rango: ")) sup = int(input("Diga límite superior del rango: ")) producto = 1 for elem in range(inf, sup+1): producto *= elem # Se podría usar: producto = producto*elem print(f'El producto de los enteros en el rango [{inf},{sup}] es {producto}') 8 Las estructura iterativa Bucle for Ahora tenemos una nueva alternativa más compacta para realizar la suma de un determinado conjunto de números reales. # Bucle que suma un determinado conjunto de reales. Versión con for. (Versión 3) num_valores = int(input("Diga cuantos números reales quiere sumar: ")) suma = 0.0 for i in range(num_valores): valor = float(input(f'Deme el valor real {i} a sumar: ')) suma += valor if num_valores > 0: print(f'La suma de los {num_valores} números introducidos es {suma}') else: print("El usuario no introdujo ningún valor.") 9

Use Quizgecko on...
Browser
Browser