Professional Documents
Culture Documents
Estructuras Repetitivas
Las computadoras estn diseadas para aquellas aplicaciones en las cuales una operacin o conjunto de ellas deben repetirse muchas veces. Un tipo muy importante de estructura es el algoritmo necesario para repetir una o varias acciones por un nmero determinado de veces, a est estructura se la llama Estructura Repetitiva. Las estructuras repetitivas se utilizan cuando se desea que una instruccin o bloque de instrucciones se repita un nmero determinado de veces o hasta que una condicin de terminacin se cumpla. Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces se denominan bucles, y se llama iteracin al hecho de repetir la ejecucin de una secuencia de acciones. Iterar es repetir una vez el bucle. e debe tener en cuenta lo siguiente para la construccin de una estructura repetitiva! El cuerpo del bucle! "s el grupo de instrucciones que se van a repetir. #entro del cuerpo del bucle debe e$istir una instruccin que modi%ique la condicin lgica de terminacin. Las sentencias de inicializacin. on instrucciones que inicializan contadores y acumuladores. Las condiciones para la terminacin del bucle! "$presiones lgicas que controlan la terminacin del bucle.
& continuacin se detallan tres estructuras repetitivas bsicas! '. /. 5. "structura (epetitiva #esde ) *ara. +,-(. "structura (epetitiva 0acer 1 2ientras. +#- 304L". "structura (epetitiva 2ientras. +304L".
*ara poder entender cmo %unciona un proceso repetitivo, se necesita conocer el concepto de dos e$presiones! 67u8 es un contador9 y 67u8 es un acumulador9 C !"A# $ "n un proceso repetitivo cuya %uncin es contar los sucesos o acciones internas del bucle, como pueden ser el nmero de iteraciones del bucle, la cantidad de elementos que tiene un archivo, un vector, una matriz, etc. Una %orma de controlar un bucle es mediante un contador. Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad constante o %ija en cada iteracin. La %orma de representar un contador es! contador : contador '
La e$presin anterior se debe interpretar como asignar a la variable contador el valor que tenia anteriormente ms uno o menos uno, dependiendo del caso si se quiere incrementar o decrementar.
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
!ota: "n todo contador es necesario que e$ista una instruccin que inicializa la variable que va a tener la %uncin de contador y esta variable puede ser cualquier identi%icador. "jemplo '! ;ontador que incrementa de uno en uno. La variable contador va a tener la %uncin de ser el contador. contador : contador : ' contador < ' ' "jemplo /! ;ontador que decrementa de uno en uno La variable cont va a tener la %uncin de ser el contador. cont cont : : '= cont > ' '= !ota: Un contador puede ser positivo +incrementos, uno a uno. o negativo +decrementos, uno a uno.. Un contador tambi8n puede incrementar o decrementar de dos en dos, tres en tres, cuatro en cuatro y as@ sucesivamente, dependiendo de la tarea que est8 realizando el bucle. "jemplo 5! ;ontador que incrementa de dos en dos c c : : = c < = "jemplo A! ;ontador que decrementa de cinco en cinco contador : contador : BC contador > B BC )) la variable contador es igual a BC )) el contador decrementa a B/ / )) 4nicializacin de la variable c con el valor = )) la variable c incrementa a / por la suma )) 4nicializacin de la variable cont con el valor '= )) la variable cont decrementa a ? por la resta )) 4nicializacin de la variable contador con el valor ' )) la variable contador incrementa a / por la suma
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
ACU%U&A# $ Un acumulador es una variable cuya misin es almacenar cantidades variables. (ealiza la misma %uncin que un contador pero con la di%erencia de que el incremento o decremento es variable y no constante como en el contador. La %orma de representar un acumulador es! : < valorDariable
!ota: "n todo acumulador es necesario que e$ista una instruccin que inicializa la variable que va a tener la %uncin de acumulador y esta variable puede ser cualquier identi%icador. "jemplo B! ;alcular el promedio de notas de '= alumnos, primero debemos utilizar una variable acumulador para ir sumando las '= notas +cantidades variables. y luego dividir este valor entre diez. La variable S va a tener la %uncin de ser el acumulador. olucin del ejemplo B. := leer+nota. : <nota *rom: )'= La e$plicacin del algoritmo es el siguiente! : = )) 4nicializacin de la variable E F acumulador con el valor = )) el bucleG tiene dos instrucciones. leer +nota. : < nota )) '. e lee la 'era nota )) e suma la 'era nota < el valor de que es cero E=F )) 4maginemos que la 'era nota : '5, ahora vale '5 )) terminado regresa el bucle a su primera instruccin )) )) /. Leer la /da nota en la misma variable EnotaF )) imaginamos ahora nota:=H, ahora vale '5<H:/' )) )) 5. Leer nota por tercera vez )) imaginamos ahora nota:'C, ahora vale /'<'C:5H )) A. Leer nota por cuarta vez )) nota:'', ahora vale 5H<'':A? )) y asi sucesivamente hasta leer las '= notas, )) terminado en la varible acumuladora esta el total de )) la suma de las '= notas. )) B. 0allar el promedio : ) '=
*rom : )'=
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
"n su %orma ms t@pica y bsica, esta estructura requiere una variable entera que cumple la %uncin de un contador de vueltas. "n la seccin indicada como EinicializacinF, se suele colocar el nombre de la variable que har de contador, asignndole a dicha variable un valor inicial. "n la seccin de EcondicinF se coloca la condicin que deber ser verdadera para que el ciclo contine +en caso de %also el ciclo se detendr.. I %inalmente, en la seccin Emodi%icacinF se coloca una instruccin que permite modi%icar el valor de la variable que hace de contador +para permitir que alguna vez sea %alsa.. "jemplo! 7ueremos que se repita B= veces el bloque de instrucciones. #escribiremos el siguiente ejemplo por etapas! Jota! "l s@mbolo de la %lecha apuntando a la izquierda + . signi%ica ' +igual. (era Eta)a *c'(+: ;uando el ciclo comienza antes de dar la primera vuelta, la variable de inicializacin toma el valor indicado en la seccin de inicializacin. (era Eta)a
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
,da- Eta)a *c.'/0+: 4nmediatamente se veri%ica en %orma automtica, si la condicin es verdadera. "n caso de serlo se ejecuta el bloque de instrucciones del ciclo, es decir, si el bloque tuviera B instrucciones esas se realizan una por una. ,da Eta)a
1era- Eta)a *c'c2(+: &l %inalizar de ejecutarse el bloque de instruccines del bucle, la ejecucin de la estructura repetitiva se regresa a la seccin de modi%icacin. e incrementa en una unidad en contador. 1era Eta)a
3ta Eta)a *c.'/0+: eguidamente, se vuelve a comprobar la condicin si es verdadera, y si lo es, vuelve a realizar las instrucciones del ciclo, as@ prosigue ejecutndose todo el bucle hasta que la condicin es %alsa y sale del bucle.
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
3ta Eta)a
&nalicemos el ejemplo! La variable c toma inicialmente el valor '. e controla automticamente el valor de la condicin! como c vale ' y esto es menor que B=, la condicin da verdadero. ;omo la condicin %ue verdadera, se ejecutan la+s. instruccion+es.. &l %inalizar de ejecutar todas las instrucciones, se retorna a la instruccin c : c < ', por lo que la variable c se incrementa en uno. e vuelve a controlar automticamente si c es menor o igual a B=. ;omo ahora su valor es / y sigue siendo menor que B=, se ejecuta nuevamente el bloque de instrucciones e incrementa nuevamente la variable del contador c. "l proceso se repetir hasta que la variable c sea incrementada al valor B'. "n ese momento la condicin ser %alsa, el ciclo se detendr y saldr del bucle repetitivo. La variable c puede ser inicializada y %inalizar en cualquier valor. &dems, no es obligatorio que la instruccin de modi%icacin sea un incremento de tipo contador c : c < '. *uede ser tambi8n c : c < /, en lugar de c : c < ', el valor de c ser incrementado de a / en cada vuelta, y no de a uno. "n este caso, esto signi%icar que el ciclo no e%ectuar las B= vueltas sino solo /B 6*or qu89 La instruccin de modi%icacin no solamente puede ser un incrementador, tambi8n puede ser un decrementador, es decir, la variable de inicializacin decrementar a lo que se desea, esto Ese puede hacer siempre y cuando la variable de inicializacin comienza en un valor mayor que el de la condicinF, por ejemplo!
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
&nalicemos el ejemplo! La variable c toma inicialmente el valor '==. "l valor de la condicin es c K: '. La variable c decrementa de dos en dos. "sto quiere decir que el bucle se repite B= veces, que comienza en un valor de contador : '==, decrementa de dos en dos, hasta que la condicin es %alsa. La representacin gr%ica de la estructura repetitiva desde/para en el diagrama estructurado y pseudocdigo son los siguientes!
condicin iniciali5acin
modificacin
desde c : vi hasta vf incLdec valor hacer instruccin ' instruccin / . . instruccin n fin4desde
Figura 39. Pseudocdigo de la estructura repetitiva Desde/Para
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
"jemplo '! (ealizar un algoritmo que permita hallar la suma de los '= primeros nmeros enteros positivos, y su promedio.
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
algoritmo "jemplo' var entero! c , suma real! prom inicio suma : = desde c : ' hasta '= inc ' hacer suma : suma < c fin4desde prom : suma)'= escribir+MLa suma es ! N,suma. escribir+M"l promedio es ! N,prom. fin
Figura 42. Pseudocdigo del ejemplo 1
!ota: "n *seudocdigo si la instruccin de incremento es en uno, se puede obviar la instruccin inc 1, y solamente se puede colocar! desde c : ' hasta '= hacer . *orque en algoritmo se sobrentiende que aumenta en '. "jemplo /! (ealizar un algoritmo que permita hallar la suma y promedio de /= nmeros enteros ingresados por teclado.
Universidad los ngeles de Chimbote Facultad de Ingeniera Escuela Profesional de Ingeniera de Sistemas
algoritmo "jemplo/ var entero! n, c, suma real! prom inicio suma : = desde c : ' hasta /= inc ' leer+n. suma : suma < n fin4desde prom : suma)/= escribir+MLa suma es ! N,suma. escribir+M"l promedio es ! N,prom. fin
Figura 45. Pseudocdigo del ejemplo 2
"jemplos de autoaprendizaje! (esuelva en diagrama de %lujo, estructurado y pseudocdigo. "jemplo 5! (ealizar un algoritmo que me permita leer '= nmeros positivos y negativos, e imprima solamente los nmeros positivos. "jemplo A! (ealizar un algoritmo que me permita leer /= nmeros e imprimir cuntos son positivos, negativos y neutros. #ato! Jeutro se le conoce al cero E=F
10