Está en la página 1de 8

Ing.

Ricardo Castañeda

UNIVERSIDAD NACIONAL DE INGENIERÍA


FACULTAD DE INGENIERÍA MECÁNICA

PROFESOR : RICARDO CASTAÑEDA 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 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.

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”)
Solución:
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 Castañeda

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


ellos.

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( );
}

NOTA : Observe los siguientes puntos


 El for ( Para) de C++ , inicializa la variable de control “i” (índice), indica la condición a
verificar para ejecutar una vez mas el lazo y también 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 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

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 instrucción while
}
1.11.3 Estructura Ejecutar – Mientras .- Tiene los mismos objetivos que la estructura
mientras pero la secuencia es la inversa ( Ejecución - prueba).
Forma General
Hacer
.........................
...........................
............(Bloque )
........................
Mientras (Condición)
Funcionamiento.- Primero se ejecuta el bloque de instrucciones después se evalúa la
condición, si esta se cumple (es verdadera) se vuelve a ejecutar el bloque , se vuelve a
evaluar la condición y si esta se sigue cumpliendo se vuelve a ejecutar el bloque y así se
seguirá repitiendo mientras la condición sea verdadera, si en alguna evaluación la
condición ya no se cumple termina la repetición y se pasa a la siguiente instrucción.

-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

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;

-8-

También podría gustarte