ejercicio combos dos clases
TRANSCRIPT
Introducción a la Computación
Profesores: Camacaro, Vladimir Piñero, Erys
14/04/2023 2
Ejercicio Un puesto de comida rápida ofrece 3 tipos de combos, con los siguientes precios:Combo Nro. 1, 235 BsF.Combo Nro. 2, 165,25 BsF.Combo Nro. 3, 250 BsF.
En el mes de aniversario del local se ofrece un paquete promocional con las siguientes políticas:
Si compra más de ½ docena del combo Nro.1 tiene un descuento del 3% sobre el total a cancelar.
Si compra 2 docenas del combo Nro.3 tiene descuento del 2% sobre el total a cancelar.
Por la compra se tiene como entrada: tipo de combo, cantidad del combo. Se pide calcular: monto a cancelar con descuento y monto a cancelar por
concepto de IVA.
14/04/2023 3
Análisis del problema
Lista ClasificaciónCliente claseTipoCombo atributo/ClienteCantidadCombo atributo/Cliente Empresa claseCalcMonto método/EmpresaCalcMontoIVA método/Empresa
14/04/2023 4
si (Tipocombo = “Combo 1”) inicio
Monto CantidadCombo*235si (CantidadCombo >= 6)inicioMonto Monto*0,97fin
finsino // puede ser combo 2 o combo 3
iniciosi (Tipocombo = “Combo 2”) inicioMonto CantidadCombo*165,25 finsino inicio // puede ser combo 3
si (Tipocombo = “Combo 3”) inicio Monto CantidadCombo*250 si (CantidadCombo = 24) inicio Monto Monto*0,98 fin finsino // no es ningún combo
inicio Monto 0 fin fin
fin
MontoIVA Monto*0,12
Diseño de las clases
alfanumerico TipoCombo
entero CantidadCombo
AsignarTipoCombo(alfanumerico ↓ Tipo) real CalcMonto(Cliente↓ OCliente)
AsignarCantidadCombo(entero ↓ Cantidad) real CalcMontoIva(Cliente↓ OCliente)
alfanumerico SacarTipoCombo()
entero SacarCantidadCombo()
14/04/2023 5
Cliente Empresa
14/04/2023 6
Implementación en pseudolenguaje
// Definición de la estructura de la clase Cliente clase Cliente inicio
privado:alfanumerico TipoCombo
entero CantidadCombopublico:
AsignarTipoCombo( alfanumerico ↓ tipo) AsignarCantidadCombo( entero ↓ cantidad) alfanumerico SacarTipoCombo( ) entero SacarCantidadCombo( ) fin
14/04/2023 7
Métodos propios de la clase Cliente
Cliente AsignarTipoCombo( alfanumerico ↓ tipo) inicio
TipoCombo tipo finCliente AsignarCantidadCombo( entero ↓ cantidad) inicio
CantidadCombo cantidad fin
14/04/2023 8
Métodos propios de la clase Cliente
alfanumerico Cliente SacarTipoCombo( ) inicio
retornar TipoCombo finentero Cliente SacarCantidadCombo( ) inicio
retornar CantidadCombo fin
14/04/2023 9
// Definición de la estructura de la clase Empresa
clase Empresa inicio
privado:
publico:real CalcMonto(Cliente ↓OCliente)
real CalcMontoIVA(Cliente ↓OCliente) fin
14/04/2023 10
real Empresa CalcMonto(Cliente ↓OCliente)inicioreal Montosi (Ocliente.SacarTipocombo( ) = “Combo 1”) inicio
Monto OCliente.SacarCantidadCombo( )*235si (OCliente.SacarCantidadCombo( ) >= 6)inicio Monto Monto*0,97fin
finsino inicio
si (Ocliente.SacarTipocombo( ) = “Combo 2”) inicio Monto OCliente.SacarCantidadCombo( )*165,25 finsino inicio si (Ocliente.SacarTipocombo( ) = “Combo 3”) inicio
Monto OCliente.SacarCantidadCombo( )*250si (OCliente.SacarCantidadCombo( ) = 24) inicio Monto Monto*0,98 fin
fin sino inicio
Monto 0 fin fin
fin retornar Montofin
14/04/2023 11
real Empresa CalcMontoIVA(Cliente ↓OCliente)
inicioreal MontoIVAMontoIVA CalcMonto(OCliente)*0,12retornar MontoIVA
fin
14/04/2023 12
Programa de aplicación
principal( ) inicio Cliente Ocliente //Creación del objeto. Empresa OEmpresa //Creación del objeto. InterfazEntrada(OCliente) InterfazSalida(OCliente,OEmpresa) fin
14/04/2023 13
InterfazEntrada(Cliente ↑ OCliente) inicio
alfanumerico tipo entero cantidad //Definición de Variables
escribir “Introduzca el tipo de Combo”leer tipoOCliente.AsignarTipoCombo(tipo)
escribir “Introduzca la cantidad”leer cantidadOCliente.AsignarCantidadCombo(cantidad)
fin
14/04/2023 14
Interfazsalida(Cliente ↓ OCliente, Empresa ↓ OEmpresa)
inicio escribir “Monto: Bs. ”, OEmpresa.CalcMonto(OCliente)
escribir “I.V.A.: Bs. ”, OEmpresa.CalcMontoIVA(OCliente)
fin