You are on page 1of 14

Capitulo 1.

Estructuras de Control

t Mientras (con condicin inicial) Esta instruccin evala una condicin que ser ejecutada mientras la condicin sea cierta. Finalizar su ejecucin cuando la condicin evaluada sea falsa. La figura 4.2 ilustra este concepto:

Formato: Diagrama
Mientras ( Condicin) Sentencia 1 : Sentencia n Fin Mientras
sentencia 1 sentencia n

Cierto

cond

Falso

nnnn

Instruccin Mientras Los siguientes ejemplos describen el empleo de la instruccin mientras:


/* Ciclo controlado por contador */ /*Imprimir los 10 primeros Nmeros */ c =0 /**contador */ Mientras (c < 10) c = c+1 Imprimir ( c) Fin mientras /*ciclo utilizando un contador y un acumulador */ Calcular la suma de los 20 primeros nmeros pares c = 0 /**contador */ p= 0 tot = 0 /*acumulador */ Mientras (c < 20) p =p+2 tot= tot + p c = c +1 Fin mientras Imprimir (Suma de los 20 primeros nmeros pares: , tot)

En ambos ejemplos podemos observar, que se utiliza la variable c como contador la cual se incrementa de 1 en 1 y es la variable que controla el fin del ciclo. En el otro ejemplo se utiliza la variable tot como acumulador de la suma.

Capitulo 1. Estructuras de Control

El siguiente ejemplo describe un ciclo controlado con respuesta del usuario:


//Se desean leer diferentes nmeros y sumarlos. //Permita al la usuario la opcin de terminar cuando //lo desee. suma= o resp=s Mientras (resp == s o resp == S) Imprimir (Entre un nmero) Leer(n) suma= suma + n Imprimir (Desea continuar? s/n) Leer (resp) Fin_mientras Imprimir (La suma =, suma)

Se puede observar que se utiliza la variable resp como variable de control para ejecutar el ciclo, mientras resp sea igual a s, mayscula o minscula. A continuacin, veremos un ejemplo de ciclo Mientras controlado con valor centinela:
/*Se desean leer una serie de velocidades mientras la velocidad sea diferente a -999 e imprima su promedio. */ c=0 suma=0 Imprimir (Entre la velocidad:) Leer(v) Mientras (v <> -999) suma= suma + v c=c+1 imprimir (Entre la velocidad) Leer (v) Fin_mientras prom = suma / c imprimir (Promedio de velocidades: , prom)

En el ejemplo se puede observar que se utiliza la variable v como variable de control para ejecutar el ciclo, mientras v sea diferente -999.

Capitulo 1. Estructuras de Control

Problema Resuelto. Definicin o Dominio del Problema Supongamos que se deposit un capital de $65,000.00 en una cuenta de ahorros el primero de enero del ao 1998, y que el banco paga anualmente el 5% de inters; es decir, cada ao el capital se incrementa en un 5%. Confeccione un algoritmo que a partir de los datos dados imprima el ao y el capital de la cuenta desde 1998 hasta 2003. Utilice la estructura del mientras.

/*Algoritmo

*/

flotante cal_capital (flotante monto ) { monto = monto*.05 + monto retornar monto } INICIO. /* Declaracin de variables */ flotante capital =65000 entero anio // Imprimir Titulos Imprimir ( BANCO NOSOTROS) Imprimir(Ao Capital) // ciclo de calculo e impresin del capital anio = 1998 mientras (anio<=2003) /* Activacin de mensajes */ capital = cal_capital(capital ) Imprimir( anio, capital) Anio = anio + 1 Fin mientras FIN.

Capitulo 1. Estructuras de Control

Hasta que (con condicin final)


Es una instruccin que evala una condicin al final de la estructura, el ciclo se ejecutar hasta que la condicin sea cierta. Esta instruccin permite que se itere por lo menos una vez, dado que su condicin es evaluada al final.

Formato:
Repetir Sentencia 1 : Sentencia n Hasta que( Condicin)

Diagrama
sentencia1 sentencian

Falso

cond

Cierto

. Instruccin Hasta que

Los siguientes ejemplos describen el empleo de la instruccin Hasta que:


/* Ciclo controlado por contador Imprimir los 10 primeros nmeros */ c=0 Repetir c= c+1 Imprimir (c) Hasta que (c == 10) //Ciclo controlado por contador,utilizando un acumulador //Calcular la suma de los 20 primeros nmeros pares c=0 p= 0 tot = 0 Repetir p=p+2 tot= tot + p c=c+1 Hasta que (c == 20) Imprimir (Suma de los 20 primeros numeros pares: , tot)

En ambos ejemplos podemos observar, que se utiliza la variable c como contador, la cual se incrementa de 1 en 1 y es la variable que controla el fin del ciclo. El siguiente ejemplo describe un ciclo controlado con respuesta del usuario:

Capitulo 1. Estructuras de Control /* Se desean leer diferentes nmeros y sumarlos. Permita al usuario la opcin de terminar cuando lo desee. */ suma= o resp = n Repetir Imprimir (Entre un nmero) Leer(n) suma= suma + n Imprimir (Desea terminar s/n) Leer (resp) Hasta que (resp == s o resp == S) Imprimir (La suma =,suma)

Se puede observar que se utiliza la variable resp con valor inicial de n, como variable de control para ejecutar el ciclo, hasta que resp sea igual a s.

Capitulo 1. Estructuras de Control

A continuacin, veremos un ejemplo de ciclo Mientras controlado con valor centinela:


Se desean leer una serie de velocidades mientras la velocidad sea diferente a -999 e imprima su promedio. c=0 suma=0 Imprimir (Entre la velocidad:) Leer(v) Repetir suma= suma + v c=c+1 imprimir (Entre la velocidad) leer (v) Hasta que (v == -999) prom = suma / c imprimir (Promedio de velocidades: , prom)

Se puede observar que se utiliza la variable v como variable de control para ejecutar el ciclo, hasta que v sea igual a -999.

Para
Es una instruccin condicional que ejecuta un conjunto de acciones un nmero especfico de veces, de acuerdo con el siguiente formato:
Formato: Para Variable_ de_ control = Valor, Inicial Sentencia 1 : Sentencia n Fin Para Valor, Final Incremento o Decremento

Capitulo 1. Estructuras de Control

Diagrama

variable de control = inicializacin

Falso

cond

Cierto
sentencia1 sentencia n

varcontrol = varcontrol +/- 1

Estructura Para

La instruccin Para esta compuesta por: variable de control, valor inicial, valor final e incremento. Variable de control: es una variable que se incrementa o disminuye al final del ciclo para evaluar internamente la condicin que determina la terminacin de ste. Valor inicial: establece el valor con el cual debe iniciar la variable de control. Puede ser un valor constante, variable o expresin. Valor final: es el valor de comparacin, que se utiliza para determinar la condicin de finalizacin del ciclo. Puede ser una variable o un valor constante. Si el valor inicial de la variable de control es menor que el valor final, la condicin pregunta por menor o igual y los incrementos deben ser positivos. Si el valor inicial de la variable de control es mayor que el valor final, la condicin pregunta por mayor o igual y se dar un decremento en la variable de control. Importante recordar que el Para trabaja por condicin cierta Incremento o decremento: debe ser un valor entero y, puede ser una variable o un valor constante. Esta estructura se utiliza slo en los casos en que se conoce de antemano el valor inicial y el nmero de veces que se desea ejecutar las acciones de un ciclo.

Capitulo 1. Estructuras de Control

Los siguientes ejemplos describen el empleo de la instruccin Para:


//Ciclo controlado por contador //Imprimir los 10 primeros nmeros Para c = 1,10,1 Imprimir ( c ) Fin_para /* Ciclo controlado por contador usando acumulador Calcular la suma de los 20 primeros nmeros pares */ tot = 0 Para c = 2, 40 , 2 tot = tot + c Fin_para Imprimir (Suma de los 20 primeros numeros pares: , tot)

Otros ejemplos utilizando el Para con Incremento y Decremento


Con incremento. suma=0 Para i = 1,5,1 /* pregunta por menor o igual */ Imprimir (i) suma = suma + i Fin_para Con decremento. Para an = 2000, 1900, -10 /*pregunta por mayor o igual */ Imprimir (ao = , an) Fin_para

Los valores inicial, final y de incremento no deben alterarse durante la ejecucin del ciclo, aunque ello sea posible.

Capitulo 1. Estructuras de Control

Problema Resuelto Definicin o Dominio del Problema Supongamos que se deposit un capital de $65,000.00 en una cuenta de ahorros el primero de enero del ao 1998 y que el banco paga anualmente el 5% de inters, es decir, cada ao el capital se incrementa en un 5%. Confeccione un algoritmo que a partir de los datos dados imprima el ao y el capital de la cuenta desde 1998 hasta 2003. Utilice la estructura para. /* Algoritmo */

flotante cal_capital ( flotante monto) { monto = monto*.05 + monto retornar monto } INICIO. /* Declaracin de variables */ flotante capital =65000 entero anio // Imprimir Titulos Imprimir ( BANCO NOSOTROS) Imprimir(Ao Capital) // ciclo de calculo e impresin del capital Para anio = 1998, 2003, 1 /* Activacin de mensajes */ capital = cal_capital( capital) Imprimir( anio, capital) Fin para FIN.

Capitulo 1. Estructuras de Control

Capitulo 1. Estructuras de Control

Estructuras de repeticin anidadas


Es posible insertar un ciclo dentro de otro, si todas las instrucciones del ciclo interno estn contenidas en el ciclo externo. El siguiente diagrama ilustra este concepto:
Prueba de escritorio

ciclo externo

Para k=1,2,1

k
1 1 1 2 2 2

j
1 2 3 4 1 2 3 4

ciclo interno

Para j=1,3,1 3 2

Figura 4.5 Estructura de repeticin anidada En el esquema podemos observar que j vara ms rpido que k; es decir, que el ciclo interno vara ms rpido, que el ciclo externo. Se pueden anidar tantas estructuras como sean necesarias, pero debemos recordar que se debe incluir un ciclo dentro del otro y no solaparlos. Por ejemplo, veamos la estructura a continuacin:
ciclo externo

ciclo interno

Figura 4.6. Ciclos solapados Podemos combinar las diferentes estructuras: Para y Mientras, Mientras y Hasta que, Para y Para, etc.

Capitulo 1. Estructuras de Control

Ejemplo Ciclos anidados Imprima todas la tablas de multiplicar del 1 al 10 con 12 elementos. imprimir (Tablas de multiplicar) Para (i=1, 10, 1) imprimir (Tabla del, i) Para (j=1, 12, 1) p=i*j imprimir (i, x, j =, p) Fin_para Fin_para

Otra forma es : i=1 imprimir (Tablas de multiplicar) Mientras ( i < 10 ) imprimir (Tabla del, i) Para (j=1, 12, 1) p=i*j imprimir (i, x, j =, p) Fin_para i=i+1 Fin_mientras

Capitulo 1. Estructuras de Control

Problemas Propuestos Para cada una de las operaciones que se describe a continuacin, construya un algoritmo empleando estructuras de REPETICIN. 1. Leer cinco(5) nmeros, e imprimir la suma de ellos. 2. Genere los 5 primeros enteros, e imprima la suma. 3. Leer diez (10) nmeros. Cada nmero debe ser verificado, si es negativo, sumarlo; si es cero, contarlo y si es positivo, se suma. Imprimir la cantidad de ceros, la suma de positivos y la suma de negativos. 4. Se tiene un nmero indeterminado de valores para la ecuacin Y= ax + bx +c. Evale e imprima Y. Lea y procese hasta que el valor de x sea igual a cero(0). Imprima la sumatoria de las Y calculadas. 5. Generar la tabla de multiplicar del 5, con 10 elementos. Imprimir su ttulo y cada valor de la tabla de la forma 5 x 1=5, 5 x 2=10... . 6. Generar las 12 tablas de multiplicar con 10 elementos cada una. Imprimir el ttulo de cada tabla generada con sus elementos de la forma 1 x 1=1, 1 x 2=2.. 7. Leer un numero N, determinar si el nmero es par o impar empleando el mtodo de restas sucesivas. Ejemplo: si el numero es 6, sera 6-2=4; 4-2=2; 2-2=0, entonces el numero es par. Imprimir el nmero con su mensaje respectivo. 8. La altura del rebote de una bola, se calcula como 2/3 de la altura alcanzada en el rebote anterior. Si una bola es lanzada desde una altura de 10 pies, crear un algoritmo para determinar e imprimir la suma de la altura de los rebotes, hasta llegar al rebote numero 40. 9. Hacer un programa que imprima los 500 primeros nmeros de la siguiente progresin aritmtica: 1,5,9,13,17.... 10. En 1616, Peter compr la isla de Manhattan por el equivalente a 24 dlares en piedrecitas de fantasa. Si estos 24 dlares se hubiesen capitalizado a un inters anual del 12%, determine cunto capital se tendra en 1976. 11. Miguel pidi un prstamo de 200 dlares para comprar un perro. Un banco de la localidad se lo est facilitando a un inters del 6% anual. Haga un algoritmo que lea la letra mensual asignada por el banco e imprima el monto pagado a inters, el monto pagado a capital y saldo pendiente mensual en un perodo de 5 aos.

Capitulo 1. Estructuras de Control

12. Hacer un algoritmo que determine el valor mayor de 20 nmeros ledos. Imprima dicho nmero . 13. Un programador est preocupado acerca de su rendimiento en clases de informtica. En el primer programa comete una falta, en el segundo dos, en el tercero cuatro, y as sucesivamente. Parece que en cada programa comete el doble nmero de faltas que cometi en el programa anterior. Las clases transcurren durante trece semanas, a razn de 2 problemas de programacin por semana. Hacer un algoritmo que calcule el nmero total de errores que puede esperar el programador, segn su ritmo normal de rendimiento. 14. Escriba un algoritmo que simule el control de velocidad por radar de la polica. El problema debe leer la velocidad del automvil e imprimir el mensaje BIEN si la velocidad es menor o igual a 90KM/H o RAPIDO, si es mayor. Detenga el proceso cuando la velocidad leda exceda los 160KM/H, e imprima el nmero de velocidades menores o iguales a 90 y el nmero mayores a 90. 15. La tasa de degradacin radiactiva de un istopo es dada habitualmente en trminos de perodo de semidesintegracin (PS: lapso necesario para que el istopo se degrade hasta la mitad de su masa original). Para el istopo de estroncio 90, la razn de degradacin es aproximadamente de 0.60 PS. El perodo de semidesintegracin del estroncio 90 es de 28 aos. Calcular e imprimir, en forma tabular, el residuo despus de cada ao a partir de una cantidad inicial de gramos ledo. Para cada ao la cantidad residual de istopo puede calcularse: R= cantidad de gramos *C (ao/PS) donde C= e-0.693 e=2.71828

You might also like