MetodologĂa de la ProgramaciĂłn
Ejercicios Manuel Alejandro Padilla Barrientos
Fecha de Entrega: 25 de noviembre de 2016
1
Índice Contenido Índice ............................................................................................................................................. 2 Tarea de AND y OR ........................................................................................................................ 3 Primer Parcial ................................................................................................................................ 5 1.
Edad ifs anidados............................................................................................................... 5
2.
Solicitar calificación con if anidado ................................................................................. 10
3.
Solicite dos números y cuál mayor – menor ................................................................... 15
4.
Semáforo if anidado ........................................................................................................ 24
5.
Semáforo con switch ....................................................................................................... 29
6.
Áreas cuadrado, rectángulo y triángulo con if anidado .................................................. 34
7.
Áreas cuadrado, rectángulo y triángulo con switch ........................................................ 43
8.
Calificaciones del kínder .................................................................................................. 52
9.
Estacionamiento entre semana y fines de semana......................................................... 59
Segundo Parcial ........................................................................................................................... 64 10.
Llamada por tiempo .................................................................................................... 64
11.
Reloj de Alemania, India y Australia ............................................................................ 70
12.
Tabla de multiplicar con FOR ascendente y descendente .......................................... 82
13.
2 edades y las promedie con FOR ............................................................................... 86
14.
Le calcule el IVA a 5 productos (medicamento, comestible, otro) FOR ..................... 89
15.
No. de coches, camiones y trailers .............................................................................. 93
16.
Caseta con FOR 1 ......................................................................................................... 99
17.
Caseta con FOR 2 ....................................................................................................... 104
18.
Temperatura de días con FOR ................................................................................... 108
19.
Longitudes con FOR ................................................................................................... 112
20.
Bebés con FOR........................................................................................................... 116
21.
Caseta de peaje con WHILE ....................................................................................... 120
22.
Calificación errores con DO-WHILE ........................................................................... 125
23.
Caja registradora de supermercado con DO-WHILE ................................................. 125
Tercer Parcial............................................................................................................................. 129 24.
Frutas con WHILE ...................................................................................................... 129
25.
Edades de tu familia con FOR y validar datos con DO-WHILE................................... 135
26.
Centro de verificación con WHILE ............................................................................. 138
27.
Centro de verificación con DO-WHILE....................................................................... 147
28.
Centro de verificación con FOR ................................................................................. 154 2
29.
Tu propio algoritmo de WHILE .................................................................................. 160
30.
Tu propio algoritmo de DO-WHILE............................................................................ 165
31.
Cajero Inicio............................................................................................................... 172
32.
Menú del Cajero ........................................................................................................ 178
33.
Retirar otra cantidad ................................................................................................. 196
34.
Inventario .................................................................................................................. 201
35.
Algoritmo PET ............................................................................................................ 215
Tarea de AND y OR
3
4
Primer Parcial 1. Edad ifs anidados Hacer un algoritmo que solicite la una edad, este devolverĂĄ si es mayor de edad (mayor de 18 y menor de 120), o si es menor de edad (de 0 a 17 aĂąos). Si no cumple ninguno de los 2 anteriores marcara error.
5
6
Usuario
Sistema
Declaraciรณn de variables
int edad
edad
"Escriba una edad"
edad>=18 y edad<=120
T
"La persona es mayor de edad"
F
edad>=0 y edad<=17
T
"La persona es menor de edad"
F "Dato Invรกlido"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication5 { class Program { static void Main(string[] args) {//Declaraciรณn de Variables int edad; string leer;
Console.WriteLine("Escriba una edad"); leer = Console.ReadLine(); edad = Convert.ToInt16(leer);
7
if (edad >= 18 & edad <= 120) Console.WriteLine("La persona es mayor de edad"); else if (edad >= 0 & edad <= 17) Console.WriteLine("La persona es menor de edad"); else Console.WriteLine("Dato Invรกlido");
Console.ReadKey(); } } }
PRUEBA DE ESCRITORIO
8
9
2. Solicitar calificación con if anidado Hacer un diagrama de actividades que solicite una calificación, el algoritmo debe determinar si es aprobado (7 es la mínima), reprobado o calificación inválida.
10
11
Usuario
Sistema
Declaración de Variables
int calificacion;
calificacion
"Por favor escriba la calificación"
calificacion>=7 y calificacion<=10
T
"Aprobado"
F
calificacion>=0 y calificacion<=6
T
"Reprobado"
F
"Calificación Inválida"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication4 { class Program { static void Main(string[] args) {//Declaración de Variables int calificacion; string leer;
Console.WriteLine("Por favor escriba la calificación"); leer = Console.ReadLine(); calificacion = Convert.ToInt16(leer);
12
if (calificacion >= 7 & calificacion <= 10) Console.WriteLine("Aprobado"); else if (calificacion >= 0 & calificacion <= 6) Console.WriteLine("Reprobado"); else Console.WriteLine("Calificaciรณn Invรกlida");
Console.ReadLine(); } } }
PRUEBA DE ESCRITORIO
13
14
3. Solicite dos números y cuál mayor – menor Realizar un algoritmo que solicite 2 números. Posteriormente el algoritmo mostrará cuál es el número mayor y cuál es el número menor. Y para cada número mostrar si es positivo o negativo.
15
16
17
18
Usuario
Sistema
int a, b ;
a
"Por favor escriba el primer número"
T
"Positivo"
a>0
F
T
"Neutro"
a=0
F "Negativo"
b
"Por favor escriba el segundo número"
T
b>0
"Positivo"
F T b=0
"Neutro"
F
"Negativo"
a>b T
"El número mayor es a y el menor es b"
F
a<b
T
"El número mayor es b y el menor es a"
F "Los números a y b son iguales"
19
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) {//Declaración de Variables int a, b; string leera, leerb;
Console.WriteLine("Por favor escriba el primer número"); leera = Console.ReadLine(); a = Convert.ToInt16(leera); if (a > 0) Console.WriteLine("Positivo"); else if (a == 0) Console.WriteLine("Neutro"); else Console.WriteLine("Negativo");
Console.WriteLine("Por favor escriba el segundo número");
leerb = Console.ReadLine(); b = Convert.ToInt16(leerb);
if (b > 0) Console.WriteLine("Positivo"); else if (b == 0) Console.WriteLine("Neutro");
20
else Console.WriteLine("Negativo");
if (a > b) Console.WriteLine("El número mayor es {0} y el menor es {1}", a , b); else if (a < b) Console.WriteLine("El número mayor es {0} y el menor es {1}", b,a); else Console.WriteLine("Los números {0} y {1} son iguales", a, b);
Console.ReadLine();
} } }
PRUEBA DE ESCRITORIO
21
22
23
4. Semรกforo if anidado Realizar el algoritmo que solicite el color de un semรกforo y de acuerdo al color mostrarรก lo siguiente: Rojo = Alto, Amarillo = Siga y Verde = Siga.
24
25
Usuario
Sistema
Declaración de Variables
int color;
color
"Por favor introduzca el número según el color. Rojo=1, Amarillo=2 y Verde=3"
T color==1
"Alto"
F
color==2 o color==3
T
"Siga"
F "Dato Inválido"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication11 { class Program { static void Main(string[] args) { //Declaración de variables int color; string leer;
Console.WriteLine("Por favor introduzca el número según el color. Rojo=1, Amarillo=2, Verde=3, Salir=4"); leer = Console.ReadLine(); color = Convert.ToInt16(leer);
switch (color)
26
{ case 1: Console.WriteLine("Alto"); break; case 2: Console.WriteLine("Preventiva"); break; case 3: Console.WriteLine("Siga"); break; case 4: Console.WriteLine("Adios"); break; default: Console.WriteLine("Dato Invรกlido"); break; } //switch Console.ReadLine(); } } }
PRUEBA DE ESCRITORIO
27
28
5. Semรกforo con switch Realizar el algoritmo que solicite el color de un semรกforo y de acuerdo al color mostrarรก lo siguiente: Rojo = Alto, Amarillo = Siga y Verde = Siga.
29
Usuario
Sistema
Declaración de Variables
int color;
color
"Por favor indroduzca el número según el color. Rojo=1, Amarillo=2, Verde=3 y Salir=4
color
color==1 "Alto"
color==2 o color==3
color==4
default "Dato Inválido"
"Hasta Luego" "Siga"
30
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication7 { class Program { static void Main(string[] args) { //Declaración de variables int color; string leer;
Console.WriteLine("Por favor introduzca el número según el color. Rojo=1, Amarillo=2, Verde=3, Salir=4"); leer = Console.ReadLine(); color = Convert.ToInt16(leer);
switch (color) { case 1: Console.WriteLine("Alto"); break; case 2: Console.WriteLine("Preventiva"); break; case 3: Console.WriteLine("Siga"); break; case 4: Console.WriteLine("Adios"); break; default: Console.WriteLine("Dato Inválido"); break; } //switch Console.ReadLine();
31
} } }
PRUEBA DE ESCRITORIO
32
33
6. Áreas cuadrado, rectángulo y triángulo con if anidado Hacer un algoritmo que muestre el siguiente menú: 1. 2. 3. 4.
Cuadrado Rectángulo Triángulo Salir
34
35
Usuario
Sistema
Declaración de Variables
int figura, ladoA, ladoB, result
figura
"Por favor escriba el número de la figura de la que desea calcular el área. Cuadrado=1, Rectángulo=2, Triángulo=3, Salir=4."
F
figura==1
F
figura==2
T
figura==3
F
figura==4
F
"Dato Inválido" T
T
"Hasta Luego" ladoA
"Escriba la medida del lado sin unidad de medida"
F
ladoA>0
T "Escriba la medida del lado sin unidad de medición"
"Dato Inválido" "Escriba la medida de la base sin unidad de medida"
T result= (ladoA*ladoA) "result"
ladoA
F
ladoA>0
"Dato Inválido"
T ladoB
"Escriba la medida de la altura"
ladoB>0
F
T result= (ladoA*ladoB)
"result"
ladoA
ladoA>0
ladoB
"Dato Inválido"
"Escriba la medida de la altura"
ladoB>0
result= (ladoA*ladoB)/2
"Dato Inválido"
"result"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication15
36
{ class Program { static void Main(string[] args) {//Declaración de Variables int figura, ladoA, ladoB, result; string leeFigura, leeLadoA, leeLadoB;
Console.WriteLine("Por favor escriba el número de la figura de la que desea calcular el área. Cuadrado=1, Rectángulo=2, Triángulo=3, Salir=4");
leeFigura = Console.ReadLine(); figura = Convert.ToInt16(leeFigura);
if (figura == 1) { Console.WriteLine("Por favor escriba la medida del lado, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0) { result = (ladoA * ladoA); Console.WriteLine("El área del cuadrado es {0}", result); } else Console.WriteLine("Dato Inválido"); } else { if (figura == 2) { Console.WriteLine("Por favor escriba la medida de la base, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0)
37
{ Console.WriteLine("Por favor escriba la medida de la altura"); leeLadoB = Console.ReadLine(); ladoB = Convert.ToInt16(leeLadoB); if (ladoB > 0) { result = (ladoA * ladoB); Console.WriteLine("El área del rectángulo es {0}", result); } else Console.WriteLine("Dato Inválido");
} else//del ladoA cuadrado Console.WriteLine("Dato Inválido");
}//del if rectángulo else { //Del if rectángulo if (figura == 3) { Console.WriteLine("Por favor escriba la medida de la base, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0) { Console.WriteLine("Por favor escriba la medida de la altura"); leeLadoB = Console.ReadLine(); ladoB = Convert.ToInt16(leeLadoB); if (ladoB > 0) { result = ((ladoA * ladoB) / 2); Console.WriteLine("El área del triángulo es {0}", result);
38
} else Console.WriteLine("Dato Inválido"); } else// de lado a>0 triángulo Console.WriteLine("Dato Inválido"); }//Del if triángulo
else {//del if triángulo if (figura == 4) Console.WriteLine("Hasta Luego"); else Console.WriteLine("Dato Inválido"); }//del else triángulo
}//del if rectángulo }//primer else
Console.ReadLine(); } } }
PRUEBA DE ESCRITORIO
39
40
41
42
7. Áreas cuadrado, rectángulo y triángulo con switch Hacer un algoritmo que muestre el siguiente menú: 1. 2. 3. 4.
Cuadrado Rectángulo Triángulo Salir
43
44
Usuario
Sistema
Declaración de Variables
int figura, ladoA, ladoB, result
figura
"Por favor escriba el número de la figura de la que desea calcular el área. Cuadrado=1, Rectángulo=2, Triángulo=3, Salir=4"
figura
figura==2
figura==1 ladoA
"Por favor escriba la medida del lado" F
ladoA>0
"Por favor escriba la medida de la base"
default
figura==4 figura==3
"Hasta Luego"
"Dato Inválido"
"Por favor escriba la medida de la base"
"Dato Inválido"
T result=ladoA*ladoA
"result"
ladoA
F
"Dato Inválido"
ladoA>0 T ladoB
"Por favor escriba la medida de la altura" F
ladoB>0
"Dato Inválido"
T result=ladoA*ladoB
"result"
ladoA F
"Dato Inválido"
ladoA>0 T ladoB
"Por favor escriba la medida de la altura"
ladoB>0
F
"Dato Inválido"
T result= (ladoA*ladoB)/2
"result"
using System;
45
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication3 { class Program { static void Main(string[] args) {//Declaración de Variables int figura, ladoA, ladoB, result; string leeFigura, leeLadoA, leeLadoB;
Console.WriteLine("Por favor escriba el número de la figura de la que desea calcular el área. Cuadrado=1, Rectángulo=2, Triángulo=3, Salir=4");
leeFigura = Console.ReadLine(); figura = Convert.ToInt16(leeFigura);
switch (figura) { case 1: Console.WriteLine("Por favor escriba la medida del lado, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0) { result = (ladoA * ladoA); Console.WriteLine("El área del cuadrado es {0}", result); } else Console.WriteLine("Dato Inválido"); break;
46
case 2: Console.WriteLine("Por favor escriba la medida de la base, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0) { Console.WriteLine("Por favor escriba la medida de la altura"); leeLadoB = Console.ReadLine(); ladoB = Convert.ToInt16(leeLadoB); if (ladoB > 0) { result = (ladoA * ladoB); Console.WriteLine("El รกrea del rectรกngulo es {0}", result); } else Console.WriteLine("Dato Invรกlido");
} else Console.WriteLine("Dato Invรกlido"); break;
case 3: Console.WriteLine("Por favor escriba la medida de la base, sin unidad de medida"); leeLadoA = Console.ReadLine(); ladoA = Convert.ToInt16(leeLadoA); if (ladoA > 0) { Console.WriteLine("Por favor escriba la medida de la altura"); leeLadoB = Console.ReadLine(); ladoB = Convert.ToInt16(leeLadoB); if (ladoB > 0) {
47
result = ((ladoA * ladoB) / 2); Console.WriteLine("El รกrea del triรกngulo es {0}", result); } else Console.WriteLine("Dato Invรกlido"); } else Console.WriteLine("Dato Invรกlido"); break;
case 4: Console.WriteLine("Hasta Luego"); break;
default:
Console.WriteLine("Dato Invรกlido");
break; }
Console.ReadLine();
} } }
PRUEBA DE ESCRITORIO
48
49
50
51
8. Calificaciones del kínder Hacer un algoritmo que solicite 3 calificaciones de un alumno de Kinder. 1. Español 2. Artística 3. Deportes Validar que se ingrese una calificación válida. Convertir la calificación a el número de acuerdo a: A=10, B=8.5, C=6.5 y D=5. Mostrar las 3 calificaciones en número y finalmente mostrar el promedio.
52
53
54
Usuario
Sistema
double esp, art, dep, promedio; string espanol, arte, deporte,lee; "Recuerde que 10=A, 8.5=B, 6.5=C, 5=D" espanol
"Indroduzca la calificación de Español"
espanol
espanol=="A" esp=10
espanol=="B" espanol=="C"
esp=8.5
esp=6.5
arte
default
espanol=="D" esp=5
"Dato Inválido"
"Introduzca la calificación de Artísticas"
arte
arte=="A" art=10
default arte=="C"
arte=="B" art=8.5
deporte
arte=="D"
art=6.5
"Dato Inválido"
art=5
"Indroduzca la calificación de Deportes"
deporte
dep=10
deporte=="A" deporte=="B" dep=8.5
deporte=="C"
dep=6.5
default deporte=="D"
"Dato Inválido"
dep=5
"Calificaciones"
"Español-{0}",esp "Artísticas-{0}",art "Deportes-{0}",dep promedio= (esp+art+dep)
"Promedio-{0}",promedio
using System;
55
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication9 { class Program { static void Main(string[] args) { double esp, art, dep, promedio; string espanol, arte, deporte;
Console.WriteLine("Recuerde que 10=A, 8.5=B, 6.5=C, 5=D. En Mayúsculas."); Console.WriteLine("Indroduzca la calificación de Español");
espanol = Console.ReadLine(); switch (espanol) { case "A": esp = 10; break; case "B": esp = 8.5; break; case "C": esp = 6.5; break; case "D": esp = 5; break; default: Console.WriteLine("Dato Inválido. Reinicie el programa"); esp = 0; break; } Console.WriteLine("Introduzca la calificación de Artísticas"); arte = Console.ReadLine(); switch (arte) {
56
case "A": art = 10; break; case "B": art = 8.5; break; case "C": art = 6.5; break; case "D": art = 5; break; default: Console.WriteLine("Dato Inválido. Reinicie el programa"); art = 0; break; } Console.WriteLine("Introduzca la calificación de Deportes"); deporte = Console.ReadLine(); switch (deporte) { case "A": dep = 10; break; case "B": dep = 8.5; break; case "C": dep = 6.5; break; case "D": dep = 5; break; default: Console.WriteLine("Dato Inválido. Reinicie el programa"); dep = 0; break; }
Console.WriteLine("Calificaciones"); Console.WriteLine("Español-- {0}", esp); Console.WriteLine("Artísticas-- {0}", art); Console.WriteLine("Deportes-- {0}", dep);
promedio = ((esp + art + dep) / 3); Console.WriteLine("Promedio-- {0}", promedio);
57
Console.ReadLine(); } } }
PRUEBA DE ESCRITORIO
58
9. Estacionamiento entre semana y fines de semana Hacer un algoritmo que calcule el cobro de un estacionamiento. De lunes a viernes las primeras 2 horas cuentan $20 y a partir de la tercera cada hora cuesta 10 pesos mรกs. Los sรกbados y los domingos cada hora cuesta $5.
59
Usuario
Sistema
Declaración de Variables
int dia, tiempo, cobro, mas; string leeDia, leeTiempo;
"Escriba el número según el día" dia
"1.Lunes 2. Martes 3.Miércoles 4.Jueves 5.Viernes 6.Sábado 7.Domingo 8.Salir"
dia>0 y dia<9
F
"Dato Inválido"
T tiempo
"Escriba el número de horas a cobrar"
tiempo<=0
T
"Dato Inválido"
F
dia==6 o dia==7
T cobro= (tiempo*5)
F
dia>0 y dia<6
F
"Hasta Luego"
T tiempo==1 o tiempo==2
T
"Cobre 20 pesos"
F "Cobre {0} pesos",cobro
mas= ((tiempo-2)*10) cobro= (20+mas)
"Cobre {0} pesos",cobro
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication13
60
{ class Program { static void Main(string[] args) {//Declaración de variables int dia, tiempo, cobro, mas; string leeDia, leeTiempo;
Console.WriteLine("Escriba el número segun el día"); 6. Sábado
Console.WriteLine("1.Lunes 7.Domingo 8.Salir");
2.Martes
3.Miércoles
4.Jueves
5.Viernes
leeDia = Console.ReadLine(); dia = Convert.ToInt16(leeDia);
if (dia > 0 & dia < 8) { Console.WriteLine("Escriba el número de horas a cobrar"); leeTiempo = Console.ReadLine(); tiempo = Convert.ToInt16(leeTiempo); if (tiempo <= 0) Console.WriteLine("Dato Inválido"); else { if (dia == 6 || dia == 7) { cobro = (tiempo * 5); Console.WriteLine("Cobre {0} pesos", cobro); } else { if (dia > 0 & dia < 6) { if (tiempo == 1 || tiempo == 2) Console.WriteLine("Cobre 20 pesos"); else {
61
mas = ((tiempo - 2) * 10); cobro = (20 + mas); Console.WriteLine("Cobre {0} pesos", cobro); } } else Console.WriteLine("Hasta Luego"); } } } else if (dia == 8) Console.WriteLine("Hasta Luego"); else Console.WriteLine("Dato Invรกlido");
Console.ReadLine(); } } }
PRUEBA DE ESCRITORIO
62
63
Segundo Parcial 10. Llamada por tiempo Hacer un algoritmo que calcule cuanto se debe cobrar segĂşn la duraciĂłn de una llamada.
64
65
Usuario
Sistema
Declaraciรณn de Variables
int min, seg, cobro; string lee;
min
"Escriba los minutos a cobrar sin segundos"
F
min>0 y min<60
"Dato Invรกlido"
T seg
"Escriba los segundos a cobrar"
seg>=0 y seg<=59
F
"Dato Invรกlido"
T min>=0 y T min<=4
cobro= (min*0.5)
"Cobre {0} pesos",cobro
F
seg==0
T
cobro=2.5+(min -5)
"Cobre {0} pesos",cobro
F cobro=2.5+(min -5)+1
"Cobre {0} pesos",cobro
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication14 { class Program { static void Main(string[] args) {//Declaraciรณn de Variables int min, seg ; string leeMin, leeSeg; double cobro;
Console.WriteLine("Escriba los minutos a cobrar, sin segundos");
66
leeMin=Console.ReadLine(); min = Convert.ToInt16(leeMin);
if (min >= 0 & min <= 60) { Console.WriteLine("Escriba los segundos a cobrar"); leeSeg = Console.ReadLine(); seg = Convert.ToInt16(leeSeg);
if (seg >= 0 & seg <= 59) { if (min >= 0 & min <= 4) { cobro = (min*0.5); Console.WriteLine("Cobre {0} pesos",cobro); } else { if (seg == 0) { cobro = (2.5 + (min - 5)); Console.WriteLine("Cobre {0} pesos", cobro); } else { cobro = (2.5 + (min - 5) + 1); Console.WriteLine("Cobre {0} pesos",cobro); } }
} else { Console.WriteLine("Dato Invรกlido"); } } else { Console.WriteLine("Dato Invรกlido"); }
Console.ReadKey(); }
67
} }
PRUEBA DE ESCRITORIO
68
69
11. Reloj de Alemania, India y Australia Hacer un algoritmo que realice lo siguiente: La hora de Alemania es la hora de MĂŠxico +8 horas, la de la India +13 horas y la de Australia +18 horas.
70
71
72
Usuario
Sistema
int hr, min, pais, newHr; string lee;
"Bienvenido al Convertidor de Hora Mundial" hr
"Primero introduzca la hora, sin minutos, en México, en el formato de 24 horas (de 00 a 23)"
T
"Hora Inválida. Reinicie el programa"
hr<0 o hr>23 F min
"Ahora escriba los minutos"
min<0 o min>59
T
"Minutos Inválidos. Reinicie el programa" F
pais
"Escriba 1 para ver la hora de Alemania, 2 para la de la India, 3 para la de Australia y 4 si desea Salir"
pais
"Dato Inválido" hr>=16
"Hasta Luego" hr>=11
newHr=(hr+8)
newHr=(hr+8)24
"En Alemania son las {0}:{1}",newHr,min
hr>=6
newHr=(hr+13)
newHr=(hr +13)-24
"En la India son las {0}:{1}"newHr, min
newHr=(hr+18)
newHr=(hr +18)-24
"En Australia son las {0}:{1}"newHr, min
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
73
namespace ConsoleApplication15 { class Program { static void Main(string[] args) {//Declaración de Variables int hr, min, pais, newHr; string leeHr, leeMin, leePais;
Console.WriteLine("Bienvenido al Convertidor Mundial"); Console.WriteLine("Primero indroduzca la hora, sin minutos, en México, en el formato de 24 horas (de 0 horas a 23 horas)");
leeHr= Console.ReadLine(); hr = Convert.ToInt16(leeHr); if (hr < 0 || hr > 23) Console.WriteLine("Hora Inválida. Reinicie el programa"); else { Console.WriteLine("Ahora escriba los minutos"); leeMin = Console.ReadLine(); min = Convert.ToInt16(leeMin); if (min < 0 || min > 59) Console.WriteLine("Minutos Inválidos. Reinicie el programa"); else { Console.WriteLine("Escriba 1 para ver la hora de Alemania, 2 para ver la de la India, 3 para la de Australia y 4 si desea Salir"); leePais = Console.ReadLine(); pais = Convert.ToInt16(leePais);
switch (pais) {case 1: if (hr >= 16) { newHr = ((hr + 8) - 24); Console.WriteLine("En Alemania son las {0}:{1}", newHr, min); } else
74
{ newHr = (hr + 8); Console.WriteLine("En Alemania son las {0}:{1}", newHr, min); } break; case 2: if (hr >= 11) { newHr = ((hr + 13) - 24); Console.WriteLine("En la India son las {0}:{1}", newHr, min); } else { newHr = (hr + 13); Console.WriteLine("En la India son las {0}:{1}", newHr, min); } break; case 3: if (hr >= 6) { newHr = ((hr + 18) - 24); Console.WriteLine("En Australia son las {0}:{1}", newHr, min); } else { newHr = (hr + 18); Console.WriteLine("En Australia son las {0}:{1}", newHr, min); } break; case 4: Console.WriteLine("Hasta Luego"); break; default: Console.WriteLine("Dato Invรกlido"); break;
75
} } } Console.ReadKey(); } } }
PRUEBA DE ESCRITORIO
76
77
78
79
80
81
12. Tabla de multiplicar con FOR ascendente y descendente Hacer un algoritmo que imprima la tabla de multiplicar del 2 empezando por el 0 y terminando en el 20
82
83
Usuario
Sistema
int i=0;
F
i<=20 T
"2x{0}={1}",i, (2*i)
i++
Usuario
Sistema
int i=20;
F
i<=0 T
"2x{0}={1}",i, (2*i)
i- -
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
84
namespace ConsoleApplication16 { class Program { static void Main(string[] args) { int i;
for (i = 0; i <= 4; i++) Console.WriteLine("Alex {0}",i); Console.WriteLine("Entra 2do");
for (i = 4; i >= 0; i--) Console.WriteLine("Alex {0}", i); Console.WriteLine("Entra 3ro");
for (i = 0; i <= 20; i++) Console.WriteLine("2x{0}={1}",i,(i*2)); Console.WriteLine("Entra 4to");
for (i = 20; i >= 0; i--) Console.WriteLine("2x{0}={1}", i, (i * 2));
Console.ReadKey();
} } }
PRUEBA DE ESCRITORIO
85
13. 2 edades y las promedie con FOR Hacer un algoritmo que solicite 5 edades vรกlidas (0-120), en caso de ser invรกlidas no se toman en cuentan para calcular el promedio.
86
Usuario
Sistema
int edad, promedio, i=0, vez=0, suma=0; string lee;
i<=4
edad
promedio=suma/ vez
"El promedio es {0}", promedio
"{0} vez -- Escribe una edad vรกlida", i
edad<=0 y edad>=120
i++
suma=0+edad +suma
vez=vez+1
using System; using System.Collections.Generic; using System.Linq;
87
using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication17 { class Program { static void Main(string[] args) { int edad, promedio, i, vez, suma; string lee;
for (i = 1, suma = 0, vez = 0; i <= 5; i++) { Console.WriteLine("{0} vez - Escriba una edad vรกlida", i); lee = Console.ReadLine(); edad = Convert.ToInt16(lee); if (edad >= 0 & edad <= 120) { suma = suma + edad; vez = vez + 1; } } promedio = suma / vez; Console.WriteLine("El promedio es {0}", promedio); Console.ReadKey(); } } }
88
14. Le calcule el IVA a 5 productos (medicamento, comestible, otro) FOR Hacer un algoritmo que solicita los precios de 5 productos, al principio del algoritmo muestra los tipos de productos que puede comprar. 1. Medicamentos 5% de IVA 2. Comestibles sin IVA 3. Otros 16% de IVA 89
Es importante que el precio que se ingrese es sin IVA, usando un FOR se sumarĂĄ el precio total a pagar y dependiendo del tipo de producto aumentara el IVA correspondiente y tambiĂŠn dentro del FOR se solicita el tipo del producto que es.
90
Usuario
Sistema
double precio, preciva, suma=0; int producto, i=1; string lee;
"Bienvenido, recuerde que 1 para medicamento, 2 para comestibles y 3 para otro producto"
F
i<=4
"Compra total = {0}", suma
T product
"Producto {0} - Ingrese el tipo de producto", i
precio
"Ingrese el precio, sin IVA"
product
product==1 preciva=precio +(precio*0.05) suma= preciva +suma
product==2 suma=precio +suma
product==3
default
preciva= precio +(precio*0.16)
"Invรกlido"
suma=preciva +suma
i++
using System; using System.Collections.Generic;
91
using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication21 { class Program { static void Main(string[] args) { double precio, preciva, suma; int producto, i; string lee;
Console.WriteLine("Bienvenido, recuerde que 1 para medicamentos, 2 para comestibles y 3 para otro producto"); for(i=1,suma=0;i<=5;i++) { Console.WriteLine("Producto {0} - Ingrese el tipo de producto", i); lee = Console.ReadLine(); producto = Convert.ToInt16(lee); Console.WriteLine("Ingrese el precio, sin IVA"); lee = Console.ReadLine(); precio = Convert.ToInt16(lee); switch (producto) { case 1: preciva = precio + (precio * 0.05); suma = suma + preciva; break; case 2: suma = suma + precio; break; case 3: preciva = precio + (precio * 0.16); suma = suma + preciva; break;
92
default: Console.WriteLine("Inválido"); break; } }
Console.WriteLine("Compra Total = ${0}", suma); Console.ReadKey(); } } }
15. No. de coches, camiones y trailers Hacer un algoritmo que solicite el número de automóviles, el número de autobuses y el número de trailers que crucen por una caseta de peaje, el precio del cobro es el siguiente: automóviles $50, autobuses $125 y trailers $300, el algoritmo solo puede recibir cantidades enteras mayores a 0, en caso de detectar un error, cobrará la cuota máxima de $300. La salida del algoritmo es 93
mostrar lo siguiente: NĂşmero de coches y total de cobro, total de autobuses y total de cobro y total de trailers y el total de cobro, el nĂşmero total de errores y total de cobro y total general.
94
95
Usuario
Sistema
int noA, noC, noT, cobA, cobC, cobT, noE=0, cobE=0; string lee;
noA
"¿Cuántos automóviles pasaron por la caseta?"
F
noA>0
noE++
cobE=cobE +300
noA=0
cobA=0
T cobA=noA*50
noC
"¿Cuántos autobuses pasaron por la caseta?"
F noC>0
noE++
cobE=cobE +300
noC=0
cobC=0
T cobC=noC*125
noT
"¿Cuántos trailers pasaron por la caseta?" F noT>0
noE++
cobE=cobE +300
noT=0
cobT=0
T cobT=noT*300
"Total de Automóviles = {0}", noA
"Total de cobro de Automóviles = {0}", cobA
"Total de Autobuses = {0}", noC
"Total de Errores = {0}", noE
"Total de cobro por Trailers = {0}",cobT
"Total de cobro por Errores = {0}", cobE
"Cobro Total = {0}", (cobA +cobC+cobT+cobE)
"Total de cobro de Autobuses = {0}", cobC
"Total de Trailers = {0}", noT
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
96
namespace ConsoleApplication6 { class Program { static void Main(string[] args) { int noA, noC, noT, cobA, cobC, cobT, noE = 0, cobE = 0; string lee;
Console.WriteLine("¿Cuántos automóviles pasaron por la caseta?"); lee = Console.ReadLine(); noA = Convert.ToInt16(lee); if (noA > 0) { cobA = (noA * 50); } else { noE = (noE + 1); cobE = (cobE + 300); noA = 0; cobA = 0; }
Console.WriteLine("¿Cuántos autobuses pasaron por la caseta?"); lee = Console.ReadLine(); noC= Convert.ToInt16(lee); if (noC > 0) { cobC= (noC * 125); } else { noE = (noE + 1); cobE = (cobE + 300); noC = 0; cobC = 0; }
Console.WriteLine("¿Cuántos trailers pasaron por la caseta?");
97
lee = Console.ReadLine(); noT= Convert.ToInt16(lee); if (noT > 0) { cobT = (noT * 300); } else { noE = (noE + 1); cobE = (cobE + 300); noT = 0; cobT = 0; }
Console.WriteLine("Total de automรณviles = {0}", noA); Console.WriteLine("Total de cobro por automรณviles = ${0}", cobA); Console.WriteLine("Total de autobuses = {0}", noC); Console.WriteLine("Total de cobro por autobuses = ${0}", cobC); Console.WriteLine("Total de trailers = {0}", noT); Console.WriteLine("Total de cobro por trailers =${0}", cobT); Console.WriteLine("Total de errores = {0}", noE); Console.WriteLine("Total de cobro por errores = ${0}", cobE); Console.WriteLine("Cobro total = ${0}", (cobA + cobC + cobT + cobE));
Console.ReadKey(); } } }
98
16. Caseta con FOR 1 Hacer un algoritmo que pida cuĂĄntas veces pasaron vehĂculos que crucen por una caseta de peaje, el precio por auto es de $50, autobuses $125, trailers $300, en caso de detectar un error cobrarĂĄ $300. La salida del algoritmo debe mostrar total de autos y su cobro, total de autobuses y su cobro, total de trailers y su cobro, total de errores y su cobro, y el cobro total.
99
100
Usuario
Sistema
int i=1, vehiculo, cobA=0, vuelta, cobC=0, cobT=0, cobE=0, noA=0, noC=0, noT=0, noE=0; string lee;
vuelta
"¿Cuántos vehículos (autos, autobuses, trailers) pasaron?"
F
"Total de Autos = {0}",noA
i<=vuelta
"Cobro de Autos = {0}",cobA
"Total de Autobuses = {0}",noC
"Cobro de Autobuses = {0}",cobC
T vehiculo
"¿Qué vehículo fue? 1.Automóvil 2.Autobus 3.Trailer"
"Total de Trailers = {0}",noT
"Cobro de Trailers = {0}",cobT
vehiculo
"Total de Errores = {0}",noE vehiculo==1 cobA=cobA+50
noA++
vehiculo==2 cobC=cobC +125
vehiculo==3 default cobT=cobT +300
cobE=cobE +300
noC++
noT++
noE++
"Cobro Total de Errores = {0}",cobE
"Cobro Total = {0}", cobA +cobC+cobT+cobE
i++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication19 { class Program { static void Main(string[] args) { int i, vehiculo, cobA, vuelta, cobC, cobT, cobE, noA, noC, noT, noE; string lee;
101
Console.WriteLine("¿Cuántos vehículos (autos, autobuses, trailers) pasaron?"); lee = Console.ReadLine(); vuelta = Convert.ToInt16(lee); for (i = 1, cobA = 0, cobC = 0, cobE = 0, cobT = 0, noA = 0, noC = 0, noE = 0, noT = 0; i <= vuelta; i++) { Console.WriteLine("¿Qué vehículo fue? 1.Automóvil
2.Autobus
3.Trailer"); lee = Console.ReadLine(); vehiculo = Convert.ToInt16(lee); switch (vehiculo) { case 1: cobA = (cobA + 50); noA = (noA + 1); break; case 2: cobC = (cobC + 125); noC = (noC + 1); break; case 3: cobT = (cobT + 300); noT = (noT + 1); break; default: cobE = (cobE + 300); noE = (noE + 1); break; } }
Console.WriteLine("Total de Automóviles = {0}",noA); Console.WriteLine("Cobro de Automóviles = ${0}",cobA); Console.WriteLine("Total de Autobuses = {0}", noC); Console.WriteLine("Cobro de Autobues = ${0}", cobC); Console.WriteLine("Total de Trailers = {0}", noT); Console.WriteLine("Cobro de Trailers = ${0}", cobT); Console.WriteLine("Total de Errores = {0}", noE); Console.WriteLine("Cobro de Errores = ${0}", cobE);
102
Console.WriteLine("Total de VehĂculos en General sin Errores = {0}", (noA+noC+noT)); Console.WriteLine("Cobro Total = ${0}", (cobA+cobC+cobE+cobT));
Console.ReadKey(); } } }
103
17. Caseta con FOR 2 Hacer un algoritmo que solicite al usuario el número de transportes que cruzaron la caseta de peaje, solicitar el tipo de transporte que puede ser: Auto $50, Autobús $125, Tráiler $300. Es importante que el usuario no se equivocará. Determinar el número de transportes de cada uno, el monto de cada uno y totales generales.
104
105
Usuario
Sistema
int i=1, vehiculo, cobA=0, vuelta, cobC=0, cobT=0, noA=0, noC=0, noT=0; string lee;
vuelta
"¿Cuántos vehículos (autos, autobuses, trailers) pasaron?"
F
"Total de Autos = {0}",noA
i<=vuelta
"Cobro de Autos = {0}",cobA
"Total de Autobuses = {0}",noC
"Cobro de Autobuses = {0}",cobC
T vehiculo
"¿Qué vehículo fue? 1.Automóvil 2.Autobus 3.Trailer"
"Total de Trailers = {0}",noT
"Cobro de Trailers = {0}",cobT
vehiculo
vehiculo==1
vehiculo==2
cobA=cobA+50
cobC=cobC +125
noA++
noC++
vehiculo==3 cobT=cobT +300
"Cobro Total = {0}", cobA +cobC+cobT+cobE
noT++
i++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication22 { class Program { static void Main(string[] args) { int i, vehiculo, cobA, vueltas, cobC, cobT, noA, noC, noT; string lee;
Console.WriteLine("¿Cuántos vehículos pasaron por la caseta?"); lee = Console.ReadLine();
106
vueltas = Convert.ToInt16(lee); for (i = 1, cobA = 0, cobC = 0, cobT = 0, noA = 0, noC = 0, noT = 0; i <= vueltas; i++) { Console.WriteLine("¿Qué vehículo fue? 1.Automóvil
2.Autobus
3.Trailer"); lee = Console.ReadLine(); vehiculo = Convert.ToInt16(lee); switch (vehiculo) { case 1: cobA = (cobA + 50); noA = (noA+1); break; case 2: cobC = (cobC + 125); noC = (noC+1); break; case 3: cobT = (cobT + 300); noT = (noT+1); break; } }
Console.WriteLine("Total de Automóviles = {0}", noA); Console.WriteLine("Cobro de Automóviles = ${0}", cobA); Console.WriteLine("Total de Autobuses = {0}", noC); Console.WriteLine("Cobro de Autobues = ${0}", cobC); Console.WriteLine("Total de Trailers = {0}", noT); Console.WriteLine("Cobro de Trailers = ${0}", cobT);
Console.WriteLine("Total de Vehículos
= {0}", vueltas);
Console.WriteLine("Cobro Total = ${0}", (cobA + cobC + cobT));
Console.ReadKey(); } } }
107
18. Temperatura de días con FOR Hacer un algoritmo que solicite el número de días en los que solicitará la temperatura de dicho día, el algoritmo determinara cual es el día de mayor y menor temperatura.
108
109
Usuario
Sistema
int dias, tempM, tempm, i=1, temp; string lee; dias
"Escriba el número de días"
F
"Temperatura Mayor = {0}", tempM
i<=dias
"Temperatura Menor = {0}", tempm
T temp
"Escriba la temperatura del día {0}", i
T
i==1
tempM=temp
tempm=temp
i++
F T
tempM=temp
temp>tempM F
temp<tempm
T
tempm=temp
F
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication23 { class Program { static void Main(string[] args) { int dias, temp, tempM, tempm, i; string lee;
Console.WriteLine("Escriba el número de días");
110
lee = Console.ReadLine(); dias = Convert.ToInt16(lee);
for (i = 1, tempM=0, tempm=0; i <= dias; i++) { Console.WriteLine("Escriba la temperatura del dĂa {0}",i); lee=Console.ReadLine(); temp=Convert.ToInt16(lee);
if (i == 1) { tempM = temp; tempm = temp; }
else { if (temp > tempM) tempM = temp; else { if (temp < tempm) tempm = temp; } } }
Console.WriteLine("Temperatura Mayor = {0}", tempM); Console.WriteLine("Temperatura Menor = {0}",tempm); Console.ReadKey(); } } }
111
19. Longitudes con FOR Hacer un algoritmo que solicite el número de longitudes a calcular. Solo me ingresara el número entero y se sobre entiende que es en metros. Validar que sean más de 1 longitud, en caso contrario marcará error y termina. Al dar la longitud, mostrará inmediatamente su correspondencia en yardas y pies. Al 112
finalizar el for, mostrarĂĄ el promedio de las longitudes, tanto en metros, yardas y pies.
113
Usuario
Sistema
int num, m, yd, ft, sumM=0, sumY=0, sumF=0, i=1; string lee; num
"Escriba el número de longitudes a calcular"
num<=1
T
"Dato Inválido"
F F i<=num
"Promedio Metros = {0}", sumM/num
"Promedio Pies = {0}", sumF/num
"Promedio Yardas = {0}", sumY/num
T m
"¿Cuál es la {0} medida?",i
yd= m*1.094
sumY=sumY +yd
sumF=sumF+ft
ft=m*3.28084
sumM=sumM +m
i++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication9 { class Program { static void Main(string[] args) { double num, m, yd, ft, sumM, sumY, sumF, i; string lee;
114
Console.WriteLine("Escriba el número de logitudes a calcular"); lee = Console.ReadLine(); num = Convert.ToInt16(lee);
if (num <= 1) Console.WriteLine("Dato Inválido"); else { for (i = 1, sumF = 0, sumM = 0, sumY = 0; i <= num; i++) { Console.WriteLine("¿Cuál es la {0} medida?",i); lee = Console.ReadLine(); m = Convert.ToInt16(lee); sumM = (sumM + m); yd = (m * 1.094); sumY=(sumY+yd); ft = (m * 3.28084); sumF=(sumF+ft); }
Console.WriteLine("Promedio en Metros = {0}",(sumM/num)); Console.WriteLine("Promedio en Pies = {0}", (sumF / num)); Console.WriteLine("Promedio en Yardas = {0}", (sumY / num)); }
Console.ReadKey();
} } }
115
20. Bebés con FOR Hacer un algoritmo que solicite el número de bebés que llegaron a consulta. Solicita: sexo, tamaño y peso de cada bebé. Para solicitar el sexo, al usuario se le mostrará un menú, donde seleccione 0 si es niña y 1 si es niño, no validar este dato, el peso y el tamaño no se validarán. Al terminar el for el sistema mostrará: número de niños, número de niñas, peso promedio de niñas, peso promedio de niños, tamaño promedio de niños y tamaño promedio de niñas.
116
117
Usuario
Sistema
bool sex; int no, i=0, f=0, m=0; double peso, alto, sumPF=0, sumPM=0, sumAF=0, sumAM=0; string lee; no
"Ingrese el número de bebés"
"Promedio Peso Niña = {0} Promedio Altura Niña = {1} No. de Niñas = {2}", sumPF/f, sumAF/f, f
i<=no T sex
"Ingrese 0 si es niña y 1 si es niño"
peso
"Ingrese el peso"
alto
"Ingrese la altura"
sex==0
F
sumPM= sumPM+peso
"Promedio Peso Niño = {0} Promedio Altura Niño = {1} No. de Niños = {2}", sumPM/m, sumAM/m, m
sumAM= sumAM+alto
m++
i++
sumPF=sumPF +peso
sumAF=sumAF +alto f++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication10 { class Program { static void Main(string[] args)
118
{ int no, i, f, m, sex; double peso, alto, sumPF, sumPM, sumAF, sumAM; string lee;
Console.WriteLine("Ingrese el número de bebés"); lee = Console.ReadLine(); no = Convert.ToInt16(lee);
for (i = 1, f = 0, m = 0, sumAF = 0, sumAM = 0, sumPF = 0, sumPM = 0; i <= no; i++) { Console.WriteLine("Infante {0}, ingrese 0 si es Niña o 1 si es Niño",i);
lee = Console.ReadLine(); sex = Convert.ToInt16(lee); Console.WriteLine("Ingrese el peso"); lee = Console.ReadLine(); peso = Convert.ToDouble(lee); Console.WriteLine("Ingrese la altura"); lee = Console.ReadLine(); alto = Convert.ToDouble(lee); if (sex == 0) { sumPF = (sumPF + peso); sumAF = (sumAF + alto); f = (f + 1); } else { sumPM=(sumPM+peso); sumAM=(sumAM+alto); m = (m + 1); } }
119
Console.WriteLine("Promedio Peso Niña = {0}",(sumPF/f)); Console.WriteLine("Promedio Altura Niña = {0}", (sumAF / f)); Console.WriteLine("Número de Niñas = {0}", f); Console.WriteLine("Promedio Peso Niño = {0}", (sumPM / m)); Console.WriteLine("Promedio Altura Niño = {0}", (sumAM / m)); Console.WriteLine("Número de Niños = {0}", m); Console.ReadKey();
} } }
21. Caseta de peaje con WHILE Hacer un algoritmo que simule el funcionamiento de una caseta de peaje, auto=50, autobús=125 y tráiler=300, el algoritmo no permite datos erróneos.
120
121
Usuario
Sistema
int opc, au=0, ca=0, tra=0, vehi; string lee
opc
"¿Pasó vehículo? Si=1 No=2"
F
opc==1
"Total de Autos = {0}",au
"Cobro de Autos = {0}",au*50
T vehi
"Total de Camiones = {0}",ca "Cobro de Camiones = {0}",ca*125
"¿Qué vehículo fue?" 1=Auto, 2=Camión, 3=Trailer"
"Total de Trailers = {0}",tra vehi
vehi==1 au++
opc
"Cobro de trailers = {0}",tra*300 vehi==2 ca++
vehi==3
tra++
"Cobro total = {0}", (au +50)+(ca+125)+(tra+300)
"¿Pasó oto vehículo? Si=1 No=2"
using System; using System.Collections.Generic;
122
using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication26 { class Program { static void Main(string[] args) { int opc, au=0, ca=0, tra=0, vehi; string lee;
Console.WriteLine("¿Pasó un vehículo?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee);
while (opc == 1) { Console.WriteLine("¿Qué vehículo fue?"); Console.WriteLine("1=Auto 2=Camión 3=Trailer"); lee = Console.ReadLine(); vehi = Convert.ToInt16(lee); switch (vehi) { case 1: au = (au + 1); break; case 2: ca=(ca+1); break; case 3: tra = (tra + 1); break; } Console.WriteLine("¿Pasó otro vehículo?"); Console.WriteLine("Si=1
No=2");
123
lee=Console.ReadLine(); opc = Convert.ToInt16(lee); }
Console.WriteLine("Total de Autos = {0}",au); Console.WriteLine("Cobro de Autos = {0}", au*50); Console.WriteLine("Total de Camiones = {0}", ca); Console.WriteLine("Cobro de Camiones = {0}", ca * 125); Console.WriteLine("Total de Trailers = {0}", tra); Console.WriteLine("Cobro de Trailers = {0}", tra * 300); Console.WriteLine("Total de Cobro = {0}",((au*50)+(ca*125)+(tra*300))); Console.ReadKey(); } } }
124
22. Calificaciรณn errores con DO-WHILE 23. Caja registradora de supermercado con DO-WHILE Hacer un algoritmo para la caja registradora de un supermercado. Los tipos de producto son: Medicamentos-5%, Comestibles-0% y Otros-16%. Se ingresa el precio sin IVA. El algoritmo mostrarรก los totales por tipo de producto y el total global.
125
Usuario
Sistema
double med=0, com=0, otro=0, precio; int produ, opc; string lee; "¿Pasó Producto?" opc
"Si=1 No=2"
F
opc==1
"Total Medicinas = {0} Total Comestibles = {1} Total Otros = {2}",med, com, otro
"Cobro Total = {0}", (med+com+otro)
T "¿Qué tipo de producto fue?" produ "1. Medicamentos 2.Comestibles 3.Otros"
F
precio
T
"¿Cuánto cuesta?"
produ>0 y produ<4
produ
med= med +(precio*0.05)+precio
opc
com=com +precio
otro=otro +(precio*0.16)+precio
"¿Pasó otro producto? si=1 No=2"
using System; using System.Collections.Generic;
126
using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication27 { class Program { static void Main(string[] args) { double med = 0, com = 0, otro = 0, precio; int produ, opc; string lee;
Console.WriteLine("¿Pasó producto?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee);
while (opc == 1) { Console.WriteLine("¿Qué tipo de producto fue?"); Console.WriteLine("1=Medicamento,
2=Comestible,
3=Otro");
lee = Console.ReadLine(); produ = Convert.ToInt16(lee);
if (produ > 0 & produ < 4) { Console.WriteLine("¿Cuánto cuesta?"); lee = Console.ReadLine(); precio = Convert.ToDouble(lee);
switch (produ) { case 1: med = (med + (precio * 0.05)+precio); break;
127
case 2: com=(com+(precio)); break; case 3: otro=(otro+(precio*0.16)+precio); break; }
Console.WriteLine("ÂżPasĂł otro producto?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } else { opc = 1; } } Console.WriteLine("Total de Medicina = ${0}",med); Console.WriteLine("Total de Comestibles = ${0}", com); Console.WriteLine("Total de Otros = ${0}", otro); Console.WriteLine("Cobro Total = ${0}", (med+com+otro)); Console.ReadKey(); } } }
128
Tercer Parcial 24. Frutas con WHILE En una tiendita se vende coctel de frutas. 1 kg de jícama – 8 vasos - $10 el vaso 1 kg de sandía – 7.5 vasos - $11 el vaso 1 kg de piña – 10.5 vasos - $8.50 el vaso 1 kg de melón – 7 vasos - $9 el vaso Se desea saber el total de vasos que se pueden producir de acuerdo a los kg de frutas. El algoritmo mostrará los siguientes datos de cada fruta: Número de vasos a producir, monto total de los vasos si se vendieran y finalmente, de acuerdo a un costo constante, mostrará la utilidad de cada fruta. Utilidad = precio- costo. También los totales globales de costos, precios y utilidad. No se validarán errores.
129
130
131
Usuario
Sistema
double costKJic=20, costKSan=20, costKPin=20, costKMe=20, vaJic=0, vaSan=0, vaPin=0, vaMe=0, cosJ=0, cosS=0, cosP=0, cosM=0, kg; int opc, frut; string lee; "¿Compró fruta?" opc
"Si= 1 No=2"
opc==1 F
"Vasos a Producir de:"
"Jícama = {0} Sandía = {1} Piña = {2} Melón = {3}",vaJic, vaSan, vaPin, vaMe
"Monto:"
"Jícama={0} Sandía={1} Piña={2} Melón={3}", (vaJic*10), (vaSan*11), (vaPin*8.5), (vaMe*9)
"Utilidad:"
T "¿Qué fruta fue?" frut
"1. Jícama 2.Sandía 3.Piña 4.Melón
kg
"¿Cuántos kilos compró?"
"Sandía = {0}", (vaSan*11)-cosS
"Jícama = {0}", (vaJic*10)-cosJ
"Piña = {0}", (vaPin*8.5)-cosP
"Ganancia de Vasos = {0}", (vaJic*10)+(vaSan*11)+(vaPin*8.5)+(vaMe*9)
"Melón = {0}", (vaMe*9)-cosM
"Costo Total = {0}", cosJ+cosS+cosP+cosM
"Utilidad Total = {0}",((vaJic*10)+(vaSan*11)+(vaPin*8.5)+(vaMe*9))(cosJ+cosS+cosP+cosM) frut
vaJic= (kg*8)+vaJic
frut==1
cosJ= (kg*costKJic)+cosJ
frut==2 vaSan= (kg*7.5)+vaSan
frut==3
cosS= (kg*costKSan)+cosS
vaPin= (kg*10.5)+vaPin
cosP= (kg*costKPin)+cosP
frut==4 vaMe= (kg*7)+vaMe
cosM= (kg*costKMe)+cosM
"¿Compró más fruta?" opc
"Si=1 No=2"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication24 {
132
class Program { static void Main(string[] args) { double costKJic = 20, costKSan = 20, costKPin = 20, costKMe = 20, vaJic = 0, vaSan = 0, vaPin = 0, vaMe = 0, cosJ = 0, cosS = 0, cosP = 0, cosM = 0, kg; int opc, frut; string lee;
Console.WriteLine("¿Compró fruta?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee);
while (opc == 1) { Console.WriteLine("¿Qué fruta fue?"); Console.WriteLine("1. Jícama"); Console.WriteLine("2. Sandía"); Console.WriteLine("3. Piña"); Console.WriteLine("4. Melón"); lee = Console.ReadLine(); frut = Convert.ToInt16(lee); Console.WriteLine("¿Cuántos kilos compró?"); lee = Console.ReadLine(); kg = Convert.ToDouble(lee); switch (frut) { case 1: vaJic = vaJic + (kg * 8); cosJ = cosJ + (kg * costKJic); break; case 2: vaSan = vaSan + (kg * 7.5); cosS = cosS + (kg * costKSan); break; case 3:
133
vaPin = vaPin + (kg * 10.5); cosP = cosP + (kg * costKPin); break; case 4: vaMe = vaMe + (kg * 7); cosM = cosM + (kg * costKMe); break; } Console.WriteLine("¿Compró más fruta?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); }
Console.WriteLine("Vasos a Producir de:"); Console.WriteLine("Jícama = {0}", vaJic); Console.WriteLine("Sandía = {0}", vaSan); Console.WriteLine("Piña = {0}", vaPin); Console.WriteLine("Melón = {0}", vaMe); Console.WriteLine(""); Console.WriteLine("Monto:"); Console.WriteLine("Jícama = ${0}", (vaJic * 10)); Console.WriteLine("Sandía = ${0}", (vaSan * 11)); Console.WriteLine("Piña = ${0}", (vaPin * 8.5)); Console.WriteLine("Melón = ${0}", (vaMe * 9)); Console.WriteLine(""); Console.WriteLine("Utilidad:"); Console.WriteLine("Jícama = ${0}", (vaJic * 10) - cosJ); Console.WriteLine("Sandía = ${0}", (vaSan * 11) - cosS); Console.WriteLine("Piña = ${0}", (vaPin * 8.5) - cosP); Console.WriteLine("Melón = ${0}", (vaMe * 9) - cosM); Console.WriteLine(""); Console.WriteLine("Costo Total = ${0}", cosJ + cosS + cosP + cosM); Console.WriteLine(""); Console.WriteLine("Ganancia de Vasos = ${0}", (vaJic * 10)+ (vaSan * 11)+ (vaPin * 8.5)+ (vaMe * 9));
134
Console.WriteLine(""); Console.WriteLine("Utilidad Total = ${0}",((vaJic * 10) + (vaSan * 11) + (vaPin * 8.5) + (vaMe * 9))-(cosJ + cosS + cosP + cosM));
Console.ReadKey(); } } }
25. Edades de tu familia con FOR y validar datos con DO-WHILE Hacer un algoritmo que solicite la cantidad de personas de tu familia (validarlo). Solicitar dentro de un ciclo la edad de cada uno de ellos (validar de 0-120) y obtener edades de la edades.
135
136
Usuario
Sistema
int i=1, noFam, edad, sumEdad=0; string lee; noFam
"¿Cuántas personas hay en tu familia?"
T noFam<1
F
i<=noFam
F
"Promedio de Edades = {0}",sumEdad/noFam
T edad
"¿Cuál es la edad del familiar {0}",i T edad<0 ó edad>120 F sumEdad=sum Edad+edad i++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication29 { class Program { static void Main(string[] args) { int i, noFam, edad, sumEdad; string lee; do{ Console.WriteLine("¿Cuántas personas hay en tú familia?"); lee = Console.ReadLine();
137
noFam = Convert.ToInt16(lee); } while (noFam < 1);
for (i = 1, sumEdad=0; i <= noFam; i++) { do { Console.WriteLine("¿Cuál es la edad de familiar {0}?", i); lee = Console.ReadLine(); edad = Convert.ToInt16(lee); } while (edad < 0 || edad > 120);
sumEdad = (sumEdad + edad);
}
Console.WriteLine("Promedio de Edades = {0}",(sumEdad/noFam)); Console.ReadKey(); } } }
26. Centro de verificación con WHILE Hacer un algoritmo para un centro de verificación. Los tipos de verificación son: Normal $170 + IVA, “00” $370 + IVA y “000” $585 + IVA. Realizar el ciclo que 138
solicite el tipo de verificaciรณn, solicite si paso o no la verificaciรณn el transporte, valide los datos que el usuario ingrese. Las salidas son: 1. Total por tipo de verificaciรณn, con y sin IVA. 2. Total de transportes que pasaron o no la verificaciรณn, tipo de verificaciรณn. 3. Totales generales de 2 puntos anteriores.
139
140
141
Usuario
Sistema
int opc, tipo, paso, norSi=0, norNo=0, dobleSi=0, dobleNo=0, tripleSi=0, tripleNo=0; double norIV=(170+170*0.16), dobleIV=(370+370*0.16), tripleIV=(585+585*0.16); string lee;
"¿Entró vehículo a verificar?"
opc
"Si=1 No=2"
opc<=0 ó opc>=3
T
F F
opc==1
"Total Normal con IVA = ${0}", (norSi+norNo)*norIV
"Total Normal sin IVA = {0}", ((norSi + norNo) * 170)
"Total que no pasaron Normal = {0}", norNo
"Total que pasaron Normal = {0}", norSi
"Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)
"Total que no pasaron 00 = {0}", dobleNo
"Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370)
T
tipo
"¿Qué tipo de verificación fue?"
"Total que pasaron 00 = {0}", dobleSi
"1. Normal 2. 00 3. 000"
"Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)
T
"Total que no pasaron 000 = {0}", tripleNo
"Total General con IVA = {0}", ((norSi + norNo) * norIV)+ ((dobleSi + dobleNo) * dobleIV)+ ((tripleSi + tripleNo) * tripleIV)
"Total que pasaron 000 = {0}", tripleSi
"Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)
"Total que no pasaron en General = {0}", norNo+dobleNo+tripleNo
tipo<=0 ó tipo>=4 F paso
"Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)
"¿Pasó la verificación? Si=1 No=2"
"Total que pasaron en General = {0}", norSi+dobleSi+tripleSi
T paso<=0 ó paso>=3 F tipo
tipo==2
tipo==3
tipo==1 paso==1 T norSi++
paso==1 F
T norNo++
dobleSi++
paso==1
F
F
T dobleNo++
tripleSi++
tripleNo++
"¿Pasó otro?"
opc
"Si=1 No=2"
T opc<=0 ó opc>=3
F
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
142
namespace ConsoleApplication7 { class Program { static void Main(string[] args) { int opc, tipo, paso, norSi = 0, norNo = 0, dobleSi = 0, dobleNo = 0, tripleSi = 0, tripleNo = 0; double norIV = (170 + (170 * 0.16)), dobleIV = (370 + (370 * 0.16)), tripleIV = (585 + (585 * 0.16)); string lee;
do { Console.WriteLine("¿Entró un vehículo a verificar?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee);
} while (opc <= 0 || opc >= 3); while (opc == 1) { do { Console.WriteLine("¿Qué tipo de verificación fue?"); Console.WriteLine("1.-Normal
2.-00
3.-000");
lee = Console.ReadLine(); tipo = Convert.ToInt16(lee); } while (tipo <= 0 || tipo >= 4); do { Console.WriteLine("¿Pasó la verificación? Si=1,
No=2");
lee = Console.ReadLine(); paso = Convert.ToInt16(lee);
143
} while (paso <= 0 || paso >= 3);
switch (tipo) { case 1: if (paso == 1) norSi = norSi + 1; else norNo = norNo + 1; break; case 2: if (paso == 1) dobleSi = dobleSi + 1; else dobleNo = dobleNo + 1; break; case 3: if (paso == 1) tripleSi = tripleSi + 1; else tripleNo = tripleNo + 1; break; } do { Console.WriteLine("¿Paso otro? Si=1,
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3); }
Console.WriteLine("Total Normal con IVA = {0}", ((norSi + norNo) * norIV)); Console.WriteLine("Total Normal sin IVA = {0}", ((norSi + norNo) * 170)); Console.WriteLine("Total que no pasaron Normal = {0}", norNo);
144
Console.WriteLine("Total que pasaron Normal = {0}", norSi); Console.WriteLine("Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)); Console.WriteLine("Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370)); Console.WriteLine("Total que no pasaron 00 = {0}", dobleNo); Console.WriteLine("Total que pasaron 00 = {0}", dobleSi); Console.WriteLine("Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron 000 = {0}", tripleNo); Console.WriteLine("Total que pasaron 000 = {0}", tripleSi); Console.WriteLine("Total General con IVA = {0}", ((norSi + norNo) * norIV)+ ((dobleSi + dobleNo) * dobleIV)+ ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron en General = {0}", norNo+dobleNo+tripleNo); Console.WriteLine("Total que pasaron en General = {0}", norSi+dobleSi+tripleSi); Console.ReadKey(); } } }
145
146
27. Centro de verificación con DO-WHILE Hacer un algoritmo para un centro de verificación. Los tipos de verificación son: Normal $170 + IVA, “00” $370 + IVA y “000” $585 + IVA. Realizar el ciclo que solicite el tipo de verificación, solicite si paso o no la verificación el transporte, valide los datos que el usuario ingrese. Las salidas son: 1. Total por tipo de verificación, con y sin IVA. 2. Total de transportes que pasaron o no la verificación, tipo de verificación. 3. Totales generales de 2 puntos anteriores.
147
148
149
Usuario
Sistema
int opc, tipo, paso, norSi=0, norNo=0, dobleSi=0, dobleNo=0, tripleSi=0, tripleNo=0; double norIV=(170+170*0.16), dobleIV=(370+370*0.16), tripleIV=(585+585*0.16); string lee;
"¿Qué tipo de verificación fue?"
tipo
"1. Normal 2. 00 3. 000" T
tipo<=0 ó tipo>=4 F paso
"¿Pasó la verificación? Si=1 No=2" T paso<=0 ó paso>=3 F
tipo
tipo==2
tipo==3
tipo==1 paso==1 T
paso==1
paso==1
F norNo++ norSi++
T
F T
dobleSi++
dobleNo++
F
tripleSi++
tripleNo++
"¿Pasó otro?"
opc
"Si=1 No=2"
opc<=0 ó opc>=3
T
F
opc==1
T
F
"Total Normal con IVA = ${0}", (norSi+norNo)*norIV
"Total Normal sin IVA = {0}", ((norSi + norNo) * 170)
"Total que no pasaron Normal = {0}", norNo
"Total que pasaron 00 = {0}", dobleSi "Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)
"Total que pasaron Normal = {0}", norSi
"Total que no pasaron 00 = {0}", dobleNo "Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)
"Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)
"Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370) "Total que no pasaron 000 = {0}", tripleNo
"Total General con IVA = {0}", ((norSi + norNo) * norIV)+ ((dobleSi + dobleNo) * dobleIV)+ ((tripleSi + tripleNo) * tripleIV)
"Total que pasaron 000 = {0}", tripleSi
"Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)
"Total que no pasaron en General = {0}", norNo+dobleNo+tripleNo
"Total que pasaron en General = {0}", norSi+dobleSi+tripleSi
150
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication7 { class Program { static void Main(string[] args) { int opc, tipo, paso, norSi = 0, norNo = 0, dobleSi = 0, dobleNo = 0, tripleSi = 0, tripleNo = 0; double norIV = (170 + (170 * 0.16)), dobleIV = (370 + (370 * 0.16)), tripleIV = (585 + (585 * 0.16)); string lee;
do { do { Console.WriteLine("¿Qué tipo de verificación fue?"); Console.WriteLine("1.-Normal
2.-00
3.-000");
lee = Console.ReadLine(); tipo = Convert.ToInt16(lee); } while (tipo <= 0 || tipo >= 4); do { Console.WriteLine("¿Pasó la verificación? Si=1,
No=2");
lee = Console.ReadLine(); paso = Convert.ToInt16(lee);
} while (paso <= 0 || paso >= 3);
151
switch (tipo) { case 1: if (paso == 1) norSi = norSi + 1; else norNo = norNo + 1; break; case 2: if (paso == 1) dobleSi = dobleSi + 1; else dobleNo = dobleNo + 1; break; case 3: if (paso == 1) tripleSi = tripleSi + 1; else tripleNo = tripleNo + 1; break; } do { Console.WriteLine("¿Paso otro? Si=1,
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3); } while (opc == 1);
Console.WriteLine("Total Normal con IVA = {0}", ((norSi + norNo) * norIV)); Console.WriteLine("Total Normal sin IVA = {0}", ((norSi + norNo) * 170)); Console.WriteLine("Total que no pasaron Normal = {0}", norNo); Console.WriteLine("Total que pasaron Normal = {0}", norSi);
152
Console.WriteLine("Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)); Console.WriteLine("Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370)); Console.WriteLine("Total que no pasaron 00 = {0}", dobleNo); Console.WriteLine("Total que pasaron 00 = {0}", dobleSi); Console.WriteLine("Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron 000 = {0}", tripleNo); Console.WriteLine("Total que pasaron 000 = {0}", tripleSi); Console.WriteLine("Total General con IVA = {0}", ((norSi + norNo) * norIV) + ((dobleSi + dobleNo) * dobleIV) + ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron en General = {0}", norNo + dobleNo + tripleNo); Console.WriteLine("Total que pasaron en General = {0}", norSi + dobleSi + tripleSi); Console.ReadKey(); } } }
153
28. Centro de verificación con FOR Hacer un algoritmo para un centro de verificación. Los tipos de verificación son: Normal $170 + IVA, “00” $370 + IVA y “000” $585 + IVA. Realizar el ciclo que solicite el tipo de verificación, solicite si paso o no la verificación el transporte, valide los datos que el usuario ingrese. Las salidas son: 1. Total por tipo de verificación, con y sin IVA. 2. Total de transportes que pasaron o no la verificación, tipo de verificación. 3. Totales generales de 2 puntos anteriores.
154
155
156
Usuario
Sistema
int num, tipo, paso, norSi=0, norNo=0, dobleSi=0, dobleNo=0, tripleSi=0, tripleNo=0; double norIV=(170+170*0.16), dobleIV=(370+370*0.16), tripleIV=(585+585*0.16); string lee;
num
"¿Cuántos vehículos pasaron a verificación?"
num<1
T
F F
i<=num
"Total Normal con IVA = ${0}", (norSi+norNo)*norIV
"Total Normal sin IVA = {0}", ((norSi + norNo) * 170)
"Total que no pasaron Normal = {0}", norNo
"Total que pasaron Normal = {0}", norSi
"Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)
"Total que no pasaron 00 = {0}", dobleNo
"Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370)
T
tipo
"¿Qué tipo de verificación fue?"
"Total que pasaron 00 = {0}", dobleSi
"1. Normal 2. 00 3. 000"
"Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)
T
"Total que no pasaron 000 = {0}", tripleNo
"Total General con IVA = {0}", ((norSi + norNo) * norIV)+ ((dobleSi + dobleNo) * dobleIV)+ ((tripleSi + tripleNo) * tripleIV)
"Total que pasaron 000 = {0}", tripleSi
"Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)
"Total que no pasaron en General = {0}", norNo+dobleNo+tripleNo
tipo<=0 ó tipo>=4 F paso
"Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)
"¿Pasó la verificación? Si=1 No=2"
"Total que pasaron en General = {0}", norSi+dobleSi+tripleSi
T paso<=0 ó paso>=3 F tipo
tipo==2
tipo==3
tipo==1 paso==1 T norSi++
paso==1 F
T norNo++
dobleSi++
paso==1
F
F
T dobleNo++
tripleSi++
tripleNo++
i++
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication9 { class Program { static void Main(string[] args)
157
{ int i,num, tipo, paso, norSi, norNo, dobleSi, dobleNo, tripleSi, tripleNo; double norIV = (170 + (170 * 0.16)), dobleIV = (370 + (370 * 0.16)), tripleIV = (585 + (585 * 0.16)); string lee;
do { Console.WriteLine("¿Cuántos vehículos pasaron a verificación?"); lee = Console.ReadLine(); num = Convert.ToInt16(lee); } while (num < 1);
for(i=1,norSi=0,norNo=0,dobleSi=0,dobleNo=0,tripleSi=0,tripleNo=0;i<=num;i++) { do { Console.WriteLine("Vehículo No {0}", i); Console.WriteLine("¿Qué tipo de verificación fue?"); Console.WriteLine("1.-Normal
2.-00
3.-000");
lee = Console.ReadLine(); tipo = Convert.ToInt16(lee); } while (tipo <= 0 || tipo >= 4); do { Console.WriteLine("¿Pasó la verificación? Si=1,
No=2");
lee = Console.ReadLine(); paso = Convert.ToInt16(lee);
} while (paso <= 0 || paso >= 3);
switch (tipo)
158
{ case 1: if (paso == 1) norSi = norSi + 1; else norNo = norNo + 1; break; case 2: if (paso == 1) dobleSi = dobleSi + 1; else dobleNo = dobleNo + 1; break; case 3: if (paso == 1) tripleSi = tripleSi + 1; else tripleNo = tripleNo + 1; break; } }
Console.WriteLine("Total Normal con IVA = {0}", ((norSi + norNo) * norIV)); Console.WriteLine("Total Normal sin IVA = {0}", ((norSi + norNo) * 170)); Console.WriteLine("Total que no pasaron Normal = {0}", norNo); Console.WriteLine("Total que pasaron Normal = {0}", norSi); Console.WriteLine("Total 00 con IVA = {0}", ((dobleSi + dobleNo) * dobleIV)); Console.WriteLine("Total 00 sin IVA = {0}", ((dobleSi + dobleNo) * 370)); Console.WriteLine("Total que no pasaron 00 = {0}", dobleNo); Console.WriteLine("Total que pasaron 00 = {0}", dobleSi); Console.WriteLine("Total 000 con IVA = {0}", ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total 000 sin IVA = {0}", ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron 000 = {0}", tripleNo); Console.WriteLine("Total que pasaron 000 = {0}", tripleSi);
159
Console.WriteLine("Total General con IVA = {0}", ((norSi + norNo) * norIV) + ((dobleSi + dobleNo) * dobleIV) + ((tripleSi + tripleNo) * tripleIV)); Console.WriteLine("Total General sin IVA = {0}", ((norSi + norNo) * 170) + ((dobleSi + dobleNo) * 370) + ((tripleSi + tripleNo) * 585)); Console.WriteLine("Total que no pasaron en General = {0}", norNo + dobleNo + tripleNo); Console.WriteLine("Total que pasaron en General = {0}", norSi + dobleSi + tripleSi); Console.ReadKey(); } } }
29. Tu propio algoritmo de WHILE Foto-multa: Límite 70 km/h. Si el límite se rebasa se cobrarán $300. Al final dará el monto total de multas, ¿Cuántos autos rebasaron el límite de velocidad?
160
161
162
Usuario
Sistema
int opc, auto=0, monto=0, km; string lee; opc
"¿Pasó un auto? Si=1 No=2"
T
opc<=0 ó opc>=3 F
F
opc==1
"Autos Infraccionados = {0}",auto
"Monto de Infracciones = {0}",monto
T "¿A cuántos km/h iba?" km
"(Límite 70 km/h)"
T km<=0 F F
km>70
"Sin infracción"
T auto++
monto=monto +300 "Infracción"
opc
"¿Pasó otro auto? Si=1 No=2" T opc<=0 ó opc>=3
F
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication27 { class Program { static void Main(string[] args) { int opc, auto = 0, monto = 0, km;
163
string lee;
do { Console.WriteLine("¿Pasó un auto?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3);
if (opc == 1) { do { do { Console.WriteLine("¿A cuántos km/hr iba?"); Console.WriteLine("(Límite 70km/hr)"); lee = Console.ReadLine(); km = Convert.ToInt16(lee); } while (km <= 0); if (km > 70) { auto = auto + 1; monto = monto + 300; Console.WriteLine("Infracción"); } else { Console.WriteLine("Sin infracción"); } do { Console.WriteLine("¿Pasó otro auto?"); Console.WriteLine("Si=1
No=2");
164
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3); } while (opc == 1); }
Console.WriteLine("Autos Infraccionados = {0} autos", auto); Console.WriteLine("Monto de infracciones = ${0}", monto); Console.ReadKey(); } } }
30. Tu propio algoritmo de DO-WHILE El algoritmo pedirá si hay libros a registrar, registrará si hay de Física, Química, Biología, Matemáticas u Otro. Además preguntará si está en buen estado o si no. Al final arrojará cuántos libros hay por materia, cuántos hay en buen estado y mal estado. Y el total de libros.
165
166
167
Usuario
Sistema
int opc, mat, fi=0, qui=0, bio=0, mate=0, ot=0, bien=0, mal=0, esta; string lee; opc
"¿Hay libros a registrar? Si=1 No=2"
opc<=0 ó opc>=3
T
F F
opc==1
"Hasta Luego"
T "¿De qué materia es el libro?"
mat
"Física- - - 1 Química- - - 2 Biología- - - 3 Matemáticas- - - 4 Otro- - - 5"
T mat<=0 ó mat>=6
F
mat
mat==1
mat==2
fi++
qui++
esta
mat==3
mat==5
mat==4
bio++
mat++
ot++
"¿Está en buen estado? Si=1 No=2"
T
esta<=0 ó esta>=3 F
esta==1 T
bien++
F mal++
opc
"¿Hay otro? Si=1 No=2"
opc<=0 ó opc>=3
T
F opc==1
T
F "Total de libros de:"
"Física: {0}",fi
"Total de libros: {0}",bien+mal
"Química: {0}",qui
"Mal estado: {0}",mal
"Biología: {0}",bio
"Buen estado: {0}",bien
"Matemáticas: {0}",mate
"Otros: {0}",ot
168
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication28 { class Program { static void Main(string[] args) { int opc, mat, fi = 0, qui = 0, bio = 0, mate = 0, ot = 0, bien = 0, mal = 0, esta; string lee;
do { Console.WriteLine("¿Hay libros a registrar?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3); if (opc == 1) { do { do { Console.WriteLine("¿De qué materia es el libro?"); Console.WriteLine("Física----1"); Console.WriteLine("Química----2"); Console.WriteLine("Biología----3"); Console.WriteLine("Matemáticas----4"); Console.WriteLine("Otros----5"); lee = Console.ReadLine();
169
mat = Convert.ToInt16(lee); } while (mat <= 0 || mat >= 6); switch (mat) { case 1: fi = fi + 1; break; case 2: qui = qui + 1; break; case 3: bio = bio + 1; break; case 4: mate = mate + 1; break; case 5: ot = ot + 1; break; } do { Console.WriteLine("ÂżEstĂĄ en buen estado?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); esta = Convert.ToInt16(lee); } while (esta <= 0 || esta >= 3); if (esta == 1) bien = bien + 1; else mal = mal + 1;
do {
170
Console.WriteLine("¿Hay otro?"); Console.WriteLine("Si=1
No=2");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 3); } while (opc == 1);
Console.WriteLine("Total de libros de:"); Console.WriteLine("Física----{0}", fi); Console.WriteLine("Química----{0}", qui); Console.WriteLine("Biología----{0}", bio); Console.WriteLine("Matemáticas----{0}", mate); Console.WriteLine("Otros----{0}", ot); Console.WriteLine("Buen estado----{0}", bien); Console.WriteLine("Mal estado----{0}", mal); Console.WriteLine("Total de libros----{0}", bien + mal); } else Console.WriteLine("Hasta Luego");
Console.ReadKey(); } } }
171
31. Cajero Inicio Hacer un algoritmo que valide que la tarjeta sea de MASTERCARD o VISA, que esté vigente y que se ingrese un NIP válido.
172
173
174
Usuario
Sistema
int NIP=4854, nipIn, i=0; DateTime fechav=(2017,11,21), hoy=DateTime.now; string lee, banco="MASTERCARD";
"Bienvenido al Cajero {0}",banco "Inserte su tarjeta" "Validando..."
banco=="MASTERCARD" Ăł banco="VISA"
F
"Lo sentimos no puede usar este cajero"
T
fechav<hoy
F
T
i<=2
F
F
"Incorrecto"
"Su tarjeta ha sido retenida"
"Ingresando al MenĂş"
"Escriba su NIP"
nipIn==NIP
F
T
T nipIn
i==4
i++
T i=4
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication12 { class Program { static void Main(string[] args) { int NIP = 4854, nipIn, i; string lee, banco = "VISA"; DateTime fechav = new DateTime(2020,3,21);
175
DateTime hoy = DateTime.Now;
Console.WriteLine("Bienvenido al cajero Padilla's Bank"); Console.WriteLine(hoy.ToString("d")); Console.WriteLine("Inserte su tarjeta"); Console.WriteLine("Validando..."); if (banco == "MASTERCARD" || banco == "VISA") if(fechav>hoy) { for (i = 0; i <= 2; i++) { Console.WriteLine("Escriba su NIP"); lee = Console.ReadLine(); nipIn = Convert.ToInt16(lee); if (nipIn == NIP) i = 4; else Console.WriteLine("Incorrecto");
if (i == 4) Console.WriteLine("Inserte aquí Menú"); else Console.WriteLine("Su tarjeta ha sido retenida"); } } else Console.WriteLine("Lo sentimos no puede usar este cajero"); else Console.WriteLine("Lo sentimos no puede usar este cajero"); Console.ReadKey(); } } }
176
177
32. Menú del Cajero Hacer un algoritmo que muestre el menú de un cajero, con las siguientes opciones: 1. 2. 3. 4.
Consulta de saldo Retiro de efectivo Cambio de NIP Salir
Para el Retiro se desplegarán las siguientes opciones: 1. 2. 3. 4.
$500 $3000 $6000 Regresar
178
179
180
181
182
Usuario
Sistema
int opc, billeDos=10, billeQuin=15, saldoTarjeta=7500, ret, regreso, NIP=4854, nipIn; string lee; "Bienvenido a {0}",banco "Escriba:"
"1. Consulta de Saldo"
opc
"4. Salir"
opc<=0 ó opc>=5
"2. Retiro de efectivo" "3. Cambio de NIP"
T
F opc
opc==1
regreso
default
opc==3
"Saldo Actual = ${0}",saldoTarjeta
opc==2
"Gracias por usar este cajero"
"Escriba su NIP actual"
"Escriba 0 para continuar" T F
regreso!=0
nipIn
T nipIn!=NIP F "Escriba su nueva NIP"
NIP
NIP>999 ó NIP<0
T
"No válida" "Saldo Actual = ${0}",saldoTarjeta
F nipIn
"Para confirmar escriba de nuevo su nueva NIP"
nipIn!=NIP
T
saldoTarjeta>=500 T
"Incorrecta"
F
"Escriba 0 para continuar"
T
"Opciones de retiro:"
F
"No tiene suficiente saldo"
"Nueva NIP establecida" regreso
billeQuin>=1 ó billeDos>=15
F
"No Hay sufiecientes fondos"
"1. $500 2.$3000 3. $6000 4. Regresar"
"Presione 0 para continuar"
T F
regreso!=0
regreso
F
T regreso!=0
ret
ret<=0 ó ret>=5
T
F
ret
ret==1
billeQuin>=1 F T billeQuin=bille Quin-1
"No hay fondos"
T
T
billeQuin= billeQuin-6
billeQuin>=6
F T
billeQuin= billeQuin-4
saldoTajeta= saldoTarjeta-3000 T
billeQuin==2 y billeDos>=10
billeQuin= billeQuin-2
billeDos= billeDos-10
"Ha retirado $3000"
billeQuin= billeQuin-10
billeDos= billeDos-5
F billeQuin==8 y T billeDos>=10
billeQuin= billeQuin-8
billeDos= billeDos-10 saldoTarjeta= saldoTarjeta-6000
F
F billeDos>=15
billeQuin==10 T y billeDos>=5
billeDos= billeDos-5
F
"Ha retirado $500"
billeQuin= billeQuin-12
billeQuin>=12
F billeQuin==4 y billeDos>=5
saldoTarjeta=s aldoTarjeta-500
ret==3
ret==2 ret==4 "Regresando al menú.."
T
billeDos= billeDos-15
billeQuin==6 y billeDos>=15
T
billeQuin= billeQuin-6
billeDos= billeDos-15
F "No hay suficientes fondos"
F billeQuin==4 y billeDos>=20
T
billeQuin= billeQuin-4
billeDos= billeDos-20
F
billeQuin==2 y billeDos>=25
T
billeQuin= billeQuin-2
billeDos= billeDos-25
F
billeDos>=30
T
billeDos= billeDos-30
F "No hay suficientes fondos"
regreso
"Presione 0 para continuar" F T regreso!=0
183
"Ha retirado $6000"
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication14 { class Program { static void Main(string[] args) { int opc, billeDos = 10, billeQuin = 15, saldoTajeta = 7500, ret, NIP = 4854, nipIn, regreso=0, regreII=0, nipIIn; string lee, banco = "VISA"; do { do { Console.WriteLine("Bienvenido a {0}", banco); Console.WriteLine("Por favor oprima la opciรณn que desee:"); Console.WriteLine("1.Consulta de Saldo"); Console.WriteLine("2.Retiro de efectivo"); Console.WriteLine("3.Cambio de NIP"); Console.WriteLine("4.Salir"); lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc <= 0 || opc >= 5); switch (opc) { case 1: Console.WriteLine("Saldo Actual:"); Console.WriteLine("${0}", saldoTajeta); do { Console.WriteLine("Escriba 0 para regresar");
184
lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); break; case 2: Console.WriteLine("Saldo Actual:"); Console.WriteLine("${0}", saldoTajeta); if (saldoTajeta >= 500) { if (billeQuin >= 1 || billeDos >= 15) { do { do { Console.WriteLine("Esciba el nĂşmero segĂşn el monto que desea retirar"); Console.WriteLine("1. $500"); Console.WriteLine("2. $3000"); Console.WriteLine("3. $6000"); Console.WriteLine("4. Salir"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret <= 0 || ret >= 5); switch (ret) { case 1: if (billeQuin >= 1) billeQuin = billeQuin - 1; saldoTajeta = saldoTajeta - 500; Console.WriteLine("Ha retirado $500"); do { Console.WriteLine("Escriba 0 para regresar");
185
lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); break; case 2: if (billeQuin >= 6) { billeQuin = billeQuin - 6; saldoTajeta = saldoTajeta - 3000; Console.WriteLine("Ha retirado $3000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeQuin == 4 & billeDos >= 5) { billeQuin = billeQuin - 4; billeDos = billeDos - 5; saldoTajeta = saldoTajeta - 3000; Console.WriteLine("Ha retirado $3000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); }
186
while (regreII != 0); } else { if (billeQuin == 2 & billeDos >= 10) { billeQuin = billeQuin - 2; billeDos = billeDos - 10; saldoTajeta = saldoTajeta 3000; Console.WriteLine("Ha retirado $3000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else if (billeDos >= 12) { billeDos = billeDos - 12; saldoTajeta = saldoTajeta 3000; Console.WriteLine("Ha retirado $3000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0);
187
} else Console.WriteLine("Lo sentimos no hay fondos"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } } break; case 3: if (billeQuin >= 12) { billeQuin = billeQuin - 12; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeQuin == 10 & billeDos >= 5) { billeQuin = billeQuin - 10;
188
billeDos = billeDos - 5; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeQuin == 8 & billeDos >= 10) { billeQuin = billeQuin - 8; billeDos = billeDos - 10; saldoTajeta = saldoTajeta 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeQuin == 6 & billeDos >= 15) {
189
billeQuin = billeQuin 6; billeDos = billeDos - 15; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeQuin == 4 & billeDos >= 20) { billeQuin = billeQuin - 4; billeDos = billeDos 20; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); }
190
else { if (billeQuin == 2 & billeDos >= 22) { billeQuin = billeQuin - 2; billeDos = billeDos - 25; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { if (billeDos >= 24) { billeDos = billeDos - 30; saldoTajeta = saldoTajeta - 6000; Console.WriteLine("Ha retirado $6000"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine();
191
regreII = Convert.ToInt16(lee); } while (regreII != 0); } else { Console.WriteLine("Lo sentimos no hay suficientes fondos"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreII = Convert.ToInt16(lee); } while (regreII != 0);
} } } } } } } break; case 4: Console.WriteLine("Regresando al menĂş..."); break; } } while (regreII == 0 & ret != 4); } else
192
{ Console.WriteLine("Lo sentimos no hay fondos suficientes"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); } } else { Console.WriteLine("No tiene suficiente saldo"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); } break; case 3: do { Console.WriteLine("Escriba su NIP actual"); lee = Console.ReadLine(); nipIn = Convert.ToInt16(lee); } while (nipIn != NIP); do { Console.WriteLine("Escriba su nueva NIP de 4 dĂgitos"); lee = Console.ReadLine(); nipIIn = Convert.ToInt16(lee);
193
if (nipIIn > 9999 || nipIIn < 0) Console.WriteLine("NIP invรกlido"); } while (nipIIn > 9999 || nipIIn < 0); do { Console.WriteLine("Para confirmar, escriba de nuevo su nueva NIP"); lee = Console.ReadLine(); nipIn = Convert.ToInt16(lee); if (nipIn != nipIIn) Console.WriteLine("Incorrecto"); } while (nipIn != nipIIn); NIP = nipIIn; Console.WriteLine("Nueva NIP establecida"); do { Console.WriteLine("Escriba 0 para regresar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); break; default: Console.WriteLine("Fue un placer atenderle"); Console.WriteLine("Hasta Luego"); break; }
} while (regreso == 0 & opc!=4); Console.ReadKey(); } } }
194
195
33. Retirar otra cantidad Hacer un algoritmo que, complementando al anterior, te permita retirar cualquier otra cantidad.
196
Usuario
Sistema
int cantidad, opc, saldoTarjeta=7500, regreso, residuo, mont; string lee; cantidad
"Escriba la cantidad a retirar"
T cantidad<100 ó cantidad>6000 F
cantidad<=saldo
T
residuo= cantidad%100
F "No cuenta con saldo suficiente"
F residuo!=0 T
residuo= cantidad%200
residuo==0 T
"No es posible retirar un número que no sea múltiplo de 100"
"Dar {0} billetes de $200",cantidad/200
F
mont= cantidad-100
"Dar {0} billetes de $200",mont/200 regreso
"Escriba 0 para contnuar"
saldoTarjeta= saldoTarjeta-cantidad
T regreso!=0
F
"Dar 1 billete de $100"
"Regresando al menú de retiro..."
using System; using System.Collections.Generic; using System.Linq;
197
using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication18 { class Program { static void Main(string[] args) { int cantidad, opc, saldoTarjeta = 7500, regreso, residuo, mont; string lee; do { Console.WriteLine("Escriba la cantidad a retirar"); lee = Console.ReadLine(); cantidad = Convert.ToInt16(lee); } while (cantidad < 100 || cantidad > 6000); if(cantidad<=saldoTarjeta) { residuo = cantidad % 100; if (residuo != 0) { Console.WriteLine("No es posible retirar un nĂşmero que no sea mĂşltiplo de 100"); do { Console.WriteLine("Escriba 0 para continuar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); } else { residuo = cantidad % 200; if (residuo == 0)
198
{ Console.WriteLine("Dar {0} billetes de 200", cantidad / 200); saldoTarjeta = saldoTarjeta - cantidad; do { Console.WriteLine("Escriba 0 para continuar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); } else { mont = cantidad - 100; Console.WriteLine("Dar {0} billetes de $200", mont / 200); Console.WriteLine("Dar 1 billete de $100"); saldoTarjeta = saldoTarjeta - cantidad; do { Console.WriteLine("Escriba 0 para continuar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee); } while (regreso != 0); }
} } else { Console.WriteLine("No cuenta con saldo sufiente"); do { Console.WriteLine("Escriba 0 para continuar"); lee = Console.ReadLine(); regreso = Convert.ToInt16(lee);
199
} while (regreso != 0); } Console.ReadKey(); } } }
200
34. Inventario Hacer un algoritmo que lleve el inventario de piezas de un almacen, donde mostrará el siguiente menú: 1. 2. 3. 4. 5. 6. 7.
Compra Devolución sobre compra Venta Devolución sobre venta Costeo Inventario Actual Salir
201
202
203
204
205
Usuario
Sistema
int pzin=500, pzact=500, opc, ret, pz, seguro; double costprom=10, cost, precio; string lee;
opc
Menú: 1.Compra 2.Devolución sobre compra 3. Venta 4. Devolución sobre Venta 5. Costeo 6. Inventario Actual 7.Salir
T
opc<1 o opc>7
F
opc
opc==1 pz
"¿Cuántas piezas compro?"
opc==3
opc==2 ó opc==4
opc==6
opc==7 default
T pz<1
"No disponible" "Inventario Actual = {0} piezas",pzact
F
"Hasta Luego"
pzact= pzact+pz
cost
"¿Cuántas piezas devolvio?"
"¿A qué costo?" T cost<1
F
"¿Cuántas piezas devolvio?" F
cost<costprom
"Compra Registrada"
"Inventario Actual = {0} piezas",pzact T
T seguro
pzact=pzact-pz
"El costo promedio es de ${0} ¿Está seguro de continuar? Si=0 No=Otro Número",costprom
F
seguro==0 ret
"Presione 0 para continuar" T
F
ret != 0
pz
T
pz<1 F T
pz>pzact
"No hay suficiente número de piezas"
F pzact=pzact-pz
cost
"¿A qué costo?" T cost<1 F cost<costprom F
"Venta registrada"
T seguro
"El costo promedio es de ${0} ¿Está seguro de continuar? Si=0 No=Otro número",costprom
T seguro==0 F pzact= pzact+pz
"Inventario Actual = {0} piezas",pzact
"Presione 0 para continuar"
regreso
F
regreso!=0
T
pz
pz<1
T
F
F
opc==2
pzact=pzact+pz
T F
pz>pzact
pzact=pzact-pz
"Devolución registrada"
T "No hay el número suficiente de piezas"
regreso
"Inventario Actual = {0} piezas",pzact
"Presione 0 para continuar" T F
regreso!=0
206
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication41 { class Program { static void Main(string[] args) { int pzin = 500, pzact = 500, opc, ret = 0, pz, seguro; double costprom = 10, cost, precio; string lee;
do { do { Console.WriteLine("Menú:"); Console.WriteLine("1. Compra"); Console.WriteLine("2. Devolución sobre compra"); Console.WriteLine("3. Venta"); Console.WriteLine("4. Devolución sobre venta"); Console.WriteLine("5. Costeo"); Console.WriteLine("6. Inventario Actual"); Console.WriteLine("7. Salir");
lee = Console.ReadLine(); opc = Convert.ToInt16(lee); } while (opc < 1 || opc > 7);
switch (opc)
207
{ case 1: do { Console.WriteLine("¿Cuántas piezas compró?"); lee = Console.ReadLine(); pz = Convert.ToInt16(lee); } while (pz < 1); pzact = pzact + pz; do { Console.WriteLine("¿A qué costo?"); lee = Console.ReadLine(); cost = Convert.ToDouble(lee); } while (cost < 1); if (cost < costprom) { Console.WriteLine("El costo promedio es ${0} ¿Está seguro de continuar?", costprom); Console.WriteLine("Si=0
No= Cualquier otro número");
lee = Console.ReadLine(); seguro = Convert.ToInt16(lee); if (seguro == 0) { Console.WriteLine("Compra registrada"); Console.WriteLine("Inventario Actual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); }
208
else { pzact = pzact - pz; Console.WriteLine("Inventario Actual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } } else { Console.WriteLine("Compra registrada"); Console.WriteLine("Inventario Actual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } break; case 2: do { Console.WriteLine("¿Cuántas piezas devolvio?"); lee = Console.ReadLine(); pz = Convert.ToInt16(lee); } while (pz < 1); if (pz > pzact)
209
{ Console.WriteLine("No hay suficiente número de piezas"); Console.WriteLine("Inventario Actual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } else { pzact = pzact - pz; Console.WriteLine("Devolución Registrada"); Console.WriteLine("Inventario Acual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } break; case 3: do{ Console.WriteLine("¿Cuántas piezas vendió?"); lee = Console.ReadLine(); pz = Convert.ToInt16(lee); } while(pz<1); if (pz > pzact) { Console.WriteLine("No hay piezas suficientes");
210
do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } else { pzact = pzact - pz; do { Console.WriteLine("¿A qué precio?"); lee = Console.ReadLine(); precio = Convert.ToDouble(lee); } while (precio < 1); if (precio < costprom) { Console.WriteLine("El precio promedio es de ${0}", costprom); Console.WriteLine("¿Está seguro de continuar?"); Console.WriteLine("Si = 0
No = Cualquier Número");
lee = Console.ReadLine(); seguro = Convert.ToInt16(lee); if (seguro == 0) {
Console.WriteLine("Venta Registrada"); Console.WriteLine("Inventario Acual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine();
211
ret = Convert.ToInt16(lee); } while (ret != 0); } else { pzact = pzact + pz; Console.WriteLine("Inventario Acual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); }
} else { Console.WriteLine("Venta Registrada"); Console.WriteLine("Inventario Acual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); } } break; case 4: do
212
{ Console.WriteLine("¿Cuántas piezas se devolvieron?"); lee = Console.ReadLine(); pz = Convert.ToInt16(lee); } while (pz < 1); pzact = pzact + pz; Console.WriteLine("Devolución Registrada"); Console.WriteLine("Inventario Acual = {0} piezas", pzact); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); break; case 6: Console.WriteLine("Inventario Actual"); Console.WriteLine("Número de Piezas -- {0}", pzact); Console.WriteLine("Valor del Inventario Actual en Base al Costo Promedio -- ${0}", pzact * costprom); do { Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); break; case 7: Console.WriteLine("Hasta Luego"); break; default: Console.WriteLine("No disponible"); do {
213
Console.WriteLine("Presione 0 para continuar"); lee = Console.ReadLine(); ret = Convert.ToInt16(lee); } while (ret != 0); break; } } while (ret == 0 & opc != 7); Console.ReadKey(); } } }
214
35. Algoritmo PET Hacer un algoritmo que registre el número de botellas y contenedores de estas clasificadas en: 1. 2. 3. 4.
Grandes y Limpias Grandes y Sucias Pequeñas y Limpias Pequeñas y Sucias
215
216
Usuario
Sistema
int t, e,kg, resp; int c1=c2=c3=c4=0; int tk1=tk2=tk3=tk4=resto1=resto2=resto3=resto4=0
resp
"ÂżHay carga? 1.Si 2.No"
F
resp==1
t
e
kg
T "Ingresa el tamaĂąo 1.Grande 2.Chica"
"Grandes limpias - - {0} - contenedores {1}", c1,(c1*200)+tk1
"Grandes sucias - - {0} - contenedores {1}",c2, (c2*200)+tk2
"Chicas sucias - - {0} - contenedores {1}",c4, (c4*100)+tk4
"Chicas limpias - - {0} - contenedores {1}",c3, (c3*100)+tk3
"Ingresa el estado 1.Limpia 2.Sucia"
"Total de contenedores - - {0}",c1+c2+c3+c4
"Total de kg - - {0}",[(c1*200)+tk1]+ [(c2*200)+tk2]+ [(c3*100)+tk3]+ [(c4*100)+tk4]
"Ingrese los kilos recibidos"
F
F
t==1
tk4=tk4+kg
e==1 T
T F
tk2=tk2+kg
e==1
tk3=tk3+kg tk4<100 T
T tk1=tk1+kg
tk3<100
tk2<200 F T
tk1<200
T
F resto4= tk4-100
resto2=tk2-200
F resto3=tk3-100
tk4=resto4
tk2=resto2
tk3=resto3
c4++
c2++
c3++
T F resto1=tk1-200
tk1=resto1
c1++
"ÂżHay otra carga? 1.Si 2.No"
resp
217
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication41 { class Program { static void Main(string[] args) { int t, e, kg, resp, c1 =0, c2 =0, c3 =0, c4 = 0, tk1 =0, tk2 =0, tk3 =0, tk4 =0, resto1 =0, resto2 =0, resto3 =0, resto4 = 0; string lee;
Console.WriteLine("ÂżHay carga?
1. Si
2.No");
lee = Console.ReadLine(); resp = Convert.ToInt16(lee);
while(resp==1) { Console.WriteLine("Ingresa el tamaĂąo
1.Grande
2.Chica");
lee = Console.ReadLine(); t = Convert.ToInt16(lee); Console.WriteLine("Ingresa el estado
1. Limpia
2.Sucia");
lee = Console.ReadLine(); e = Convert.ToInt16(lee); Console.WriteLine("Ingrese los kilos recibidos"); lee = Console.ReadLine(); kg = Convert.ToInt16(lee); if(t==1) { if(e==1) { tk1 = tk1 + kg; if(tk1<200)
218
{
} else { resto1 = tk1 - 200; tk1 = resto1; c1 = c1 + 1; } } else { tk2 = tk2 + kg; if(tk2<200) { } else { resto2 = tk2 - 200; tk2 = resto2; c2 = c2 + 1; } } } else { if(e==1) { tk3 = tk3 + kg; if(tk3<100) { } else { resto3 = tk3 - 100; tk3 = resto3; c3 = c3 + 1; }
219
} else { tk4 = tk4 + kg; if(tk4<100) { } else { resto4 = tk4 - 100; tk4 = resto4; c4 = c4 + 1; } } } Console.WriteLine("ÂżHay otra carga?
1.Si
2.No");
lee = Console.ReadLine(); resp = Convert.ToInt16(lee); } Console.WriteLine("Grandes limpias - - {0} - - contenedores {1}", c1, (c1 * 200) + tk1); Console.WriteLine("Grandes sucias - - {0} - - contenedores {1}", c2, (c2 * 200) + tk2); Console.WriteLine("Chicas limpias - - {0} - - contenedores {1}", c3, (c3 * 100) + tk3); Console.WriteLine("Chicas sucias - - {0} - - contenedores {1}", c4, (c4 * 100) + tk4); Console.WriteLine("Total de contenedores - - {0}", c1 + c2 + c3 + c4); Console.WriteLine("Total de kg - - {0}",((c1 * 200) + tk1) + ((c2 * 200) + tk2) + ((c3 * 100) + tk3) + ((c4 * 100) + tk4)); Console.ReadKey(); } } }
220
221