Você está na página 1de 28

FUNDAMENTOS DE COMPUTACION Y SISTEMAS ALGORITMOS

VIII Unidad Didctica


TEMA: Estructuras Repetitivas

Estructuras Repetitivas
Las Estructuras Repetitivas o tambin llamadas estructuras cclicas, de lazos, de bucles o loops, se utilizan para procesar un grupo de instrucciones y/o sentencias un nmero determinado de veces, establecido por la condicin o condiciones que se evala en cada una de ellas. Estas estructuras se clasifican en :
PARA / FIN-PARA (FOR) MIENTRAS / FIN-MIENTRAS (WHILE) REPETIR / HASTA_QUE (DO WHILE)

Contadores y Acumuladores
Contador:
es una variable que acumula las veces que se pasa por ella. Se suele denominar contador cuando el incremento de la variable es de 1 en 1, pero no tiene por qu ser as obligatoriamente. La sintaxis genrica sera: variable = variable + 1.

Acumulador:
es una variable cuyo valor se incrementa o decrementa en un valor que no tiene por qu ser fijo (en cada iteracin de un bucle). Un acumulador suele utilizarse para acumular resultados producidos en las iteraciones de un bucle.

Estructura PARA/FIN-PARA
Esta estructura permite procesar un grupo de instrucciones y/o sentencias, un nmero determinado de veces, establecido por los valores inicial y final de esta estructura. Sintaxis: PARA VariableV.Inicial HASTA V.Final DE Inc : Instrucciones y/o : Sentencias FIN-PARA Donde :
V.Inicial = Valor Inicial V.Final = Valor Final Inc = Valor de Incremento (Opcional)

Estructura Repetitiva FOR


La instruccin for es una variante de while que permite reducir el cdigo necesario para escribir los tipos de bucles ms comnmente usados en programacin. Su sintaxis es: for (<inicializacin>; <condicin>; <modificacin>) { <instrucciones> }

Ejemplo 1 : Imprimir los 10 primeros nmeros naturales.


ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO PARA N1 HASTA 10 ESCRIBIR( N ) FIN-PARA FIN

Ejemplo 2 : Visualizar todos los nmeros enteros de 2 cifras. ALGORITMO Ejemplo2 VARIABLES ENTERO N INICIO PARA N 10 HASTA 99 ESCRIBIR( N ) FIN-PARA FIN

Ejemplo 3 : Imprimir los 10 primeros nmeros naturales pero en forma descendente. ALGORITMO Ejemplo3 VARIABLES ENTERO N INICIO PARA N 10 HASTA 1 DE -1 ESCRIBIR( N ) FIN-PARA FIN

Ejemplo 4 : Visualizar los nmeros de 2 cifras pares.


ALGORITMO Ejemplo4 VARIABLES ENTERO N INICIO PARA N 10 HASTA 98 DE 2 ESCRIBIR( N ) FIN-PARA FIN

Ejemplo 5 : Visualizar todos los nmeros de 2 cifras compuestos por cifras diferentes.
ALGORITMO Ejemplo5 VARIABLES ENTERO N, A , B INICIO PARA N 10 HASTA 99 A N DIV 10 B N MOD 10 SI ( A <> B ) ENTONCES ESCRIBIR( N )

FIN-SI FIN-PARA
FIN

Estructura MIENTRAS/FIN-MIENTRAS
Esta estructura permite procesar un grupo de instrucciones y/o sentencias, siempre y cuando la expresin o expresiones evaluadas en esta estructura den como resultado un valor lgico verdadero (VERDAD). Sintaxis: MIENTRAS(Expresion<es>)HACER VERDAD : : FIN-MIENTRAS
Instrucciones y/o Sentencias

Estructura MIENTRAS/FIN-MIENTRAS
La instruccin while permite ejecutar un bloque de instrucciones mientras se de una cierta instruccin. Su sintaxis de uso es:
while (<condicin>) { <instrucciones> }

Variables Centinelas
Un centinela es el que me permite terminar una entrada de datos. La entrada de datos con centinela consiste en utilizar un valor especial de datos que indica que ya no se deben introducir ms datos. A ese valor se le denomina centinela. Programando nos encontramos este caso en multitud de ocasiones. Por ejemplo, cuando se nos pide que obtengamos una serie de cadenas hasta que se introduce la palabra "fin" o algo similar.... o que obtengamos enteros hasta que se introduzca uno negativo....

Esta estructura de obtener datos de un canal de entrada hasta que un dato cumpla una determinada condicin es la entrada con centinela. En general, ser necesario utilizar un bucle. Que por lo general son: El bucle for se repite un nmero determinado de veces. Si tengo que leer datos hasta que aparezca el centinela, no s a priori cundo va a aparecer, con lo que ste bucle no es til aqu. El bucle while se repite un nmero indeterminado de veces. En la entrada de datos con centinela siempre es necesario obtener al menos un valor, para poder determinar si es o no el centinela. El bucle while sirve para iteraciones que se repiten 0 o ms veces.... y necesitamos al menos una.

Ejemplo 1 : Visualizar los 3 primeros nmeros naturales.


ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N1 MIENTRAS( N <= 3 ) HACER ESCRIBIR( N ) NN+1 FIN-MIENTRAS FIN

Ejemplo 2 : Calcular y visualizar la suma de los 3 primeros nmeros naturales.


ALGORITMO Ejemplo2 VARIABLES ENTERO N, SUMA INICIO N 1 : SUMA 0 MIENTRAS ( N <= 3 ) HACER SUMA SUMA + N Acumulador NN+1 Contador FIN-MIENTRAS ESCRIBIR(LA SUMA ES:, SUMA) FIN

Ejemplo 3 : Calcular y visualizar la suma de todos los nmeros de 2 cifras positivos.


ALGORITMO Ejemplo3 VARIABLES ENTERO N, SUMA INICIO N 10 : SUMA 0 MIENTRAS ( N <= 99 ) HACER SUMA SUMA + N NN+1 FIN-MIENTRAS ESCRIBIR(LA SUMA ES:, SUMA) FIN

PROBLEMAS DE DESCOMPOSICION NUMERICA

Problema 1 : Ingrese un nmero entero y luego visualice el nmero de cifras que lo componen. ALGORITMO Problema1 VARIABLES ENTERO N, Cifras INICIO LEER( N ) Cifras 0 MIENTRAS ( N <> 0 ) HACER Cifras Cifras + 1 N N DIV 10 FIN-MIENTRAS ESCRIBIR(Numero Cifras:, Cifras ) FIN

Problema 2 : Ingrese un nmero entero y calcule la suma de las cifras del nmero.
ALGORITMO Problema2 VARIABLES ENTERO N, Cifra, Suma INICIO LEER( N ) SUMA 0 MIENTRAS( N <> 0 )HACER Cifra N MOD 10 SUMA SUMA + Cifra N N DIV 10 FIN-MIENTRAS ESCRIBIR(LA SUMA ES:, SUMA) FIN

Problema 3 : Ingrese un nmero entero y luego calcule cuantas cifras pares e impares estn contenidas en el nmero ingresado.
ALGORITMO Problema3 VARIABLES ENTERO N, Cpares, Cimpares, Cifra INICIO LEER( N ) Cpares 0 : Cimpares 0 MIENTRAS( N <> 0 )HACER Cifra N MOD 10 SI( Cifra MOD 2 = 0 )ENTONCES Cpares Cpares + 1 SINO Cimpares Cimpares + 1 FIN-SI N N DIV 10 FIN-MIENTRAS ESCRIBIR(Numero de Cifras Pares:, Cpares) ESCRIBIR(Numero de Cifras Impares:, Cimpares) FIN

Problema 4 : Ingrese un nmero entero y luego calcule la suma de cifras pares e impares que estn contenidas en el nmero ingresado.
ALGORITMO Problema4 VARIABLES ENTERO N, Spares, Simpares, Cifra INICIO LEER( N ) Spares 0 : Simpares 0 MIENTRAS( N <> 0 )HACER Cifra N MOD 10 SI( Cifra MOD 2 = 0 )ENTONCES Spares Spares + Cifra SINO Simpares Simpares + Cifra FIN-SI N N DIV 10 FIN-MIENTRAS ESCRIBIR(Suma de Cifras Pares:, Spares) ESCRIBIR(Suma de Cifras Impares:, Simpares) FIN

Problema 5 : Ingrese un nmero entero y calcule la mayor y menor cifra contenidas en el nmero ingresado.
ALGORITMO Problema5 VARIABLES ENTERO N, MAX, MIN, Cifra INICIO LEER( N ) MAX 0 : MIN 9 MIENTRAS( N <> 0)HACER Cifra N MOD 10 SI( Cifra > MAX )ENTONCES MAX Cifra FIN-SI SI( Cifra < MIN )ENTONCES MIN Cifra FIN-SI N N DIV 10 FIN-MIENTRAS ESCRIBIR(MAYOR CIFRA=, MAX) ESCRIBIR(MENOR CIFRA=, MIN) FIN

ALGORITMO Problema6 VARIABLES ENTERO N, Cifra, M INICIO LEER( N ) M0 MIENTRAS( N <> 0 )HACER Cifra N MOD 10 M (M * 10) + Cifra N N DIV 10 FIN-MIENTRAS ESCRIBIR(Nuevo Nmero:, M) FIN

Problema 6 : Ingrese un nmero entero y luego forme un 2do nmero con las cifras del nmero ingresado en forma inversa.

Estructura REPETIR/HASTA_QUE
Esta estructura permite procesar un grupo de instrucciones y/o sentencias, siempre y cuando la expresin o expresiones evaluadas en esta estructura den como resultado un valor lgico falso (FALSO). Sintaxis: REPETIR Instrucciones y/o FALSO : Sentencias : HASTA_QUE(Expresion<es>)

Estructura DO WHILE
La instruccin do...while es una variante del while que se usa as: do { <instrucciones> } while(<condicin>);

Ejemplo 1 : Visualizar los 5 primeros nmeros naturales.

ALGORITMO Ejemplo1 VARIABLES ENTERO N INICIO N 0 REPETIR ESCRIBIR( N ) NN+1 HASTA_QUE ( N < 5 ) FIN

Ejemplo 2 : Visualizar todos los nmeros pares de 2 cifras.


ALGORITMO Ejemplo2 VARIABLES ENTERO N INICIO N 10 REPETIR ESCRIBIR( N ) NN+2 HASTA_QUE N > 98 FIN

PROBLEMAS PROPUESTOS
Problema 6 : Visualizar la siguiente serie de nmeros : +1-2+3-4+5-6+7-8++N NOTA : N ser el valor limite de la serie.

Problema 7 : Calcular la suma de todos los nmeros de 3 cifras compuestos por cifras diferentes impares.
Problema 8 : Calcular la suma de todos los nmeros primos existentes entre 1 y 1000.

Você também pode gostar