Double: //declarar Las Variables //entrada //proceso //salida
Double: //declarar Las Variables //entrada //proceso //salida
Double: //declarar Las Variables //entrada //proceso //salida
PROBLEMAS DESARROLLADOS
Problema
PROCESO: Procesar
Limpiar
SALIDA:
Pseudocódigo
GUI
Problema 1
Una fabrica vende helados al por mayor a precios unitarios dados en la siguiente tabla:
Helado Precio
Sol S/. 2.5
Fresa S/. 1.3
Mar S/. 2.0
Rico S/. 1.7
Como oferta especial la fábrica aplica un porcentaje de descuento sobre el importe de la compra de acuerdo
a la siguiente tabla:
Cantidad de helados Descuento
5%
7%
9%
11%
Adicionalmente, la fábrica le obsequia caramelos de acuerdo a la siguiente tabla:
Helado Caramelos de regalo
Sol 2 caramelos por cada helado
Otro helado Ninguno
Diseñe un programa que determine el importe de la compra, el importe del descuento, el importe a pagar y
la cantidad de caramelos de obsequio (mostrar 0 si no hay obsequio) por la compra de cierta cantidad de
helados del mismo tipo.
Análisis Memoria GUI
ENTRADA: helado, can
PROCESO:
según(helado){
caso “Sol”: precio=2.5 salir
caso “Fresa”: precio=1.3 salir X
caso “Mar”: precio=2.0 salir
caso “Rico”: precio=1.7 salir Procesar
} Limpiar
impcom = precio * can
si(can<10) desc = impcom * 0.05
sino si(can>=10 && can<20) desc = impcom * 0.07
sino si(can>=20 && can<30) desc = impcom * 0.09
sino desc = impcom *0.11
imppag = impcom - desc
si(helado == “Sol”) obs = can * 2
sino obs = 0
//Entrada de datos
LEER helado, can
//Proceso
según(helado){
caso “Sol”: precio=2.5 salir
caso “Fresa”: precio=1.3 salir
caso “Mar”: precio=2.0 salir
caso “Rico”: precio=1.7 salir
}
impcom = precio * can
si(can<10) desc = impcom * 0.05
sino si(can>=10 && can<20) desc = impcom * 0.07
sino si(can>=20 && can<30) desc = impcom * 0.09
sino desc = impcom *0.11
imppag = impcom - desc
si(helado == “Sol”) obs = can * 2
sino obs = 0
//Salida
IMPRIMIR impcom, desc, imppag, obs
Fin
Codigo
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//Declarar de variables
String helado;
int can, obs;
double precio=0, impcom, desc, imppag;
//Entrada de datos
helado = cboHelado.getSelectedItem().toString();
can = Integer.parseInt(txtCantidad.getText());
//Proceso
switch(helado){
case "Sol": precio=2.5; break;
case "Fresa": precio=1.3; break;
case "Mar": precio=2.0; break;
case "Rico": precio=1.7; break;
}
impcom = precio * can;
if(can<10) desc = impcom * 0.05;
else if(can>=10 && can<20) desc = impcom * 0.07;
else if(can>=20 && can<30) desc = impcom * 0.09;
else desc = impcom *0.11;
imppag = impcom - desc;
if(helado == "Sol") obs = (can) * 2;
else obs = 0;
//Salida
//IMPRIMIR impcom, desc, imppag, obs
txtS.setText("Importe de compra : "+impcom+"\n");
txtS.append("Descuento : "+desc+"\n");
txtS.append("importe a Pagar : "+imppag+"\n");
txtS.append("Obsequio : "+obs+"\n");
}
modular
//Declarar de globales
String helado;
int can, obs;
double precio=0, impcom, desc, imppag;
// Procesa la pulsación del botón Procesar
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//Entrada de datos
ingresarDatos();
//Proceso
//Calcular Importe de compra
calcularIC();
//calcular el descuento
calcularDescuento();
//calcular el importe a pagar
calcularIP();
//Calcular el obsequio
calcularObsequio();
//Salida
//IMPRIMIR impcom, desc, imppag, obs
mostrarResultados();
}
//Definir métodos
void ingresarDatos() {
helado = cboHelado.getSelectedItem().toString();
can = Integer.parseInt(txtCantidad.getText());
}
void calcularIC() {
switch(helado){
case "Sol": precio=2.5; break;
case "Fresa": precio=1.3; break;
case "Mar": precio=2.0; break;
case "Rico": precio=1.7; break;
}
impcom = precio * can;
}
void calcularDescuento() {
if(can<10) desc = impcom * 0.05;
else if(can>=10 && can<20) desc = impcom * 0.07;
else if(can>=20 && can<30) desc = impcom * 0.09;
else desc = impcom *0.11;
}
void calcularIP() {
imppag = impcom - desc;
}
void calcularObsequio() {
if(helado == "Sol") obs = (can) * 2;
else obs = 0;
}
void mostrarResultados() {
txtS.setText("Importe de compra : "+impcom+"\n");
txtS.append("Descuento : "+desc+"\n");
txtS.append("importe a Pagar : "+imppag+"\n");
txtS.append("Obsequio : "+obs+"\n");
}
GUI