martes, 14 de junio de 2011

Manejo del if-else-if

Problema 01:

Diseñe un programa que determine la categoría de un estudiante en base a su promedio ponderado de acuerdo a la siguiente tabla:
Promedio Categoría
Promedio                  Categoría
17                           A
14 pero < 17           B
12 pero < 14           C
< 12                            D

Solución V01:
Esta solución es lenta, ya que consume memoria porque se evalúa todas las sentencias if

entero nota
carácter categoria

leer nota

if(nota>=17){
            categoría=’A’
}
if(nota>=14 && nota<17){
            categoría=’B’
}
if(nota>=12 && nota<14){
            categoría=’C’
}
if(nota <12){
            categoría=’D’
}

imprimir categoría


Solución V02:
Esta solución es rápida, ya que consume menor memoria porque se evalúa solo algunos sentencias if. Además, se ha recorrido el intervalo de manera descendente a la nota



entero nota
carácter categoria

leer nota

if(nota>=17){
            categoría=’A’
}
else if(nota>=14){
            categoría=’B’
}
else if (nota>=12){
            categoría=’C’
}
else{
            categoría=’D’
}

imprimir categoría


Solución V03:
Esta solución es rápida, ya que consume menor memoria porque se evalúa solo algunos sentencias if. Además, se ha recorrido el intervalo de manera ascendente a la nota



entero nota
carácter categoria

leer nota

if(nota<=12){
            categoría=’D’
}
else if(nota<14){
            categoría=’C’
}
else if (nota<12){
            categoría=’B’
}
else{
            categoría=’A’
}

imprimir categoría

Problema 02:

Diseñar un programa que lea la temperatura promedio de un día e imprima el tipo de clima correspondiente de acuerdo a la siguiente tabla:

Temperatura                         Clima
10                             Frío
>10 pero 20             Nublado
>20 pero 30             Caluroso
> 30                            Trópico

real temperatura
leer temperatura

if(temperatura<=10){
            impirmir “frio”;
}else if(temperatura<=20){
            impirmir “nublado”;
}
}else if(temperatura<=30){
            impirmir “caluroso”;
}else{
            impirmir “tropico”;
}




Problema 03:

Un supermercado vende aceite en botellas de 1 litro a los precios por litro dados
en la siguiente tabla:
Aceite Precio            por litro
Primor                        S/. 5.99
Girasol                        S/. 5.50
Cil                               S/.4.50
Cocinero                     S/. 4.70

Como oferta, el supermercado ofrece un porcentaje de descuento sobre el
importe de la compra de acuerdo a la siguiente tabla:

Cantidad de litros Descuento
10                           12.5%
7 pero < 10             10.0%
4 pero < 7               7.5%
< 4                              5.0%

Diseñe un algoritmo que determine el importe de la compra, el importe del
descuento y el importe a pagar por la compra de cierta cantidad de litros de una
misma marca de aceite.

Solución:

entero cantidad, código
real icompra, idescuento, ipagar
leer cantidad, código

//importe de compra
if(código ==0){
            icompra = 5.99* cantidad
}
else if(código ==1){
            icompra = 5.50* cantidad
}
else if(código ==2){
            icompra = 4.50* cantidad
}
else if(código ==3){
            icompra = 4.70* cantidad
}
//importe de descuento
if(cantidad >=10){
            idescuento = 0.125* icompra
}
else if(cantidad >=7){
            idescuento = 0.10* icompra
}
else if(cantidad >=4){
            idescuento = 0.075* icompra
}
else{
            idescuento = 0.05* icompra
}

//importe a pagar
Ipagar = icompra – idescuento

imprimir icompra, idescuento, ipagar

Problema 04:
Determine que imprime el siguiente fragmento de programa para los siguientes
casos: a). x igual a 1, b). x igual a 2, c). x igual a 7 y d). x igual a 5


if(x == 1){
txtS.append("aaaa\n");
x = x + 1;
}
if(x == 2){
txtS.append("bbbb\n");
x = x + 2;
}

If(x >= 8)
txtS.append("cccc\n");
else if(x >= 6)
txtS.append("dddd\n");
else
txtS.append("eeee\n");

txtS.append("ffff");


a). Qué pasa si x igual a 1:
            aaaa
            bbbb
            eeee
ffff
b). Qué pasa si x igual a 2:
bbbb
            eeee
ffff

c). Qué pasa si x igual a 7:
dddd
ffff

d). Qué pasa si x igual a 5:

eeee
ffff

Problema 05:
Explique y corrija los errores de sintaxis de los siguientes fragmentos de
programa.
a. if(a > 20)
x = 1;
y = 2;
    else if(a > 15)
x = 2;
y = 3;
                 else{
x = 3;
y = 4;
     }
Corrección: cada bloque de sentencia debería tener las llaves
   if(a > 20){
x = 1;
y = 2;
    }else if(a > 15) {
x = 2;
y = 3;
                } else{
x = 3;
y = 4;
     }
b.
if(x%3 == 0){
a = 0;
else if(x%2 == 1)
a = 1;
else
a = 2;
}
Corrección: cada bloque de sentencia debería tener las llaves
if(x%3 == 0){
a = 0;
                     } else if(x%2 == 1) {
a = 1;
                     } else{
a = 2;
}



No hay comentarios:

Publicar un comentario