Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ricardo Castañeda
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 Castañeda
.........................
...........................
....(Bloque Para)
........................
Fin Para
Donde:
vc variable de control, llamado también í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 después de cada lazo.
Funcionamiento.- El funcionamiento del lazo Para se explica mediante un algoritmo.
Seudocódigo Programa
/* halla suma y promedio de 10 valores # include<iostream.h>
leídos, ojo no usa contador, pero ”i” # include<conio.h>
cumple esa función */ 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( );
}
-3-
Problema 1 . Escriba un programa que funcione como un cajero automático, o sea:
La clave numérica solo podrá ser ingresada un máximo de tres veces.
La operación podrá ser consultar saldo, retirar o abonar a la cuenta.
El retiro máximo será 600 soles por vez
No podrá retirar mas del saldo que tenga.
Ing. Ricardo Castañeda
Solución:
Seudocódigo
/* Programa Cajero Automático, realiza operaciones de consulta, retiro y abono de una
cuenta corriente */
clave, clave1, veces son enteros
saldo, cantidad es real
operación es carácter
1. Clave random (9000) +1000
2. Saldo random (10000)
3. Veces 0
4. operación ‘0’
5. Mientras (operación ¡ = ‘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 ( “ Operación => “)
5.5.8 Leer ( Operación )
5.5.9 Case ( Operación)
‘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 máximo retiro es 600 soles”)
Sino
Saldo = saldo – cantidad
Escribir(“Su nuevo saldo es = “,saldo)
Ing. Ricardo Castañeda
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 operación;
clrscr( );
-5-
randomize ( ); // inicializa generador de números con una semilla función de la hora
clave = random(9000) + 1000 // Genera clave de 4 dígitos
saldo = random(10000) // Genera saldo hasta 9999 soles
veces = 0;
operación = ‘0’
while ( operación ! = ‘4‘)
Ing. Ricardo Castañeda
{
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 << “ Operación “; cin >>operación;
switch ( operación)
{
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 máximo 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;
case ‘3’ : clrscr();
gotoxy(35,2); cout << “ ABONO ”;
Ing. Ricardo Castañeda
-7-
Ejemplo: Escriba un algoritmo que me permitan mostrar un menú vertical.
Seudocódigo switch ( opcion)
/* muestra menú vertical */ { case ‘1”: clrscr();
opcion es caracter cout << “ tarea 1”;
1. Hacer getch();
1.1 LimpiarPantalla ( ) break;
Ing. Ricardo Castañeda
-8-