Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lya115 Lab02
Lya115 Lab02
ALUMNO: Jonathan.
INTRODUCCION.......................................................................................................4
OBJETIVOS...............................................................................................................5
Objetivos Generales...............................................................................................5
Objetivos Específicos.............................................................................................5
DESARROLLO..........................................................................................................6
1. Planteamiento del problema...............................................................................6
2. Análisis del problema..........................................................................................7
CONCLUSIONES......................................................................................................9
RECOMENDACIONES............................................................................................10
REFERENCIAS BIBLIOGRAFICAS........................................................................11
ANEXOS..................................................................................................................12
1. Diagrama de flujo..............................................................................................12
2. Código fuente...................................................................................................12
INTRODUCCION
Objetivos Generales
Objetivos Específicos
Enunciado:
“Mr. Pizza” ofrece Pizzas Pequeñas, Medianas y Gigantes, las cuales tienen un
costo de $10.00, $15.00 y $20.00 respectivamente. La Pizzería acepta 2 tipos de
pago, en efectivo ó tarjeta, pero si paga con tarjeta de crédito tendrá un cargo
extra de 3% sobre la compra total. Suponiendo que los clientes adquieren sólo un
tipo de pizza hay promoción por compras superiores a 5 pizzas se les da un
descuento de 15% y superiores a 10 un descuento de 20% al total de la compra,
pero esta promoción solo aplica a los clientes que hacen su pago en efectivo,
realice un algoritmo para determinar cuánto debe pagar una persona por N pizzas
y el descuento que se le aplico a la compra.
Para ello se determinan las entradas y salidas y el proceso en general por medio
de la caja negra.
Entradas Salida
Operaciones Aritméticas
Tamaño de la pizza Total a pagar
Valores constantes asignados a
Cantidad de la pizza variables (descuentos y recargos)
Condicionales, estructuras
selectivas, estructuras de control,
estructuras repetitivas, banderas
lógicas.
2. Análisis del problema.
Constantes
Los valores de cada tamaño de pizza, pizza grande ($20.00), pizza mediana
($15.00) y pizza pequeña ($10.00).
Los valores del 15% y 20% ambas serán constantes.
El valor del cargo del 3% al cancelar en tarjeta, será una constante.
c. Restricciones
Los valores de T_pizza solo podrán ser del 1 al 4,indicando 4 como cierre o
finalizar el ciclo repetitivo si no es dentro de esos valores deberá pedir
nuevamente los valores, no se aceptan números negativos o cero.
Los valores de Dinero solo pondrán ser 1 o 2, de lo contrario deberá pedir
nuevamente el valor, no se aceptan números negativos o cero.
Los valores de cantidad solo pueden ser positivos, de lo contrario deberá pedir
nuevamente el valor, no se aceptan números negativos o cero.
d. Proceso
Total_1=cantidad*k_pizza
Total_2=Total_1*promo
CONCLUSIONES
1. Diagrama de flujo
2. Código fuente
#include<stdio.h>
#include<conio.h>
#include<locale.h>
//Se incluyen las librerías necesarias
//Se definen las constantes
#define grande 20
#define mediana 15
#define pequena 10
#define card 0.03
#define promo_1 0.15
#define promo_2 0.2
main()
{
setlocale(LC_ALL, "Spanish");
switch(T_pizza)
{
case 1:
while(cantidad<=0){
case 2:
while(cantidad<=0)
{
}
}
k_pizza=mediana;
Total_1=k_pizza*cantidad;
break;
case 3:
while(cantidad<=0){
}
}
k_pizza=pequena;
Total_1=k_pizza*cantidad;
break;
case 4:
printf("El programa se cierra\n");
flag=0;
break;
default:
printf("No ha seleccionado ninguna opcion valida\n");
printf("---------------------------------------------------------\n\n");
flag=0;//bandera que indica que si se ha presionado 5 -1
o 0 en las siguientes condicionales se desactivaran
break;
}
if(cantidad>5&&cantidad<=10)
{
promo=promo_1;
Total_2=(Total_1-Total_1*promo);
printf("El monto a pagar es de $ %.2f",Total_1);
printf(", pero como te llevas mas de 5 pizzas te damos\nun 15%% de
descuento y te quedara a $ %.2f",Total_2);
printf(" al pagar en efectivo");
}
else
{
if(cantidad>10)
{
promo=promo_2;
Total_2=(Total_1-Total_1*promo);
printf("El monto a pagar es de $ %.2f",Total_1);
printf(", pero como te llevas mas de 10 pizzas te damos\nun 20%% de
descuento y te quedara a $%.2f",Total_2);
printf(" al pagar en efectivo");
}
else
{
if(cantidad>=1&&cantidad<5)
{
printf("El monto a pagar es de $ %.2f",Total_1);
}
}
}
if(flag!=0){
while(auxflag!=0){
{
printf("\n\nUsted ha seleccionado cancelar en Tarjeta\n\n");
auxflag=0;
}
else
{
if(dinero!=1&&dinero!=2)
printf("\n No es una opcion valida\n\n");
}
}
}
}
if(flag!=0)
{
printf("--------------------------------------------------------------\n");
printf("\n Cantidad de pizzas:\t\t %i",cantidad);
if(cantidad==1){
printf(" unidad");
}
else
{
if(cantidad>1)
printf(" unidades");
}
switch(T_pizza)
{
case 1:
if(cantidad==1)
{
printf(" de pizza grande");
}
else{
if(cantidad>1)
{
case 3:
if(cantidad==1)
{
printf(" de pizza pequeña");
}
else{
if(cantidad>1)
{
if(dinero==2&&flag!=0)
{
printf("\n Descuento (0.00");
printf(" %%): \t $ ");
printf("%.2f",promo*Total_1*0);
}
}
flag=1;
auxflag=1;
cantidad=0;
Total_1=0;
Total_2=0;
printf("\n");
printf("................................................................................\n\n");
}
getch();
return 0;