ESTRUCTURAS REPETITI VAS Se les llaman estructuras repetitivas al conjunto de acciones que permiten que el cuerpo del ciclo se ejecute una o ms veces y los problemas repetitivos son a aquellos en cuya solucin es necesario utilizar un mismo conjunto de acciones que puedan ejecutarse ms de una vez. Para solucionar problemas con estructuras repetitivas recurriremos al uso de ciclos, que nos evitarn escribir muchas veces un conjunto de acciones. CONCEPTOS: Ciclo: es la ejecucin de un mismo conjunto de acciones una o ms veces. Se compone de: cuerpo del ciclo y estructura cclica. Proceso: Conjunto de acciones a las que se les asigna un nombre. Cuerpo del ciclo: Proceso que se ejecutar una o ms veces. Estructura cclica(repetitiva): Conjunto de acciones que permiten que el cuerpo del ciclo se ejecute una o ms veces. Iteracin: Es cada una de las ejecuciones del cuerpo del ciclo Forma bsica de un ciclo en algoritmo y diagrama de flujo es la siguiente: 1. C 2. IR al Paso 1
En donde C es el nombre del cuerpo del ciclo, y la estructura cclica est representada por la flecha, la cual ayuda a que el cuerpo del ciclo se ejecute varias veces. Los ciclos se clasifican en: a) Ciclos con un nmero determinado de iteraciones b) Ciclos con un nmero indeterminado de iteraciones
C LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 2 de 8 a) CICLOS CON UN NMERO DETERMINADO DE REPETICIONES Son aquellos en que el nmero de iteraciones es determinable antes de ejecutarse el ciclo. Este nmero de iteraciones se puede obtener de la definicin del problema, o bien mediante una entrada de datos cuando el problema indique que un conjunto de acciones se debe efectuar para n ocurrencias. Problema: Pedir cinco cantidades de la misma unidad. Resolucin secuencial: Algoritmo: Diagrama de Flujo: 1. PEDIR cant 2. PEDIR cant 3. PEDIR cant 4. PEDIR cant 5. PEDIR cant
Para poder pedir exactamente cinco veces la variable cant necesitaremos ir contado el nmero de veces que la vayamos pidiendo. Cuando ya la hayamos pedido cinco veces tendremos que salir del ciclo, auxilindonos con un bloque condicional que evale si ya hemos ejecutado cinco iteraciones. A la variable que nos ayuda a contar el nmero de iteraciones se le llama contador, y se recomienda utilizar las variables i, j y/o k como contadores. En este caso, tanto el contador como el bloque condicional formarn parte de la estructura cclica y la entrada de datos de la variable cant es el cuerpo del ciclo. Para pedir la variable cant cinco veces debemos hacer lo siguiente: Algoritmo 1. INICIO 2. i 1 3. SI i >5 ENTONCES IR al Paso 4 DE OTRA FORMA PEDIR cant i i + 1 IR al Paso 2 4. FIN
cant cant cant cant cant LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 3 de 8 Diagrama de Flujo
La variable i es el contador del nmero de iteraciones. La expresin: i i+1 significa que al valor de la variable i se le suma 1 y el resultado de la suma es reasignado a la variable i, por lo que esta expresin implica que el valor de la variable i es incrementado en 1. Como regla general a los ciclos con un nmero determinado de iteraciones les corresponde un algoritmo como el siguiente: 1. i 1 2. SI i > n ENTONCES IR al paso 3 DE OTRA FORMA C i i + 1 IR al paso 2 3. X En donde la variable n es el nmero de iteraciones que se van a efectuar, y la variable i, es el contador de iteraciones. C es el cuerpo del ciclo que ser ejecutado n veces, y X es el conjunto de acciones que se ejecutarn cuando se termine con el ciclo. SI NO
INICIO i 1 i >5 cant i i + 1 FIN LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 4 de 8 b) CICLOS CON UN NMERO INDETERMINADO DE REPETICIONES Son aquellos en donde el nmero de iteraciones permanece indeterminado durante la ejecucin del ciclo, y el proceso repetitivo termina hasta que el usuario lo indique. En este tipo de ciclos el usuario decide dentro del ciclo cundo terminar con el proceso repetitivo sin importar cuntas iteraciones se hayan efectuado, a diferencia de los ciclos anteriores, en donde el nmero de iteraciones est determinado desde el principio. El algoritmo que le corresponde a este tipo de ciclos es el siguiente. 1. C 2. PEDIR mas$ 3. SI mas$ = NO ENTONCES IR al Paso 4 DE OTRA FORMA IR al paso 1 4. X En donde C es el cuerpo del ciclo que ser ejecutado un nmero indeterminado de veces, X es el conjunto de acciones que suceden al ciclo, y a la variable mas$ el usuario le dar un valor de SI o de NO dependiendo de si se desea realizar otra iteracin o terminar con la ejecucin del ciclo. Diagrama de Flujo:
En donde se podr observar que el flujo del diagrama sale del ciclo hasta el momento en que la variable mas$ tome un valor de NO y debido a que no se sabe cundo ocurrir esto, se le llama ciclo con un nmero indeterminado de iteraciones.
si
no
C mas$ mas$ = NO X LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 5 de 8 TIPOS DE PROBLEMAS REPETITIVOS Los ciclos se emplean en los problemas repetitivos y, dependiendo de cmo sea necesario usar los ciclos, se clasifican en : 1. Problemas Repetitivos Simples: aquellos en los que se usa un solo ciclo ya sea con un nmero determinado de iteraciones o indeterminado de iteraciones. 2. Problemas Repetitivos Compuestos: aquellos en los que se emplean varios ciclos. Frecuentemente encontraremos problemas en dond el el cuerpo de un ciclo es otro ciclo. En este caso estaremos hablando de un ciclo interno que est anidado dentro de un ciclo externo. PROBLEMA DE EJEMPLO (problemas repetitivos simples con un nmero determinado de iteraci ones) : Calcular el promedio de calificaciones parciales de cada alumno de un grupo de cinco, sabiendo que existen tres periodos parciales. Paso 1.- Definicin del problema Igual a la redaccin del problema Paso 2.-Planeacin de la Solucin Dado que para cada alumno se efectuarn las mismas acciones, se pueden determinar que es necesario utilizar un ciclo. El nmero de iteraciones es cinco que es el total de alumnos por lo tato es determinado Utilizaremos el ciclo determinado en donde la variable n es 5 y en lugar de C sustituiremos por el proceso ALUMNO 1. i 1 2. SI i >5 ENTONCES IR al Paso 3 DE OTRA FORMA ALUMNO i i + 1 IR al Paso 2 3. X El proceso ALUMNO, estar compuesto de las siguientes acciones: Pedir valores de las 3 calificaciones parciales Aplicar la frmula: Promedio = (calificacion1 + calificacion2 + calificacion3)/3 Mostrar resultado obtenido El proceso X corresponder a la accin de terminar, ya que no hay acciones posteriores al ciclo. ENTRADAS:calificacin1, calificacion2 y calificacion3 de cada alumno SALIDAS: promedio de cada alumno LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 6 de 8 DATOS ADICIONALES: ninguno SOLUCIN: ver algoritmo VARIABLES: i contador del nmero de ciclos c1 calificacin parcial 1 c2 calificacin parcial 2 c3 calificacin parcial3 p promedio Paso 3.- Algoritmo 1. i 1 2. SI >5 ENTONCES IR al paso 3 DE OTRA FORMA ALUMNO i i + 1 IR al paso 2 3. FIN El proceso ALUMNO constar de las siguientes acciones: 1. PEDIR c1, c2, c3 2. p (c1 + c2 +c3)/3 3. MOSTRAR p 4. FINP
LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 7 de 8 Paso 4.- Diagrama de Flujo
ALUMNO C1, c2, c3 p (c1 + c2 + c3)/3 p FINP INICIO i 1 i >5 Alumno i i + 1 FIN si no
LX Lenguajes Operativos Mtro. Juan Miguel Camargo Pulido Pgina 8 de 8 Aplicando los primeros cuatro pasos de la Metodologa para la solucin de problemas por computadora, resuelva los problemas propuestos siguientes: PROBLEMAS REPETITIVOS SIMPLES CON UN NMERO DETERMINADO DE ITERACIONES 1. La presin, volumen y temperatura de una masa de aire se relacionan por la frmula.
Calcular el promedio de masas de aire de los neumticos de n vehculos que estn en compostura en un servicio de alineacin y balanceo. Los vehculos pueden ser motocicletas o automviles. 2. Al cerrar un expendio de naranjas, 15 clientes que an no han pagado recibirn un 15% de descuento si compran ms de 10 kilos. Determinar cunto pagar cada cliente y cunto percibir la tienda por esas compras. 3. Determinar la cantidad semanal de dinero que recibir cada uno de los n obreros de una empresa. Se sabe que cuando las horas que trabaj un obrero exceden de 40, el resto se convierte en horas extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras exceden de 8 se pagan las primeras 8 horas al doble de lo que se paga por una hora normal y el resto al triple. 4. Modificar el problema propuesto 3 para que se determine el total de dinero que la empresa tendr que pagar por concepto de pago de salarios a los n empleados que laboran en ella. 5. En una granja se requiere saber alguna informacin para determinar el precio de venta por cada kilo de huevo. Es importante determinar el promedio de calidad de las n gallinas que hay en la granja. La calidad de cada gallina se obtiene segn la frmula:
Finalmente para fijar el precio del kilo de huevo, se toma como base el siguiente cuadro: Promedio total de calidad Precio del kilo de huevo
mayor o igual que 15 1.2 * promedio de calidad mayor que 8 y menor que 15 1.00 * promedio de calidad menor o igual que 8 0.8 * promedio de calidad