Sei sulla pagina 1di 3

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA

“ANTONIO JOSÉ DE SUCRE”


VICERECTORADO PUERTO ORDAZ
DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA
SECCIÓN DE COMPUTACIÓN

COMPUTACION I

MANEJO DE ESTRUCTURAS CÍCLICAS

OBJETIVOS.
 Codificación de programas utilizando estructuras cíclicas. Simples y anidadas.
PRE-REQUISITOS.
 Conocer la estructura de un programa.
 Conocer conceptos básicos de estructuras cíclicas
 Conocer conceptos de contadores / acumuladores / Banderas o interruptores.
BASE TEÓRICA.
1. Estructuras cíclicas con contador.
Se utilizan para ejecutar un bloque de instrucciones un número conocido de veces. A continuación se muestra el
formato de la estructura en pseudocódigo y en C++. La estructura tiene una variable de control (I) la cual tiene
un valor inicial (ini), un valor final (fin) y un incremento (inc). La variable de control permite vigilar el número de
veces que se va a repetir el bloque de código. Estos tres parámetros se separan con comas (,) en pseudocódigo y
con punto y coma (;) en C++. El ejemplo que se muestra calcula la edad promedio de 10 personas.
Pseudocodigo C++ Ejemplo
repetir_desde(I=ini , I<=fin , I=I+inc) for(I=ini ; I<=fin ; I=I+inc) Suma=0;
inst 1 | { inst 1 for(I=1;I<=10;I=I+1)
inst 2 | inst 2 { cout<<"EDAD: "<<I;
: | BLOQUE : cin>>EDAD;
inst x | inst x Suma=Suma+EDAD;
fin_repetir_desde } }
Promedio=Suma/10;
2. Estructuras cíclicas con condición
Se utilizan para ejecutar un bloque de instrucciones un número de veces que depende de una condición. La
condición puede ser simple o compuesta de varias condiciones simples. En cualquiera de los casos, simple o
compuesta, el resultado de la evaluación solo puede ser CIERTO o FALSO y el ciclo se repite mientras la condición
sea CIERTA. El ejemplo que se muestra calcula la edad promedio de N personas. La cantidad de valores leídos es
variable y el ciclo se rompe cuando se ingresa un valor=0.
Pseudocodigo C++ Ejemplo
inicializa CONDICION inicializa CONDICION N=0,suma=0, cin>>edad;
repetir_mientras(CONDICION) while(CONDICION) while(edad>0)
inst 1 | { inst 1 { suma=suma+edad;
: | BLOQUE : N=N+1;
inst x | inst x cin>>edad;
actualiza CONDICION actualiza CONDICION }
fin_repetir_desde } Promedio=suma/N;
inicializa CONDICION inicializa CONDICION N=0,suma=0, cin>>edad;
repetir do do
inst 1 | { inst 1 { if(edad<=0) break;
: | BLOQUE : suma=suma+edad;
inst x | inst x N=N+1;
actualiza CONDICION actualiza CONDICION cin>>edad;
mientras(CONDICION) } while(CONDICION); } while(edad>0);
Promedio=suma/N;
3. Estructuras cíclicas anidadas.
Cualquiera de las instrucciones del bloque puede ser a su vez otra estructura cíclica y esta nueva estructura puede
a su vez tener dentro de su bloque otra estructura. La ejecución de este tipo de estructuras se cumple siguiendo la
lógica de cada estructura. La estructura exterior se "detiene" hasta que se ejecuta por completo la estructura
interior. El ejemplo que se muestra procesa las notas de 10 estudiantes con 3 evaluaciones por estudiante. Por
cada estudiante se lee una cedula y tres notas. Se deben leer 10 cedulas (cin>>cedula) y 30 notas (cin>>NOTA).
inicializa COND1; for(I=ini ; I<=fin ; I=I+inc) for(I=1; I<=10 ; I=I+1)
while(COND1) { inst 1; { cin>>cedula;
{ inst 1; for(J=ini ; J<=fin ;J=J+inc) Suma=0;
inicializa COND2; { inst 21; J=1;
while(COND2) inst 22; while ( J<=3)
{ inst21;
} { cin>>NOTA;
inst22;
actualiza COND2; inst 3; Suma=Suma+NOTA;
} inst 4; J=J+1
inst 3; } }
inst4; Promedio=Suma/3;
actualiza COND1; }
}

4. Acumulador / Contador / Interruptor/Instrucción break.


Acumulador.- Es una variable destinada a almacenar valores resultantes de operaciones repetidas.
Contador.- Es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada iteración.
Variables Bandera o interruptores.- (switch/flag) es una variable que solo puede tomar dos valores
cierto/falso. En caso de tener dos rutas de ejecución permite determinar cual camino se tomó.
La instrucción break: Se utiliza para producir la salida anticipada de una estructura cíclica for, while ó do-
while. La ejecución del programa continúa con la primera instrucción fuera de la estructura de control suspendida.
L ABORATORIO.
1. Actividad 1:
Dado el siguiente segmento de algoritmo que determina si un número es primo realice las siguientes
operaciones:
algoritmo PRIMO
a) Escriba y pruebe el algoritmo en C++
inicio
b) Cambie el ciclo for por un ciclo while, de tal ent N,i,sw
forma que se interrumpa la verificación al mostrar("Valor a probar: ")
encenderse la bandera sw con primer divisor en leer(N)
el rango 2≤ i ≥ N-1 sw = 0 // Bandera Primo o no primo
repetir_desde i=2 hasta i==N-1
while ((i<=N-1) && (sw==0))
resto = N % i
c) Modificar el programa para que permita contar y si(resto == 0)
mostrar los números primos ingresados por sw = 1
teclado y los no primos mostrar indicar porque. fin_si
Ejemplo 42 NO ES PRIMO porque también es fin_repetir_desde
divisible por 2, utilizando para controlar el ingreso si(sw == 0)
una pregunta de si se desea ingresar otro valor, mostrar(N, "ES PRIMO")
en caso afirmativo (S) se repite el proceso, en si_no
caso negativo (N) se termina el programa y se mostrar(N, "NO ES PRIMO")
muestra el resultado. fin_si
fin

2
2. Actividad 2:
Una empresa desea reclutar 5 personas con las siguientes características: Edad entre 18 y 30 años e
IMC entre 22 y 28. El IMC es la relación entre el peso (P) en Kg y la estatura (E) en mts. y viene dado
por IMC = P/E2. El programa debe leer los datos (CEDULA, EDAD, PESO, ESTATURA) y verificar los
datos para determinar los "aptos". El programa se detiene cuando consigue cinco (5) personas aptas
ó se recibe una EDAD negativa si ya no se desea seguir con el proceso. El programa debe mostrar la
cantidad de personas entrevistadas, la persona (CEDULA) de mayor edad y el IMC promedio de los
"aptos". Ejemplo:

Cedula Edad Peso Estatura


111 19 60 1.50
222 22 85 1.75
555 38 70 1.93
543 18 120 1.82
777 29 130 1.72
888 35 114 1.83
999 21 50 1.65
765 42 80 1.89
432 20 70 1.61
212 60 75 1.55

Potrebbero piacerti anche