Sei sulla pagina 1di 8

Ing.

Ricardo Castaeda

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE INGENIERA MECNICA

PROFESOR : RICARDO CASTAEDA DE LA ROSA

2011

-1-
1.11 Estructuras Repetitivas
1.11.2 Estructura Para.- Nos permite ejecutar varias veces un conjunto de
instrucciones un numero fijo de veces.
Forma General
Para vc = vi, vf, vinc
.........................
Ing. Ricardo Castaeda

...........................
....(Bloque Para)
........................
Fin Para
Donde:
vc variable de control, llamado tambin ndice del Para.
vi valor inicial es el primer valor que toma la variable de control.
vf valor final, es el ultimo valor con el que el lazo para se ejecutara.
vinc valor incremento, valor en el cual se incrementa la variable de
control despus de cada lazo.
Funcionamiento.- El funcionamiento del lazo Para se explica mediante un algoritmo.

ALGORITMO DE FUNCIONAMIENTO DEL LAZO PARA


(Considerando valor incremento positivo)
1 Si ( vi > vf )
Entonces
1.1 Ir a paso (6)
FinSi
2 vc vi
3 Se ejecuta rango del lazo para
4 vc vc + vinc
5 Si ( vc <= vf )
Entonces
5.1 Ir a paso (3 )
6 FIN

Ejemplo: Que imprime el siguiente algoritmo


1 Para i = 1,12,2
Escribir ( i)
Fin Para
2 Escribir ( FIN)
Solucin:
De acuerdo a lo dicho y considerando lo siguiente:
vc es i
vi = 1
vf = 12
vinc = 2
-2-
Imprimir:
1
3
5
7
9
11
FIN
Ing. Ricardo Castaeda

Ejemplo: Escriba un algoritmo que lea 10 valores y me muestre la suma y el promedio


de ellos.

Seudocdigo Programa
/* halla suma y promedio de 10 valores # include<iostream.h>
ledos, ojo no usa contador, pero i # include<conio.h>
cumple esa funcin */ void main( )
valor, suma , i son enteros {
promedio es real int valor, suma, i;
1. Suma 0 float promedio;
2. Para i = 1,10 // El incremento unitario clrscr( );
Se puede omitir cont = 0;
2.1 Leer(valor) suma = 0;
2.2 Suma suma + valor for ( i = 1; i <= 10; i++ )
Fin Para {
3. Promedio suma/10.0 cout<< valor = ; cin >> valor;
4. Escribir ( Suma = , suma) suma = suma + valor;
5. Escribir ( Promedio =, promedio) }
6. Fin promedio = suma/10.0;
cout << Suma = << suma<< endl;
cout << Promedio = << promedio;
getch( );
}

NOTA : Observe los siguientes puntos


El for ( Para) de C++ , inicializa la variable de control i (ndice), indica la condicin a
verificar para ejecutar una vez mas el lazo y tambin indica el valor en que se debe
incrementar la variable de control.
La variable i es una variable de control pero es interna, nosotros no podemos
modificar su valor.
El ultimo valor de i en los dos casos ( algoritmo y programa) es 11.

-3-
Problema 1 . Escriba un programa que funcione como un cajero automtico, o sea:
La clave numrica solo podr ser ingresada un mximo de tres veces.
La operacin podr ser consultar saldo, retirar o abonar a la cuenta.
El retiro mximo ser 600 soles por vez
Ing. Ricardo Castaeda

No podr retirar mas del saldo que tenga.


Solucin:
Seudocdigo
/* Programa Cajero Automtico, realiza operaciones de consulta, retiro y abono de una
cuenta corriente */
clave, clave1, veces son enteros
saldo, cantidad es real
operacin es carcter
1. Clave random (9000) +1000
2. Saldo random (10000)
3. Veces 0
4. operacin 0
5. Mientras (operacin = 4)
5.1 LimpiarPantalla( )
5.2 Escribir(CAJERO AUTOMATICO)
5.3 Escribir(Ingrese su clave ->)
5.4 Leer(clave1)
5.5 Si (clave == clave1)
Entonces
5.5.1 LimpiarPantalla( )
5.5.2 Escribir(CAJERO AUTOMATICO)
5.5.3 Escribir(1.- Consulta)
5.5.4 Escribir(2.- Retiro)
5.5.5 Escribir(3.- Abono)
5.5.6 Escribir(4.- Salir )
5.5.7 Escribir ( Operacin => )
5.5.8 Leer ( Operacin )
5.5.9 Case ( Operacin)
1 : LimpiarPantalla( )
Escribir ( CONSULTA)
Escribir ( Su saldo es = ,saldo)
Congelarpantalla( )
2 : LimpiarPantalla( )
Escribir ( RETIRO)
Escribir ( Indique cantidad a retirar = )
Leer ( cantidad )
Si ( cantidad <= saldo)
Entonces
Si (cantidad > 600)
-4-
Entonces
Escribir ( Error ..el mximo retiro es 600 soles)
Sino
Ing. Ricardo Castaeda

Saldo = saldo cantidad


Escribir(Su nuevo saldo es = ,saldo)
FinSi
Sino
Escribir( Error su saldo no es suficiente..)
FinSi
Congelarpantalla( )
3 : LimpiarPantalla( )
Escribir ( ABONO)
Escribir ( Indique cantidad a abonar = )
Leer ( cantidad )
Saldo = saldo + cantidad
Escribir(Su nuevo saldo es = ,saldo)
CongelarPantalla( )
FinCase
Sino
5.5.10 Escribir( Error.. clave incorrecta..)
5.5.11 Veces veces + 1
5.5.12 CongelarPantalla( )
FinSi
5.6 Si ( veces > = 3)
Entonces
5.6.1 Escribir( Su tarjeta ha sido retenida...)
5.6.2 CongelarPantalla( )
5.6.3 Salir( )
FinSi

FinMientras
6. FIN
Programa
# include<iostream.h>
# include<conio.h>
# include<stdlib.h>
# include<timeo.h>
void main( )
{ int clave, clave1,veces;
float saldo cantidad;
char operacin;
clrscr( );
-5-
randomize ( ); // inicializa generador de nmeros con una semilla funcin de la hora
clave = random(9000) + 1000 // Genera clave de 4 dgitos
saldo = random(10000) // Genera saldo hasta 9999 soles
veces = 0;
Ing. Ricardo Castaeda

operacin = 0
while ( operacin ! = 4)
{
clrscr( );
gotoxy ( 35,2); cout << CAJERO AUTOMATICO;
gotoxy ( 32,12); cout << Ingrese su clave => ; cin >> clave1
if ( clave == clave1)
{
clrscr();
gotoxy( 35,2); cout << CAJERO AUTOMATICO;
gotoxy( 40,6); cout << 1.- Consulta ;
gotoxy( 40,7); cout << 2.- Retiro ;
gotoxy( 40,8); cout << 3.- Abono ;
gotoxy( 40,9); cout << 4.- Salir ;
gotoxy( 40,15); cout << Operacin ; cin >>operacin;
switch ( operacin)
{
case 1 : clrscr();
gotoxy( 35,2); cout << CONSULTA;
gotoxy( 33,22); cout << Su saldo es = << saldo;
getch();
break;
case 2 : clrscr();
gotoxy( 35,2); cout << RETIRO ;
gotoxy( 33,12);cout<< Indique cantidad a retirar = ; cin>>cantidad;
if ( cantidad <= saldo)
if ( cantidad > 600)
{
gotoxy( 35,22);
cout << Error el mximo retiro es 600 soles;
}
else
{
saldo = saldo cantidad;
gotoxy( 35,22);
cout << Su nuevo saldo es = << saldo;
}
else
{ gotoxy( 33,22);
-6-
cout << Su saldo es insuficiente.. ;
}
getch();
break;
Ing. Ricardo Castaeda

case 3 : clrscr();
gotoxy(35,2); cout << ABONO ;
gotoxy(33,12);cout<< Indique cantidad a abonar = ; cin>>cantidad;
saldo = saldo + cantidad;
gotoxy( 33,22); cout << Su saldo es = << saldo;
getch();
break;
}
}
else
{ gotoxy( 33,22);
cout << Error clave incorrecta ...;
veces = veces +1;
getch();
exit ( 0);
}
if ( veces > = 3)
{ gotoxy( 33,22);
cout << Su tarjeta ha sido retenida.....;
getch();
}
} // Fin de la instruccin while
}
1.11.3 Estructura Ejecutar Mientras .- Tiene los mismos objetivos que la estructura
mientras pero la secuencia es la inversa ( Ejecucin - prueba).
Forma General
Hacer
.........................
...........................
............(Bloque )
........................
Mientras (Condicin)
Funcionamiento.- Primero se ejecuta el bloque de instrucciones despus se evala la
condicin, si esta se cumple (es verdadera) se vuelve a ejecutar el bloque , se vuelve a
evaluar la condicin y si esta se sigue cumpliendo se vuelve a ejecutar el bloque y as se
seguir repitiendo mientras la condicin sea verdadera, si en alguna evaluacin la
condicin ya no se cumple termina la repeticin y se pasa a la siguiente instruccin.

-7-
Ejemplo: Escriba un algoritmo que me permitan mostrar un men vertical.
Seudocdigo switch ( opcion)
/* muestra men vertical */ { case 1: clrscr();
opcion es caracter cout << tarea 1;
Ing. Ricardo Castaeda

1. Hacer getch();
1.1 LimpiarPantalla ( ) break;
1.2 Escribir ( MENU VERTICAL) case 2: clrscr();
1.3 Escribir ( 1.- Tarea 1 ) cout << tarea 2;
1.4 Escribir ( 2.- Tarea 2 ) getch();
1.5 Escribir ( 3.- Tarea 3 ) break;
1.6 Escribir ( 4.- Tarea 4 ) case 3: clrscr();
1.7 Escribir ( 5.- Salir ) cout << tarea 3;
1.8 Escribir ( Opcion =>) getch();
1.9 Leer (opcion) break;
1.10 case ( Opcion) case 4: clrscr();
1.10.1 1: Funcion1() cout << tarea 4;
1.10.2 2: Funcion2() getch();
1.10.3 3: Funcion3() break;
1.10.4 4: Funcion4() }
FinCase } while ( opcion ! = 5)
Mientras ( opcion <> 5) }
2. FIN cont = 0;
Programa suma = 0;
# include<iostream.h> do
# include<conio.h> {
void main( ) cout<< valor = ; cin >> valor;
{ suma = suma + valor;
char opcion; cont = cont + 1; // cont ++
do } while ( cont < 10)
{ promedio = suma/10.0;
clrscr( ); cout << Suma = << suma<< endl;
gotoxy(30,2);c cout << Promedio = << promedio;
cout<<MENU VERTICAL; getch( );
gotoxy(30,6);cout<<1.- Tarea 1; }
gotoxy(30,7);cout<<2.- Tarea 2;
gotoxy(30,8);cout<<3.- Tarea 3;
gotoxy(30,9);cout<<4.- Tarea 4;
gotoxy(30,16);
cout<<Opcion :
cin >> opcion;

http://www.dcp.com.ar/mfc/indice.htm-8-

Potrebbero piacerti anche