Você está na página 1de 8

Manejo de If-else

Problema 01

Disee un algoritmo que determine si un visitante a un museo es mayor de edad o


menor de edad.

Solucin V01:
Esta solucin se ha resuelto con dos if, lo cual es lenta ya que existen dos evaluaciones
entero edad
leer edad

if(edad>=18)
imprimir mayor de edad
if(edad<18)
imprimir menor de edad

Solucin V02:
Esta solucin solo se ha resuelto con un if, lo cual es rpida ya que existe una evaluacin

entero edad
leer edad

if(edad>=18)
imprimir mayor de edad
else
imprimir menor de edad

Problema 02

Una institucin benfica recibe anualmente una donacin proveniente de Europa y lo


reparte entre un centro de salud, un comedor de nios y una parte lo invierte en la bolsa
de acuerdo a lo siguiente:
Si el monto de la donacin es de $10000 o ms: 30% se destina al centro de
salud, 50% al comedor de nios y el resto se invierte en la bolsa.
Si el monto de la donacin es menor que $10000: 25% se destina al centro de
salud, 60% al comedor de nios y el resto se invierte en la bolsa.
La institucin desea saber cunto de dinero destinar a cada rubro anualmente.
Solucin:

real donacin, salud, comedor, bolsa


leer donacin

if(donacin >= 10000){


salud = 0.30 * donacin
comedor = 0.50 * donacin
bolsa = 0.20 * donacion
}else{
salud = 0.25 * donacin
comedor = 0.60 * donacin
bolsa = 0.15 * donacion
}

imprimir salud, comedor, bolsa

Manejo de If-else-if

Problema 01:

Disee un programa que determine la categora de un estudiante en base a su promedio


ponderado de acuerdo a la siguiente tabla:
Promedio Categora
Promedio Categora
17 A
14 pero < 17 B
12 pero < 14 C
< 12 D

Solucin V01:
Esta solucin es lenta, ya que consume memoria porque se evala todas las sentencias if

entero nota
carcter categoria

leer nota

if(nota>=17){
categora=A
}
if(nota>=14 && nota<17){
categora=B
}
if(nota>=12 && nota<14){
categora=C
}
if(nota <12){
categora=D
}

imprimir categora

Solucin V02:
Esta solucin es rpida, ya que consume menor memoria porque se evala solo algunos
sentencias if. Adems, se ha recorrido el intervalo de manera descendente a la nota
entero nota
carcter categoria

leer nota

if(nota>=17){
categora=A
}
else if(nota>=14){
categora=B
}
else if (nota>=12){
categora=C
}
else{
categora=D
}

imprimir categora

Solucin V03:
Esta solucin es rpida, ya que consume menor memoria porque se evala solo algunos
sentencias if. Adems, se ha recorrido el intervalo de manera ascendente a la nota
entero nota
carcter categoria

leer nota

if(nota<=12){
categora=D
}
else if(nota<14){
categora=C
}
else if (nota<12){
categora=B
}
else{
categora=A
}

imprimir categora

Problema 02:

Disear un programa que lea la temperatura promedio de un da e imprima el tipo de


clima correspondiente de acuerdo a la siguiente tabla:

Temperatura Clima
10 Fro
>10 pero 20 Nublado
>20 pero 30 Caluroso
> 30 Trpico

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%

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

Solucin:

entero cantidad, cdigo


real icompra, idescuento, ipagar
leer cantidad, cdigo
//importe de compra
if(cdigo ==0){
icompra = 5.99* cantidad
}
else if(cdigo ==1){
icompra = 5.50* cantidad
}
else if(cdigo ==2){
icompra = 4.50* cantidad
}
else if(cdigo ==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;
}
Correccin: cada bloque de sentencia debera 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;
}
Correccin: cada bloque de sentencia debera tener las llaves
if(x%3 == 0){
a = 0;
} else if(x%2 == 1) {
a = 1;
} else{
a = 2;
}

Você também pode gostar