Está en la página 1de 8

21.

Dada la cantidad de productos y el precio por unidad, calcule y despliegue el total a pagar si el
pedido mínimo de productos es de 500 y se aplican descuentos del 10% para pedidos de 700 - 800
ambos inclusive y 20% para pedidos de más de 800 productos

Planteamiento del problema

Entrada de datos proceso Salida de datos

N. de productos Costo total de compra


Precio por unidad
Descuento del 10%
Descuento del 20%

Diagrama jerárquico modular

program

Main LeeValor calcula sin calcula con Imprime

Análisis/diseño modular detallado de la solución

A. Nombre Módulo: Lee valor ¿ESTÁTICO?: Si ACCESO: Publico

¿Qué Hace?: El método recibe como parámetro una cadena de string, donde indica
el valor que se va a leer, y retorna un valor del tipo double

Variables de salida

Nombre Tipo Descripción


Valor doublé Valores que el usuario ingresara

Variables de entrada
Nombre Tipo Descripción
mensaje string Indica al usuario que debe ingresar valores

Restricciones
El valor debe ser mayor que 0 & 500 consecuentemente.

Proceso
Leer la variable

Flujograma

B. Nombre Módulo: Calcula sin ¿ESTÁTICO?: Si ACCESO: Publico

¿Qué Hace?: Realiza el claculo del precio de los productos que se compraran.

Variables de salida
Nombre tipo Descripción
sindescuento double Almacenara el costo de los productos que se
compraran

Variables de entrada

Nombre tipo Descripción


nproductos double Almacena el numero de productos elegidos
punitarios double Almacenara el coste del producto por unidad

Restricciones
El número mínimo de unidades a compradas debe ser de 500

Proceso
sindescuento = nproductos * punitario;

Flujograma

C. Nombre Módulo: Calcula con ¿ESTÁTICO?: Si ACCESO: Publico


¿Qué Hace?: Realiza el cálculo para obtener el coste total, incluyendo el descuento
que se aplica según la compra.
Variables de salida
Nombre Nombre Descripción
calculacon double Almacenara el coste final de la compra

Variables de entrada
Nombre Nombre Descripción
nproductos double Almacenara el número de personas
encuestadas
sindescuentos double Almacenara el número de personas que
gustan de la música pop
DESC 1 double Almacena el descuento correspondiente
DESC 2 double Almacena el descuento correspondiente

Restricciones
No hay
Proceso
500≤nproductos<700
sindescuento;

700≤nproductos≤800
sindescuento - (sindescuento * DESC1);

nproductos>800
sindescuento - (sindescuento * DESC2);

Flujograma
D. Nombre Módulo: Imprime ¿ESTÁTICO?: Si ACCESO: Publico

¿Qué Hace?: Imprime el coste total de la compra.

Variables de entrada

Nombre Nombre Descripción


calculacon double Almacena el coste final de la compra

Restricciones
No hay

Proceso
Imprimir el coste total de la compra

Flujograma
\Flujograma principal MAIN
Codificación

class Program
{
const double DESC1 = 0.10;
const double DESC2 = 0.20;
static void Main(string[] args)
{
double nproductos, punitario, condescuento, sindescuento;
nproductos = LeeValor("Digite la cantidad de productos a comprar: ");
punitario = LeeValor("Digite el costo de producto por unidad: ");
sindescuento = Calculasin(nproductos, punitario);
condescuento = Calculacon(nproductos, sindescuento);
Imprime(condescuento);
}

//Lee
valores_____________________________________________________________________________
_______
public static double LeeValor(string mensaje)
{
// variable donde se lee el valor numérico
double valor;
// Imprime el mensaje que se envio desde Main()
Console.Write(mensaje);
valor = double.Parse(Console.ReadLine());
if (valor <= 0)
{
Console.WriteLine("El numero minimo de unidades a comprar debe ser
de 500");
}
return valor;
}

//Calcula sin el
descuento_______________________________________________________________________
public static double Calculasin(double nproductos, double punitario)
{
double importe = 0;
importe = nproductos * punitario;

return importe;
}

//Calcula con el
descuento________________________________________________________________
public static double Calculacon(double nproductos, double sindescuento)
{
double importe = 0;
if (nproductos >= 500 && nproductos < 700)
{
importe = sindescuento;
}
if (nproductos >= 700 && nproductos <= 800)
{
importe = sindescuento - (sindescuento * DESC1);
}
if (nproductos > 800)
{
importe = sindescuento - (sindescuento * DESC2);
}
return importe;
}

//Imprime___________________________________________________________________________
_____
public static void Imprime(double condescuento)
{
Console.WriteLine("El costo total por la compra es de: {0}$",
condescuento);
Console.ReadKey();
}

Depuración

También podría gustarte