Está en la página 1de 14

Algoritmos y Programación

UNIVERSIDAD NACIONAL DE TRUJILLO

CURSO:
ALGORITMOS Y PROGRAMACIÓN

GUÍA DE LABORATORIO 5

ESTRUCTURAS CONDICIONALES ANIDADAS


SWITCH
(LABORATORIO)

NOMBRES Y APELLIDOS: MARTINEZ NEYRA ALVIN

1
Algoritmos y Programación

Analizar el problema, diseñar un algoritmo y codificar en C++ para:


EJERCICIO 1
A. ANALISIS DEL PROBLEMA

Definición del problema

Calcular áreas de figuras geométricas a partir de un menú (utilice SWITCH)

Especificaciones de entrada Especificaciones de salida

Proceso
Numero 1 Con la ayuda del
switch
AREA
Numero 2 Mostrar el área en base
a lo seleccionado
pi

******** MENU ********* El áreas es:…


1. Área de un cuadrado /
2. Área de un rectángulo Gracias por su visita
/
3. Área de un círculo
Opción no valida
4. Área de un triángulo
5. Salir
**********************.
Escriba la opción que desee:……

Variables o constantes Variables

Pi(float)
Área(float)
Memoria
X(float)
X
Y(float)
Y

pi 3.1415

2
Algoritmos y Programación

switch(areas)
{
B. ALGORITMO case 1:
ESCRIBIR ("Ingrese el lado del cuadrado: ");
LEER X;
float X, Y, pi=3.1415, area; area = X*X;
int areas; break;
case 2:
ESCRIBIR ("\t\t\t\t\t********* MENU *********"<<endl; ESCRIBIR ("Ingrese el largo del rect\xA0ngulo: )";
ESCRIBIR ("\t\t\t\t\t1. \xB5""rea de un cuadrado"<<endl; LEER X;
ESCRIBIR ("\t\t\t\t\t2. \xB5""rea de un rect\xA0ngulo"<<endl; ESCRIBIR ("Ingrese el ancho del rect\xA0ngulo: ");
ESCRIBIR ("\t\t\t\t\t3. \xB5""rea de un circulo"<<endl; LEER Y;
ESCRIBIR ("\t\t\t\t\t4. \xB5""rea de un tri\xA0ngulo"<<endl; area = X*Y;
break;
ESCRIBIR ("\t\t\t\t\t5. Salir"<<endl; case 3:
ESCRIBIR ("\t\t\t\t\t**************************"<<endl; ESCRIBIR ("Ingrese el radio: " );
ESCRIBIR ("\t\t\t\t\tSeleccione una opcion: "; LEER X;
LEER areas; area = pi*(X*X);
break;
case 4:
ESCRIBIR ("Ingrese la base del tri\xA0ngulo:") ;
LEER X;
ESCRIBIR ("Ingrese la altura del tri\xA0ngulo: " );
cin>>Y;
area = X*Y/2;
break;
case 5:
ESCRIBIR ("Gracias por su visita! “)endl;
break;
default:
ESCRIBIR ("Opcion no valida")endl;
}
C. CODIGO if(areas>=1 && areas<=4)
ESCRIBIR ("El area es: ",área)
getch();

3
Algoritmos y Programación

Ejercicio 2

A. ANALISIS DEL PROBLEMA

Definición del problema

Numerología
Pitágoras, afirmaba que ‘El mundo está construido sobre el poder de los números’ y tenía toda la razón ya que desde
siempre, el hombre no ha parado de explorar los diferentes campos de la vida pasando por el arte y el conocimiento
basándose en el principio de los números. Los hindúes fueron los primeros en estudiar el origen de los números y de
donde Pitágoras heredó su conocimiento donde eran tratados como una ciencia sagrada.
De todo este conocimiento adquirido se basa la teoría que los números o más bien, la numerología, se encarga de
investigar las vibraciones que emiten los números en las personas .

El Número Personal, o de Destino se calcula a partir de los números de la fecha de nacimiento (día, mes, y año).
Hay que sumar todos los números hasta reducirlos a un solo dígito.
Este número es muy importante porque es el número de nacimiento y éste nunca cambia.
Ejemplo:
. 29 setiembre de 2015=
. 19 mayo de 1978 = 2+9 + 9 + 2+0+1+5
1+9 + 5 + 1 + 9 + 7 + 8
40 (4 +0) 28 (2 + 8 )
4 10 ( 1 + 0 )
1
Interpretación
case 1: cout<<“ Signo de la creatividad, independencia, originalidad,”<<endl;
cout<<“ sentido del yo y autosuficiencia”; break;

case 2: cout<<“ Signo de la empatía, cooperación, adaptabilidad, ”<<endl;


cout<<“ consideración hacia los demás”; break;

case 3: cout<<“ Expresivo en muchas vertientes y con capacidad comunicativa. ”<<endl;


cout<<“ Es el signo de la expresión artística, sociabilidad”; break;

case 4: cout<<“ Fuerte sentido del orden y los valores. Es el signo de lo práctico”; break;

case 5: cout<<“ Signo de la acción y la inquietud. Es el símbolo de la libertad, ”<<endl;


cout<<“ la adaptabilidad, el espíritu viajero y aventurero”; break;

case 6: cout<<“ Signo del amor, la responsabilidad, la comprensión.”<<endl;


cout<<“ Es un número asociado a la honestidad y fidelidad. ”; break;

case 7: cout<<“ Signo del pensamiento, la espiritualidad, la conciencia, ”<<endl;


cout<<“ el análisis psíquico, la sabiduría. ”; break;

case 8: cout<<“ Signo del poder, la habilidad ejecutiva, la gestión, poder material ”; break;

4
Algoritmos y Programación

case 9: cout<<“ Signo del genio artístico, sentido humanitario, tendencia al romance”<<endl;
cout<<“ y a lo emotivamente sentimental.”;

Especificaciones de entrada Especificaciones de salida

Año Suma(dígitos de
Proceso A,M,D)
Mes Separar en dígitos
independientes a
todas las fechas y
Dia sumarlas…hasta
q la suma sea un
digito

Ingrese día de nacimiento: Su número de destino es:


Ingrese mes de nacimiento:
Ingrese año de nacimiento:

Variables o constantes Variables

INT Memoria
Suma ( int)

year, M1
Mes M2
Dia A1
D1 A2
D2 A3
M1 A4
M2 D1
A1 D2
A2
A3
A4

5
Algoritmos y Programación

A. ALGORITMO
int year,Mes, Dia, D1, D2, M1, M2, A1, A2, A3, A4, Suma; switch(Suma)
ESCRIBIR ( "Ingrese dia de nacimiento: ") ; LEER Dia; {
ESCRIBIR ( "Ingrese mes de nacimiento: " ) ; LEER Mes; case 1:
ESCRIBIR ( " Signo de la creatividad, independencia, originalidad,") endl;
ESCRIBIR ( "Ingrese a\xA4o de nacimiento: ") ; LEER year; ESCRIBIR ( " sentido del yo y autosuficiencia") ;
break;
D1 =(Dia/10)%10; case 2:
D2 =Dia%10; ESCRIBIR ( " Signo de la empatía, cooperaci\xA2n, adaptabilidad, ") endl;
M1 =(Mes/10)%10; ESCRIBIR ( " consideración hacia los demás");
M2 =Mes%10; break;
case 3:
A1 =(year/1000)%10;
ESCRIBIR " Expresivo en muchas vertientes y con capacidad comunicativa. ") endl;
A2 =(year/100)%10; ESCRIBIR " Es el signo de la expresión artística, sociabilidad");
A3 =(year/10)%10; break;
A4 =year%10 ; case 4:
Suma= D1+D2+M1+M2+A1+A2+A3+A4; ESCRIBIR ("Fuerte sentido del orden y los valores. Es el signo de lo pr\xA0ctico");
if(Suma>=10) break;
Suma = Suma%10+((Suma/10)%10); case 5:
if(Suma>=10) ESCRIBIR (" Signo de la acción y la inquietud. Es el símbolo de la libertad, ")endl;
ESCRIBIR (" la adaptabilidad, el espíritu viajero y aventurero");
Suma = Suma%10+((Suma/10)%10); break;
ESCRIBIR ("Tu numero de destino es: " ;Suma) endl; case 6:
ESCRIBIR ( " Signo del amor, la responsabilidad, la comprensi\xA2n.")endl;
ESCRIBIR (" Es un número asociado a la honestidad y fidelidad. ") ;
break;
case 7:
ESCRIBIR (" Signo del pensamiento, la espiritualidad, la conciencia, “)endl;
ESCRIBIR ("el an\xA0lisis ps\xA1quico, la sab\xA1duria. ");
break;
case 8:
ESCRIBIR(" Signo del poder, la habilidad ejecutiva, la gesti\xA2n, poder material
");
break;
case 9:
ESCRIBIR (" Signo del genio artístico, sentido humanitario, tendencia al romance")endl;
ESCRIBIR (" y a lo emotivamente sentimental.");
break;
}
CODIGO

6
Algoritmos y Programación

Ejercicio 3

PASO 1: copie el código, compile y ejecute.


PASO 2: Revise el código especialmente la generación de números aleatorios (ver anexo) y la
estructura SWITCH
PASO 3: Modifique la generación de números aleatorios para un rango de 1 al 10 y agregue más
opciones a la última estructura SWITCH (Realizar este paso solo en el
laboratorio no tiene que colocarlo en el informe)

Ingresa el mes y dia de tu cumpleaños.


El programa te indicará tu signo zodiacal y tu horóscopo para el día de hoy
(utilizando generación de números aleatorios)
#include<conio.h>
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
int main (void)
{
int dia,mes;
cout<<"ingrese el mes de nacimiento: ";
cin>>mes;
cout<<"ingrese el dia de nacimiento: ";
cin>>dia;
cout<<endl;
switch(mes){
case 1: if(dia<21) cout<<"tu signo es capricornio";
else cout<<"tu signo es acuario";break;
case 2: if(dia<20) cout<<"tu signo es acuario";
else cout<<"tu signo es piscis";break;
case 3: if(dia<21) cout<<"tu signo es piscis";
else cout<<"tu signo es aries";break;
case 4: if(dia<21) cout<<"tu signo es aries";
else cout<<"tu signo es tauro";break;
case 5: if(dia<21) cout<<"tu signo es tauro";
else cout<<"tu signo es geminis";break;
case 6: if(dia<22) cout<<"tu signo es geminis";
else cout<<"tu signo es cancer";break;
case 7: if(dia<23) cout<<"tu signo es cancer";
else cout<<"tu signo es leo";break;
case 8: if(dia<23) cout<<"tu signo es leo";
7
Algoritmos y Programación

else cout<<"tu signo es virgo";break;


case 9: if(dia<21) cout<<"tu signo es virgo";
else cout<<"tu signo es libra";break;
case 10: if(dia<21) cout<<"tu signo es libra";
else cout<<"tu signo es escorpio";break;
case 11: if(dia<21) cout<<"tu signo es escorpio";
else cout<<"tu signo es sagitario";break;
case 12: if(dia<21) cout<<"tu signo es sagitario";
else cout<<"tu signo es capricornio";break;}

cout<<endl<<endl<<"Tu horoscopo para hoy dia es: "<<endl<<endl;


// GENERACION DE NUMEROS ALEATORIOS
int temp;
srand(time(NULL));
temp=rand()%6;
switch(temp){
case 1: cout<<"Hoy vas a tener un agradable encuentro";
break;
case 2: cout<<"Cuida tu salud ";
break;
case 3: cout<<"Hoy vas a tener mucha suerte";
break;
case 4: cout<<"Tu color de suerte hoy es el verde";
break;
case 5: cout<<"Piensa antes de hablar";
break;
default: cout<<"Es un buen dia para hacer negocios";}

cout<<endl<<"Gracias por tu consulta";


getch ();

8
Algoritmos y Programación

Ejercicio 4

A. ANALISIS DEL PROBLEMA

Definición del problema

Una empresa desea incrementar los salarios de sus trabajadores de la siguiente manera:

Monto del salario actual Porcentaje de incremento


Menor o igual a 1500 soles 20%
De 1501 a 2000 soles 15%
De 2001 a 3000 soles 10%
De 3001 soles a más 5%
Especificaciones de entrada Especificaciones de salida

Proceso
sueldo Nuevo sueldo
Aumentar el
porcentaje del
suelto deacuerdo al
intervalo

Su nuevo salario con el


Ingrese su salario actual…….. incremento será de:…………….

Variables o constantes Variables


Memoria

Salario Salario
(float) Nuevo salario
Nuevo (float)
salario
9
Algoritmos y Programación

ALGORITMO
#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
float Salario, NSalario;
int Rango;

ESCRIBIR ("Ingrese su salario actual: ");


LEER Salario;

if(Salario>=1)
if(Salario<=1500)
Rango = 1;
else
if(Salario>=1501 && Salario<=2000)
Rango = 2;
else
if(Salario>=2001 && Salario<=3000)
Rango = 3;
else
if(Salario>=3001)
Rango = 4;
else
ESCRIBIR ("El salario no es valido");

switch(Rango)
{
case 1:
NSalario = Salario*1.2;
break;
case 2:
NSalario = Salario*1.15;
break;
case 3:
NSalario = Salario*1.1;
break;
case 4:
NSalario = Salario*1.05;
break;
}
if(Rango>=1 && Rango<=4)
ESCRIBIR("El nuevo salario con el incremento ser\xA0 de: “,NSalario);

B. CODIGO

10
Algoritmos y Programación

Ejercicio 5

D. ANALISIS DEL PROBLEMA

Definición del problema

ENCUENTRO DEPORTIVO

Se desea que un programa muestre la tabla de posiciones de un campeonato de futbol


donde participan 3 equipos A; B; C . y determine el equipo GANADOR.

Se consideran 3 encuentros deportivos:


Encuentro Equipo A vs Equipo B

Encuentro Equipo A vs Equipo C

Encuentro Equipo B vs Equipo C

Para determinar el equipo ganador se considera el Puntaje Final, en caso de existir el


mismo puntaje final máximo en 2 ó más equipos se considerará a todos los equipos
ganadores con el puntaje mayor empatado.

Se considera:
3 puntos por partido ganado
1 punto por partido empatado
0 puntos por partido perdido

La tabla de posiciones será de la siguiente manera:

Equipo PJ PG PE PP Puntaje Final


A
B
C

Donde:
PJ: PARTIDOS JUGADOS
PG: PARTIDOS GANADOS
PE: PARTIDOS EMPATADOS
PP: PARTIDOS PERDIDOS

11
Algoritmos y Programación

Especificaciones de entrada Especificaciones de salida

Equipo A PROCESO Ganador


Determinar al Tabla de posición
ganador , respecto
al puntaje y
Equipo B
mostrar la tabla de
pocisiones

Equipo C

Encuentro Equipo A vs Equipo B Gano el equipo (A;B;C): ____


Goles equipo A: ….. Gano el equipo(A;B;C):______
Goles equipo B: ….. Gano el equipo (A;B;C):_____

El ganador es(A;B;C):_______
Encuentro Equipo A vs Equipo C
Goles equipo A: ….. Cuadro de pocisiones
Goles equipo C: …..

Encuentro Equipo B vs Equipo C


Goles equipo B: …..
Goles equipo C: …..

Variables
Int
Memoria
PtjeA=0
PtjeB=0
Variables o constantes GoLA:
PtjeC=0
GolB:
GolC: Ganador
PtjeA :0 ganA=0
PtjeB:0 ganB=0
golA ( int) ganC=0
PtjeC:0
PA:0 PEA=0
golB (int ) PB:0 PEB=0
PC:0 PEC=0
ganA:0 PPA=0
golC (int) ganB:0
PPB=0
ganC:0
PPC=0

12
Algoritmos y Programación

E. ALGORITMO

#include <conio.h> ESCRIBIR ("Encuentro: Equipo A vs Equipo C") endl;


using namespace std; ESCRIBIR ("Goles equipo A: ") ; LEER GolA ;
ESCRIBIR ("Goles equipo C: ") ; LEER GolC;
int main() if(GolA>=0 && GolC>=0)
{ {
int GolA, GolB, GolC, PtjeA=0, PtjeB=0, PtjeC=0; ganador=1;
int ganador, ganA=0, ganB=0, ganC=0; if(GolC>=GolA)
int PEA=0, PEB=0, PEC=0, PPA=0, PPB=0, PPC=0; ganador=2;
if(GolA==GolC)
ganador=3;
ESCRIBIR ("Encuentro: Equipo A vs Equipo B")endl;
ESCRIBIR ("Goles equipo A: ") ; LEER GolA ; switch(ganador)
ESCRIBIR (“Goles equipo B: ") ; LEER GolB ; {
cout<<endl; case 1:
if(GolA>=0 && GolB>=0) PtjeA=PtjeA+3;
{ ganA=ganA+1;
ganador=1; PPC=PPC+1;
if(GolB>=GolA) ESCRIBIR ("Gana el equipo A")endl<<endl;
ganador=2; break;
if(GolA==GolB) case 2:
ganador=3; PtjeC=PtjeC+3;
ganC=ganC+1;
switch(ganador) PPA=PPA+1;
{ ESCRIBIR ("Gana el equipo C") endl<<endl;
case 1: break;
PtjeA=PtjeA+3; case 3:
ganA=ganA+1; PtjeA=PtjeA+1;
PPB=PPB+1; PtjeC=PtjeC+1;
ESCRIBIR ("Gana el equipo A”)endl<<endl; PEA=PEA+1;
break; PEC=PEC+1;
case 2: ESCRIBIR ("Es empate")endl<<endl;
PtjeB=PtjeB+3; break;
ganB=ganB+1; }
PPA=PPA+1; }
ESCRIBIR ("Gana el equipo B")endl<<endl; else
break; ESCRIBIR ("Los datos ingresados son falsos") endl<<endl;
case 3:
PtjeA=PtjeA+1; ESCRIBIR ("Encuentro: Equipo B vs Equipo C")endl;
PtjeB=PtjeB+1; ESCRIBIR ("Goles equipo B: "); LEER GolB;
PEA=PEA+1; ESCRIBIR ("Goles equipo C: ") ; LEER GolC;
PEB=PEB+1; if(GolB>=0 && GolC>=0)
ESCRIBIR ("Es empate")endl<<endl; {
break; ganador=1;
} if(GolC>=GolB)
} ganador=2;
else if(GolB==GolC)
ESCRIBIR ("Los datos ingresados son falsos")endl<<endl; ganador=3;

switch(ganador)
{
case 1:
PtjeB=PtjeB+3;
ganB=ganB+1;
PAG 1 PPC=PPC+1;
ESCRIBIR ( "Gana el equipo B" ) endl<<endl;
break;
case 2:
PtjeB=PtjeB+3;
ganC=ganC+1;
PPB=PPB+1;
ESCRIBIR ("Gana el equipo C") endl<<endl;
break;
case 3:
PtjeB=PtjeB+1;
PtjeC=PtjeC+1;
PEB=PEB+1;
PEC=PEC+1;
ESCRIBIR ("Es empate") endl<<endl;
break;
}
}
else
ESCRIBIR ( Los datos ingresados son falsos") endl<<endl;

ESCRIBIR " Equipo PJ PG PE PP Puntaje Final"<<endl;


ESCRIBIR " A 2 "<< ganA <<" "<< PEA <<" "<<PPA<<" "<<PtjeA<<endl;
ESCRIBIR " B 2 "<< ganB< <" "<< PEB < <" "<<PPB<<" "<<PtjeB<<endl;
ESCRIBIR " C 2 "<< ganC <<" "<< PEC <<" "<<PPC<<" "<<PtjeC<<endl;

PAG 2

13
Algoritmos y Programación

CODIGO
1 2

4
3

14

También podría gustarte