martes, 21 de junio de 2011

Manejo del Switch

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




1 comentario:

  1. 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.

    switch(v){
    case1:
    txtS.append("uno\n");
    case2:
    txtS.append("dos\n");
    case3:
    txtS.append("tres\n");
    default:
    txtS.append("defecto\n");
    }

    ResponderEliminar