Está en la página 1de 7

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA MECÁNICA

PROFESOR : RICARDO CASTAÑEDA DE LA ROSA

2011
CAPITULO II
1.9 Estructuras de Decisión Simple (Si) .- Nos permite derivar el control hacia uno de
dos puntos del algoritmo.
Forma General
Si (Condición)
Entonces
...............
...........(Bloque1)
Autor: Ing. Ricardo Castañeda
1
...............
[Sino
...............
...........(Bloque2)
............]
FinSi
Funcionamiento.- Se evalúa la condición, si esta se cumple (es verdadera) se ejecuta
el bloque 1 (Entonces) si esta no se cumple se ejecuta el bloque 2 (sino), en caso de
que este exista, a continuación se pasa a la siguiente instrucción.
Ejemplo: Escriba un algoritmo que lea cuatro valores y me muestre el menor.
Solución:
Seudocodigo Programa
/* Halla el menor valor de 4 valores */ /* muestra el menor de 4 valores */
Dato1, dato2, dato3, dato4 son enteros # include<iostream.h>
Menor1, Menor2 y MenorT son enteros # include<conio.h>
1.- Leer(dato1) void main( )
2.- Leer(dato2) { int dato1, dato2, dato3, dato4;
3.- Leer(dato3) int menor1, menor2, menort;
4.- Leer (dato4) clrscr( );
5.- Si ( dato1 < dato2) cout<< “ dato1=”; cin>> dato1;
Entonces cout<< “ dato2=”; cin>> dato2;
5.1 Menor1  dato1 cout<< “ dato3=”; cin>> dato3;
Sino cout<< “ dato4=”; cin>> dato4;
5.2 Menor1  dato2 if ( dato1<dato2)
FinSi menor1 = dato1;
6.- Si ( dato3 < dato4) else
Entonces menor1 = dato2;
6.1 Menor2  dato3 if ( dato3<dato4)
Sino menor2 = dato3;
6.2 Menor2  dato4 else
FinSi menor2 = dato4;
7.- Si ( Menor1 < Menor2) if ( menor1<menor22)
Entonces menort = menor1;
7.1 MenorT  Menor1 else
Sino menort =menor2;
7.2 MenorT  Menor2 cout<< “ El menor total es =”<<menort;
FinSi getch( );
8.- Escribir( “El menor total es =“, Menort) }
9.- FIN

Autor: Ing. Ricardo Castañeda


2
Ejemplo 2 : Escriba un programa que lea los datos de un cilindro y si estos son positivos
calcule el área y el volumen.
Seudocodigo Programa
/* Halla área y volumen de un cilindro */ /* Volumen y Area de un cilindro */
radio, altura, Pi son reales # include<iostream.h>
area1, area, volumen son reales # include<conio.h>
1.- Leer(radio) # include<math.h>
2.- Leer(altura) void main( )
3.- Pi = 3.1416 {
4.- Si ( (radio > 0) i (altura > 0) float radio, altura pi ;
Entonces float area, volumen, area1;
4.1 area1 Pi*radio2 clrscr( );
4.2 area2*Pi*radio*altura+ 2*area1 pi = 3.1416;
4.3 volumen area1*altura cout<< “ radio = ”; cin>> radio;
4.4 Escribir(area, volumen) cout<< “ altura = ”; cin>>altura;
FinSi if ( (radio > 0 ) && (altura > 0) )
5.- FIN {
area1 = pi * pow (radio,2);
area = 2*pi*radio*altura+2*area1;
volumen = area1 * altura;
cout<< “Area = “<<area<<endl;
cout<< “Volumen = “<<volumen;
}
getch( );
}

Tarea: Desarrolle el mismo programa, considerando lo siguiente:


 Si algún valor es cero deberá indicar área y volumen cero.
 Si algún valor es negativo deberá dar un mensaje de error y además indicar que
valor es el negativo.

1.10 Estructuras de Decisión Múltiple (case) .- Nos permite derivar el control hacia
uno de varios puntos del algoritmo.
Forma General
Case (Indice)
1 : ...............
...........(Bloque1)
2 : ...............

Autor: Ing. Ricardo Castañeda


3
...........(Bloque2)
3 : ...............
...........(Bloque3)
.
.
n : ...............
...........(Bloque n)
sino : ...............
...........(Bloque por defecto)
Fin Case
Funcionamiento.- Se evalúa el índice y si:
Vale 1 se ejecuta el bloque 1
Vale 2 se ejecuta el bloque 2
Vale n se ejecuta el bloque n
Si cae fuera del rango [1,n} se ejecuta el bloque por defecto(sino), a continuación se
pasa a la siguiente instrucción.
Ejemplo: Escriba un algoritmo que lea una operación y me entregue la respuesta.
Seudocodigo Programa
/* evalúa operación/ # include<iostream.h>
valor1, valor2, resultado son reales # include<conio.h>
operador es carácter void main( )
1. Leer ( valor1) { float v1, v2,res; char operador;
2.- Leer(valor2) clrscr( );
3.- Leer(operador) cout<< “ v1, v2=”; cin>> v1>>v2;
4.- Case (operador) cout<< “ operador =”; cin>> operador;
“+” : resultado valor1 + valor2 switch( operador)
escribir(“resultado = ”, resultado) {case “+”: res=v1+v2;
“– “: resultado valor1 – valor2 cout<<”resultado=”<<res;break;
escribir(“resultado = ”, resultado) case “-”: res=v1-v2;
“ * “: resultado valor1 * valor2 cout<<”resultado=”<<res;break;
escribir(“resultado =”, resultado) case “ ”: res=v1*v2;
“/ “: resultado valor1 / valor2 cout<<”resultado=”<<res;break;
escribir(“resultado =”, resultado) case “/”: res=v1/v2;
sino: escribir( “ No es operación”) cout<<”resultado=”<<res;break;
Fin Case default : cout<< “ No es operación”; }
5.- FIN getch( ); }
Ejemplo: Escriba un algoritmo que lea un numero entre 30 y 50 y lo imprima en
letras.
Seudocodigo Programa
/* números a letras/ / * Convierte números a letras */
numero, dec, uni son enteros # include<iostream.h>
1. Leer ( numero) # include<conio.h>
2.- Si ( (numero>=30) i ( numero<=50)) void main( )

Autor: Ing. Ricardo Castañeda


4
Entonces {int numero, dec , uni;
2.1 dec  numero/10 clrscr( );
2.2 uni  numero%10 cout<< “ Numero = ”; cin>> numero;
2.3 Case (dec) if ( (numero >= 30) && (numero<= 50))
3 : Escribir( “ Treinta”) { dec = numero / 10;
4 : Escribir (“ Cuarenta”) uni = numero % 10;
5 : Escribir (“ Cincuenta”) switch( dec)
Fin Case {case 3 : cout<< “Treinta”; break;
2.4 Case (uni) case 4 : cout<< “Cuarenta”; break;
1 : Escribir( “y Uno”) case 5 : cout<< “Cincuenta”;
2 : Escribir (“y Dos”) }
3 : Escribir (“y Tres”) switch( uni)
4 : Escribir( “y Cuatro”) {case 1 : cout<< “y uno”; break;
5 : Escribir (“y Cinco”) case 2 : cout<< “y dos”; break;
6 : Escribir (“y Seis”) case 3 : cout<< “y tres”; break;
7 : Escribir( “y Siete”) case 4 : cout<< “y cuatro”; break;
8 : Escribir (“y Ocho”) case 5 : cout<< “y cinco”; break;
9 : Escribir (“y Nueve”) case 6 : cout<< “y seis”; break;
Fin Case case 7 : cout<< “y siete”; break;
Sino case 8 : cout<< “y ocho”; break;
2.5 Escribir( “ Fuera del rango”) case 9 : cout<< “y nueve”;
Fin Si }
3.- FIN }
else
cout<< “ Fuera del rango”;
getch( );
}

1.11 Estructuras Repetitivas


1.11.1 Estructura Mientras.- Nos permite ejecutar varias veces un conjunto de
instrucciones.
Forma General
Mientras (Condición)
.........................
...........................

Autor: Ing. Ricardo Castañeda


5
....(Bloque Mientras)
........................
Fin Mientras
Funcionamiento.- Se evalúa la condición, si esta se cumple (es verdadera) se ejecuta
el bloque mientras, 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.

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


ellos.
Seudocodigo Programa
/* halla suma y promedio de 10 valores # include<iostream.h>
leídos */ # include<conio.h>
valor, suma , cont son enteros void main( )
promedio es real {
1. cont  0 int valor, suma, cont;
2. suma  0 float promedio;
3. Mientras ( cont < 10) clrscr( );
3.1 Leer(valor) cont = 0;
3.2 suma  suma + valor suma = 0;
3.3 cont  cont + 1 while ( cont < 10 )
Fin Mientras {
4. promedio  suma/10.0 cout<< “ valor = “; cin >> valor;
5. Escribir ( “Suma = “, suma) suma = suma + valor;
6. Escribir ( “ Promedio =”, promedio) cont = cont + 1; // cont ++
7. Fin }
promedio = suma/10.0;
cout << “ Suma = “<< suma<< endl;
cout << “ Promedio = “ << promedio;
getch( );
}

PROBLEMAS PROPUESTOS

1.- Escriba un algoritmo y programa que lea tres valores que representen los lados de
un triángulo y me indique si el triángulo es escaleno, isósceles o equilátero.

2.- Escriba un algoritmo que genere 4 valores al azar entre 1 y 13 (cuatro cartas de
una baraja de casinos) y me indique si tenemos un par, 2 pares , un trío o un

Autor: Ing. Ricardo Castañeda


6
póker ( cuatro iguales).

3.- Escriba un algoritmo que lea una expresión aritmética entera y me entregue el
resultado final.
Por ejemplo lee 3 + 5 – 7 y escribe 1.

4.- Escriba un algoritmo y programa que lea “n” valores y me entregue el mayor de
todos, el menor de todos y el promedio final.( n será leído también)

5.- 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 más del saldo que tenga.
NOTA: El saldo y la clave deben ser ingresados en el programa

Ricardo Castañeda.

Autor: Ing. Ricardo Castañeda


7

También podría gustarte