Está en la página 1de 26

Fundamentos de Programacin

Cientfica
Estructuras Algortmicas - 2
(Repetitivas) (Ciclos/Buques/Hilos)

Delio Augusto Aristizbal Martnez


Docente
2017-2
Variables Especiales
Contadores

Acumuladores

Suiches, Banderas, Centinelas o


Interruptores
C
Son variables encargadas de contar los
o
eventos o acciones en un valor constante, ya
n
sea incremental o decrementalmente; deben
t
ser inicializadas en un valor.
a
d Nota: El incremento o decremento puede ser cualquier valor,
o generalmente su valor inicial es 0, con incrementos de 1 .

r Ejemplos:
e int X = 0; X = X + 1; X = X 5;
s float K = 10; K = K + 1.5; K = K 0.5;
Variables Especiales

Contadores

Acumuladores

Suiches, Banderas, Centinelas o


Interruptores
A
c Son variables encargadas de incrementarse o
u decrementarse con valores no constantes,
m deben ser inicializadas en un valor.
u Nota: Al igual que los contadores, deben ser inicializados antes de utilizarse;
l generalmente su valor inicial es 0 y se expresa como una suma, y varia
dependiendo del Valor de la(s) variable(s) que la acompaan .
a
d Ejemplos:
o float Ventas = 0; Ventas = Ventas + VrFact;
r int K = 10; K = K + cant K = K cant;
Variables Especiales

Contadores

Acumuladores

Suiches, Banderas, Centinelas o


Interruptores
S Son variables encargadas de tomar un valor entre
u B
C un rango de valores preestablecidos inicialmente
i a
por el programador.
n e
c
n Cada valor representa una caracterstica o accin
hd predeterminada para la variable, acorde a la representacin
e t en su definicin.
e
r i
Ejemplos:
a n Variables con rango de valores
Prendido (0=no, 1=si), Genero (F=Femenino, M=Masculino), Habit (true, false)
e Est_Civ (1=Casad@, 2=Solter@, 3=Divorciad@, 4=Sepadad@, 5=Unin Libre)

l int Prendido = 0, Est_Civ = 2;


String Genero = "F";
a bool Habit = true
Estructuras Iterativas
(Ciclos/Buques/Hilos)
D Estructuras Iterativas
e (Ciclos/Buques/Hilos)
f
i Son estructuras que permiten la ejecucin
n de una lista o una secuencia de
i instrucciones (Bloque de Instrucciones)
c en una cantidad repetida de veces o
mientras se cumpla una condicin; con el
i
objetivo de alcanzar una meta o resultado
deseado.
n
Estructuras Iterativas
(Ciclos/Buques/Hilos)
Ti
p 1. Para
o
s 2. Mientras / Hacer

3. Hacer / Mientras (Repetir)


Estructuras Iterativas
Ejecuta un bloque de instrucciones (P1) un
nmero finito de veces, determinado por una
P variable de control (Vc).
a
r Vc toma valores desde un valor inicial (Vi)
a hasta el valor final (Vf ), teniendo en cuenta un valor (paso)
que la incrementa o la decrementa.

Ojo:
Cuando Vi sobrepase el Vf, ah termina la ejecucin del ciclo.

La sentencia puede que se ejecute una, varias o ninguna vez.


Estructuras Iterativas
Forma general:
Para ( Vc = Vi hasta Vf, Paso )
P
P1
a
Fin Para
r
a int i; // Vc
for ( i= 1; i < 10; i++ )
{
// P1
}
Estructuras Iterativas
Simple y Anidado
1. Escriba un programa que calcule una aproximacin del valor de mediante la
P siguiente serie:

a donde se pida al usuario el nmero de trminos de la serie que se usarn en la


estimacin. Cuntos trminos se requieren para obtener 3.14159?
r
a 2. Se tienen 2 dados, uno de M lados y el otro de N lados (Mayores a 1). Mostrar todos
los posibles resultados que se pueden obtener al tirarlos. (Empiezan desde 1)

3. Dibujar un cuadrado con asteriscos a partir de un valor entero positivo mayor a 1.


Ver imagen de ejemplo si el usuario ingresa 5.
Estructuras Iterativas
(Ciclos/Buques/Hilos)
Ti
p 1. Para
o
s 2. Mientras / Hacer

3. Hacer / Mientras (Repetir)


Estructuras Iterativas
M Ejecuta un bloque de instrucciones (P1)
i mientras que la evaluacin de la condicin
que la antecede sea verdadera.
e
Se utiliza cuando no se conoce el nmero de
n veces que se ejecutar la accin.
t La condicin se encuentra acompaada de la instruccin MIENTRAS al
r
principio de la estructura.
La sentencia puede que se ejecute una, varias o ninguna vez.
a
s OJO: Lo que se puede hacer con el ciclo PARA, se puede hacer con el ciclo
Estructuras Iterativas
M Consideraciones:
i
e 1. Declarar e Inicializar la Variable de Control (Vc) antes del ciclo.

n
2. Evaluar la (Vc) en la expresin lgica (condicin) que controla el
t ciclo.

r
3. En el bloque de instrucciones debe existir una instruccin cmo
a mnimo, que modifique la (Vc) para que el ciclo no sea infinito.
s
Estructuras Iterativas
Forma general:
M
i Vc ( Vble.
Vble. Ctl. Inicializada )
Inicializada
Ctl.

Mientras ( Condicin(Vc)
Condicin(Vc) ) Hacer
e P1 ( Hay
Hay que
que modificar Vc )
modificar Vc

n Fin Mientras
t
Vc = 1;
r while ( Vc <= 10 )
a {
cout << "Estoy en: " << Vc << endl;
s Vc ++;
}
Estructuras Iterativas
M Simple y Anidado

i 1. Crear, mostrar y hallar la suma de los trminos de la serie, mientras que el nuevo trmino
generado de la serie sea menor al valor ingresado por el usuario (entero mayor a 1) a partir
e de la siguiente serie base: 2, -5, 8, -11, 14, -17,

n
t 2. Mostrar los primeros N trminos de la serie de Fibonacci:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 ...

r
3. Crea un algoritmo que dibuje un tringulo de asteriscos. Hasta que el usuario
a desee parar en cada iteracin. (Ver ejemplo si el usuario quiso parar en la 5ta.
Iteracin). (Mostrar el tringulo a medida que se realiza cada iteracin)
s
Estructuras Iterativas
(Ciclos/Buques/Hilos)
Ti
p 1. Para
o
s 2. Mientras / Hacer

3. Hacer / Mientras
3.
Estructuras Iterativas
M En un bucle hacer...mientras, primero se ejecuta el
i bloque de instrucciones (P1) y, despus, se evala la
H condicin. En el caso de que sta sea verdadera, se
a e vuelve a ejecutar el bloque de instrucciones. Y as
n sucesivamente, hasta que, la condicin sea falsa.
c
e t
La condicin se encuentra acompaada de la instruccin while al final de la
r r
estructura y adems finaliza con punto y coma.
a La sentencia siempre se ejecuta una o varias veces.
s
Se utilizan frecuentemente las variables de tipo: Suiche/Bandera.
Estructuras Iterativas
M Consideraciones:
H i
a e 1. Solo declarar la Variable de Control (Vc) antes del ciclo.

c n 2. En el bloque de instrucciones debe existir una instruccin cmo

e t mnimo que asigne un Valor a la (Vc) para que el ciclo no sea


infinito.
r r
3. Evaluar la (Vc) en la expresin lgica (condicin) que controla el
a ciclo.
s
Estructuras Iterativas
Forma general:
M
Vc ( Vble.
Vble. Ctl. Declarada )
Ctl. Declarada
H i
Hacer
a e
P1 (Hay
Hay que
que leer
leer o
o modificar Vc)
modificar Vc
c n
Mientras ( Condicin(Vc)
Condicin(Vc) )
e t
int Vc = 5; // Vc
r r do
a {
cout << "Vc: " << Vc << endl;
s Vc --;
} while ( Vc > 0 );
Estructuras Iterativas
M Ejercicios

H i 1. Pedir 2 #s ( N1 y N2 ) y un operador (Ope) ( +, - , * / ) al usuario; y acorde al


a e operador, realice la operacin correspondiente. Realizar el proceso hasta que el
usuario como forma de entrada, ingrese un valor diferente a los propuestos al

c n operador (Ope). Mostrar cuantos procesos se realizaron por c/u de las operaciones.
2. Crear un men de opciones donde:
La opcin: A, Leer un nmero entero positivo e imprimir el factorial de dicho nmero.
e t Se debe validar que el nmero ingresado sea entero positivo mayor a cero, de lo
contrario, pedir de nuevo el nmero al usuario. Ejemplo: 5! = 5 * 4 * 3 * 2 * 1.

r r La opcin: B, Para hallar y mostrar la nota definitiva de un estudiante para la


asignatura de tica se tienen 7 notas: la 1ra. vale un 7.5%, la 2da. vale un 10%, la
a 3ra. vale un 15%, la 4ta. vale un 20%, la 5ta. vale un 17.5%, la 6ta. vale un 12.5% y la
ltima vale el resto del porcentaje faltante. Hallar y mostrar el promedio del grupo
s de X estudiantes.
Terminar solamente con la opcin: S. Otra letra es opcin no vlida y retorna al men.
Interrupcin en ejecucin de un Ciclo o Bucle
La instruccin de salto interrumpir (break) se utiliza para
interrumpir (terminar) la ejecucin normal de un bucle, es
decir, la instruccin interrumpir (break) finaliza la ejecucin
de un bucle y, por tanto, el control del programa se transfiere
(salta) a la primera instruccin despus del bucle.

i = 1;
while ( i <= 10 )
{
cout << "Estoy en: " << i << endl;
if ( i == 5)
break;
i++;
}
Estructuras Iterativas
Interrumpir / break

Disee un programa que pida por teclado un nmero (entero).


El nmero para que sea vlido se debe ser mayor o igual que -10 y menor o
igual que 10.
Si el nmero ingresado es distinto de cero, muestre por pantalla el mensaje: "El
opuesto es: <-nmero>, Ahora, si el usuario ingresa valores fuera del rango,
mostrar un mensaje diciendo que el nmero est fuera del rango.
Si el usuario introduce un cero, el bucle finaliza, mostrndose por pantalla el
mensaje: "ERROR: El cero no tiene opuesto.".
Al finalizar muestre por pantalla la suma de los nmeros vlidos introducidos
por el usuario.
Ejercicio Reto con Hacer/ Mientras
Crear un algoritmo que permita jugar a adivinar un nmero como se expone a continuacin.
M
El algoritmo debe iniciarse indicando Se ha generado un
H i nmero aleatorio entero entre 1 y 100 inclusive, intente

a e adivinarlo (Este nmero lo ingresa el coordinador del


juego). El jugador introducir un nmero y si el nmero
c n ingresado es menor que del coordinador del juego, deber indicarse

e t No has acertado: el nmero es menor. Prueba otra vez y


se le dar otra opcin de ingresar un nuevo nmero. Si el
r r usuario introduce el nmero mayor que el nmero
ingresado por elcoordinador del juego deber indicarse
a
No has acertado: el nmero es mayor. Prueba otra vez y se le
s dar otra opcin de ingresar un nuevo nmero. El juego
terminar cuando el jugador acierte el nmero ingresado