Lógica de programación 1 Universidad Nacional Autónoma de Nicaragua - León Facultad de Ciencias y Tecnología Departamento de Computación Lógica de programación Elaborado por: Lic. Luis Ernesto Díaz Beteta La característica fundamental de la programación estructurada consiste en que todas las instrucciones tienen un único punto de entrada y un único punto de salida. Esto permite descomponer fácilmente un problema en subproblemas, reduciendo la complejidad y facilitando la programación Sentencias Repetitivas PARA Bibliografía Metodología de la programación. Dr. Osvaldo Cairó Battistutti Editorial Alfa Omega
Lógica de programación 2 Introducción Hasta el momento hemos realizado algoritmos en el que las sentencias se ejecutan de forma secuencial, pero en ciertas ocasiones nos vamos a encontrar con algoritmos cuyas operaciones se deban ejecutar un número repetido de veces. A este conjunto de instrucciones que se ejecuta repetidamente se les conoce como ciclo o bucle. A cada repetición del grupo de sentencias pertenecientes a un ciclo se le conoce como iteración. Todo ciclo debe terminar de ejecutarse luego de un número finito de veces, es necesario en cada iteración, evaluar las condiciones necesarias para decidir si se debe seguir ejecutando o no el ciclo. Un ciclo, siempre debe tener una condición de parada o fin de ciclo. En algunos algoritmos podemos establecer a priori el número de veces a iterar. Por otra parte, en algunos algoritmos no podemos establecer a priori el número de veces que ha de ejecutar el ciclo, sino que este número dependerá de las proposiciones dentro del mismo. La condición de parada de un ciclo se puede indicar al inicio o al final del bucle, de acuerdo a esta premisa podemos clasificar a las sentencias repetitivas en dos grupos: Con la condición de parada al inicio Con la condición de parada al final Dentro del grupo de sentencias repetitivas con la condición de parada al inicio tenemos a la sentencia MIENTRAS y a la sentencia PARA. Y dentro del grupo de sentencias con la condición al final tenemos a la sentencia REPETIR. En esta etapa hablaremos solamente del funcionamiento de la sentencia PARA, más adelante hablaremos de otras formas de construcción de ciclos. Estructura repetitiva PARA La estructura repetitiva PARA conocida comúnmente como FOR, es la estructura algorítmica repetitiva a utilizar cuando conocemos de ante mano el número de veces que debe iterar el ciclo. Este tipo de estructura está presente en todos los lenguajes de programación, ya sean estructurados u orientados a objetos. Por ejemplo, cuando necesitamos solicitarle al usuario un grupo de valores Sintaxis o forma de uso Para variable_numérica<-valor_inicial Hasta valor_final Con Paso paso Hacer secuencia_de_acciones FinPara
Lógica de programación 3 Donde: variable_numérica: Corresponde al identificador de la variable que se utilizara para iterar en el ciclo. valor_inicial: Este es el valor que tomara la variable_numérica, desde el cual se iniciar el bucle. valor_final: Es el valor final de la variable_numérica, cuando se alcance este valor el bucle se detendrá. paso: Este el valor de incremento o decremento que tomara la variable_numérica en cada iteración. Representación gráfica PseInt utiliza la siguiente manera de representar el ciclo PARA Ejemplo Deseamos crear un algoritmo que presente en pantalla los primeros 10 números naturales, para este caso particular nuestra variable_numérica deberá tomar el valor inicial 1 y tendrá como valor final 10 con un incremento o paso de 1. Tal como se muestra a continuación: 1. Proceso CuentaNumerosPara 2. Definir contador Como Entero; 3. Para contador<-1 Hasta 10 Con Paso 1 Hacer 4. Escribir "El valor de contador es: ", contador; 5. FinPara 6. FinProceso En este ejemplo la variable contador (definida en la linea 2, como entero) tomara el valor inicial 1 e incrementara su valor en la unidad hasta alcanzar el valor final (10, en el ejemplo). La estructura algorítmica PARA se utiliza normalmente en casos donde el número de iteraciones es fijo y se conoce de ante mano. Esta estructura repetitiva ejecuta las acciones que se encuentran dentro del bucle un número especificado de veces y controla de modo automático (implícito) el número de iteraciones o pasos a través del cuerpo del bucle.
Lógica de programación 4 Diagrama de flujo: Resultado: Ejemplos estructura repetitiva PARA Ejemplo1 La empresa llamada bttapps desea saber cuanto es el total de su nomina, la cual cuenta con un total de diez empleados. Realice un algoritmo que solicite al usuario el sueldo de cada trabajador y presente en pantalla el total correspondiente a la nomina. Datos de entrada Sueldo de cada uno de los empleados. Datos de salida Valor total de la nomina. Variables a utilizar sueldo: variable de tipo real que se utilizara para capturar el sueldo de cada uno de los empleados. nomina: variable de tipo real almacenara el total correspondiente a la nomina contador: de tipo entero, lleva el control de las iteraciones del bucle. Procedimiento Definir las variables a utilizar Asignar el valor 0 a la variable nomina, para evitar valores basura Crear un ciclo en el cual se soliciten los sueldos a cada uno de los 10 empleados Sumar el sueldo leído para un empleado particular con el valor actual de la variable nomina. Presentar el valor de nomina al culminar el bucle. Solución 1. Proceso NominaPara 2. Definir nomina, sueldo Como Real; 3. Definir contador Como Entero; 4. 5. nomina<-0; //toma el valor inicial 0, para evitar basura
Lógica de programación 5 6. Para contador<-1 Hasta 10 Con Paso 1 Hacer 7. Escribir "Ingrese el sueldo de la persona ", contador; 8. Leer sueldo; 9. nomina <- nomina + sueldo; 10. FinPara 11. 12. Escribir "La nomina total es: ", nomina; 13. FinProceso Diagrama de flujo Resultado
Lógica de programación 6 Ejemplo2 El siguiente algoritmo presenta los primeros 20 números naturales en orden descendente. Datos de entrada No se recibirán valores de por parte del usuario Datos de salida Presentar en pantalla cada una de los números naturales, iniciando del 20 hasta llegar a 0 Variables a utilizar contador: de tipo entero, lleva el control de las iteraciones del bucle. Procedimiento Definir la variable contador Crear un ciclo en el cual se presentara en pantalla el valor de la variable contador La variable contador toma como valor inicial 20 y decrece en la unidad hasta llegar a 1 Solución 1. Proceso CuentaAtras 2. Definir contador Como Entero; 3. 4. Para contador<-20 Hasta 1 Con Paso -1 Hacer 5. Escribir "Numero ", contador; 6. FinPara 7. FinProceso Diagrama de flujo Resultado
Lógica de programación 7 Ejemplo3 El siguiente ejemplo muestra un algoritmo en el cual se solicitan 10 números enteros y presenta en pantalla el promedio de los números ingresados. Datos de entrada: Serie de números ingresados por el usuario. Datos de salida: Promedio de los números ingresados por el usuario. Variables a utilizar contador: Esta variable llevara el control de las iteraciones del ciclo. numero: Almacena el numero ingresado por parte del usuario en cada iteración. suma: Sera la variable que almacena la suma de todos los números ingresados. promedio: Almacena el promedio de todos los números ingresados. Procedimiento: Definir las variables a utilizar. Asignar el valor 0 a la variable suma Solicitar al usuario ingrese una serie de 10 valores, esto se realizara utilizando el ciclo PARA. Dentro del ciclo PARA se irán sumando los valores ingresados. Almacenando el resultado en la variable suma. Al terminar el ciclo se calculara el promedio. Presentar en pantalla el promedio obtenido. Solución 1. Proceso CalcularPromedio 2. Definir contador, numero, suma Como Entero; 3. Definir promedio como real; 4. 5. suma<-0; 6. 7. Para contador<-1 Hasta 10 Con Paso 1 Hacer 8. Escribir Sin Saltar "Ingrese el elemento ", contador; 9. Leer numero; 10. 11. suma<-suma + numero; 12. FinPara 13. 14. promedio<-suma/10; 15. 16. Escribir "El promedio es: ", promedio; 17. 18.FinProceso
Lógica de programación 8 Diagrama de flujo Resultado Ejemplo4 Realice un algoritmo que solicite las calificaciones de 15 estudiantes correspondientes al curso Lógica de programación, Presente en pantalla la cantidad de estudiantes aprobados y reprobados del curso. Datos de entrada: Las calificaciones de cada uno de los estudiantes del curso. Datos de salida: Cantidad de alumnos aprobados y reprobados. Variables a utilizar contador: Esta variable llevara el control de las iteraciones del ciclo. calificacion: Almacena la calificación ingresada para un alumno por parte del usuario en cada iteración. aprobados: Lleva la cuenta de alumnos aprobados reprobados: Lleva la cuenta de alumnos reprobados Procedimiento: Definir las variables a utilizar. Asignar el valor 0 a las variables aprobados y reprobados. Solicitar al usuario ingrese las calificaciones, esto se realizara utilizando el ciclo PARA. Si la calificación ingresada es menor a 60, incrementar el valor de aprobados en uno. Pero si la calificación es mayor o igual a 60 incrementar el valor de reprobados en uno.
Lógica de programación 9 Presentar en pantalla la cantidad de estudiantes aprobados y reprobados del curso Solución 1. Proceso AprobadosReprobados 2. Definir contador, calificacion Como Entero; 3. Definir aprobados, reprobados como entero; 4. 5. aprobados<-0; 6. reprobados<-0; 7. 8. Para contador<-1 Hasta 15 Con Paso 1 Hacer 9. Escribir Sin Saltar "Ingrese la calificacion del alumno ", contador; 10. Leer calificacion; 11. 12. Si calificacion < 60 Entonces 13. reprobados<-reprobados+1; 14. Sino 15. aprobados<-aprobados+1; 16. FinSi 17. FinPara 18. 19. Escribir "La cantidad de aprobados es: ", aprobados; 20. Escribir "La cantidad de reprobados es: ", reprobados; 21. 22. FinProceso Diagrama de flujo
Lógica de programación 10 Resultado Ejemplo5 El siguiente algoritmo muestra los números pares que se encuentran en el rango de 1 a 2*N. Datos de entrada: El valor de N Datos de salida: Números para que estén dentro del rango. Variables a utilizar n: variable de tipo entero, cuyo valor ingresara el usuario i: variable entera, controla las iteraciones del ciclo Procedimiento: Definir las variables a utilizar. Solicitar al usuario el valor de la variable n Crear el ciclo desde 1 hasta 2*n Si el numero es par, escribir en pantalla el valor de dicho numero. Solución 1. Proceso ParesPara 2. Definir n, i Como Entero; 3. 4. Escribir "Ingrese el valor de N: "; 5. Leer n; 6. 7. Para i<-1 Hasta 2*n Con Paso 1 Hacer 8. Si i MOD 2 = 0 Entonces 9. Escribir sin saltar i, " ";
Lógica de programación 11 10. FinSi 11. FinPara 12. FinProceso Diagrama de flujo Resultado Ejercicios propuestos Ejercicio1 Desarrollar un algoritmo que por medio de la sentencia repetitiva Para muestre la tabla de multiplicar de un número dado por el usuario. Ejercicio2 Realice un algoritmo que calcule la potencia de un número, el usuario ingresara el numero correspondiente a la base y el numero correspondiente al exponente. Utilice un ciclo que permita realizar el cálculo en cuestión. Ejemplo: 2 4 = 16, esto es 2*2*2*2 Ejercicio3 Utilizando el ciclo Para, realice un algoritmo que presente el resultado para la siguiente serie: 1 1 + 2 2 + 3 3 + + N N El valor de N sera ingresado por el usuario. Ejercicio4 Realice un algoritmo que sume los números enteros positivos múltiplos de 5 que se encuentre en el rango de 1 a 100. Ejercicio5 Elaborar un algoritmo que solicite la edad de 20 personas y que muestre cuántos de ellos son mayores de edad y cuántos son menores de edad.