Problema 01
Una heladería vende helados a los precios unitarios dados en la siguiente tabla:
Helado Precio unitario
Sol S/. 1.5
Fresa S/. 2.0
Mar S/. 1.7
Rico S/. 2.5
Diseñe un algoritmo que determine el importe a pagar por la compra de cierta cantidad de helados del mismo tipo.
Solución v01(if)
entero categoría, cantidad
real ipagar
leer categoría, cantidad
if(categoría ==0 ){
ipagar = cantidad * 1.5
}
if(categoría ==1 ){
ipagar = cantidad * 2.0
}
if(categoría ==2 ){
ipagar = cantidad * 1.7
}
if(categoría ==3 ){
ipagar = cantidad * 2.5
}
imprimir ipagar
Solución v02(if - else)
entero categoría, cantidad
real ipagar
leer categoría, cantidad
if(categoría ==0 ){
ipagar = cantidad * 1.5
}
else if(categoría ==1 ){
ipagar = cantidad * 2.0
}
else if(categoría ==2 ){
ipagar = cantidad * 1.7
}
else if(categoría ==3 ){
ipagar = cantidad * 2.5
}
imprimir ipagar
Solución v03(switch)
entero categoría, cantidad
real ipagar
leer categoría, cantidad
switch(categoría){
case 0:
ipagar = cantidad * 1.5;
break;
case 1:
ipagar = cantidad * 2.0;
break;
case 2:
ipagar = cantidad * 1.7;
break;
case 3:
ipagar = cantidad * 2.5;
break;
}
imprimir ipagar
Problema 02
En una lotería al primer puesto se le premia con S/. 10 000.0, al segundo con S/. 5 000.0 a los demás con S/. 10.0. Diseñe un algoritmo que lea el puesto y retorne el premio
Solución v01(if - else)
entero puesto
real premio
leer puesto
if(puesto ==1){
premio = 10 000.0
}else if(puesto ==2){
premio = 5 000.0
} else {
premio = 10.0
}
imprimir premio
Solución v02(switch)
entero puesto
real premio
leer puesto
switch(puesto){
case 1:
premio = 10 000.0; break;
case 2:
premio = 5 000.0; break;
default:
premio = 10.0;
}
imprimir premio
Problema 03
Diseñe un programa que lea un número entero en el intervalo de 1 a 7, correspondiente a un día de la semana y determine el nombre del día. Considere: 1 para lunes, 2 para martes, 3 para miércoles, 4 para jueves, 5 para viernes, 6 para sábado y 7 para domingo. Si el número no está en el intervalo de 1 a 7, imprima un mensaje de error.
Solución v01(switch)
entero dia
cadena mensaje
leer dia
switch(dia){
case 1:
mensaje =”Lunes”; break;
case 2:
mensaje =”Martes”; break;
case 3:
mensaje =”Miercoles”; break;
case 4:
mensaje =”Jueves”; break;
case 5:
mensaje =”Viernes”; break;
case 6:
mensaje =”Sabado”; break;
case 7:
mensaje =”Domingo”; break;
default:
mensaje =”Error”;
}
imprimir mensaje
Problema 04
Un padre de familia da propina a su hijo en función al día de la semana:
Lunes a Miércoles à S/. 25
Jueves a Viernes à S/. 30
Sábado a Domingo à S/. 50
Elabore un algoritmo que lea el día e imprima la propina
Solución v01(if - else)
entero dia
real propina
leer dia
if(dia == 1 || dia == 2|| dia == 3){
propina =25.0
}else if(dia == 4 || dia == 5){
propina = 30.0
} else if(dia == 6 || dia == 7){
propina = 50.0
}
imprimir propina
Solución v02(if - else)
entero dia
real propina
leer dia
if(dia <=3 ){
propina =25.0
}else if(dia<=5){
propina = 30.0
} else if(dia<=7){
propina = 50.0
}
imprimir propina
Solución v03(switch)
entero dia
real propina
leer dia
switch(dia){
case 1:
case 2:
case 3:
propina =25.0
break;
case 4:
case 5:
propina = 30.0
break;
case6:
case 7:
propina = 50.0
}
imprimir propina
Problema 05
Diseñe un algoritmo que califique el puntaje obtenido en el lanzamiento de un
dado de acuerdo a la siguiente tabla:
Puntaje Calificación
1 ó 2 Pésimo
3 ó 4 Regular
5 Muy bien
6 Excelente
Solución v01(switch)
entero puntaje
cadena mensaje
leer puntaje
switch(puntaje){
case 1:
case 2:
mensaje =” Pésimo” break;
case 3:
case 4:
mensaje =” Regular” break;
case5:
mensaje =” Muy bien” break;
case 6:
mensaje =” Excelente”
}
imprimir mensaje
Problema 06:
En un instituto, los cursos de matemática, física y química se evalúan en base a
tres prácticas calificadas. Cada práctica tiene un peso dado en la siguiente tabla:
Curso Práctica 1 Práctica 2 Práctica 3
Matemática 1 2 3
Física 1 1 2
Química 1 1 1
Dadas las notas de práctica de un alumno para uno de los tres cursos, diseñe un
programa que determine el peso de cada práctica, el promedio final del alumno y
su condición de aprobado o desaprobado. La nota mínima aprobatoria es 13.
Solución v01 (switch )
entero curso, pc1,pc2,pc3 , peso1, peso2, peso3
real promedio
cadena condicion
leer curso, pc1,pc2,pc3
switch(curso){
case 0:
peso1=1
peso2=2
peso3=3
break;
case 1:
peso1=1
peso2=1
peso3=2
break;
case 2:
peso1=1
peso2=1
peso3=1
}
promedio = (pc1 * peso1 + pc2 * peso2 + pc3 * peso3)/ (peso1 + peso2 + peso3)
if(promedio>=13){
condición=”Aprobado”
}else{
condición=”Desaprobado”
}
imprimir curso, peso1, peso2, peso3, promedio, condición
Problema 07:
En un cine, los precios de las entradas son los mostrados en la siguiente tabla:
Día General Niños
Lunes S/. 9 S/.7
Martes S/. 7 S/.7
Miércoles a Viernes S/. 10 S/.8
Sábado y Domingo S/. 12 S/.9
Como oferta, el cine entrega un vale por media entrada si el número total de entradas adquiridas (la suma del número de entradas generales más el número de entradas de niños) es mayor que 5. Diseñe un programa que determine cuánto debe pagar un cliente por la compra de cierta cantidad de entradas generales y/o de niños.
entero dia, numNiños, numGeneral
leer dia, numNiños, numGeneral
real monto, regalo, total
switch(dia){
case 1:
monto = numGeneral * 9 + numNiños *7;
regalo = 4.5
break;
case 2:
monto = numGeneral * 7 + numNiños *7;
regalo = 3.5
break;
case 3:
case 4:
case 5:
monto = numGeneral * 10 + numNiños *8;
regalo = 5.0
break;
case 6:
case 7:
monto = numGeneral * 12 + numNiños *9;
regalo = 6.0
}
if( numGeneral + numNiños> 5){
total = monto – regalo
}else{
total = monto
}
Imprimir monto, regalo, total
Determine que imprime el siguiente fragmento de programa para cada uno de los siguientes casos: a). v igual a 1, b). v igual a 2, c). v igual a 3 y d). v igual a 4. Considere que la variable v es de tipo int.
ResponderEliminarswitch(v){
case1:
txtS.append("uno\n");
case2:
txtS.append("dos\n");
case3:
txtS.append("tres\n");
default:
txtS.append("defecto\n");
}