• Lenguaje

    Pascal

  • Descripción

    Un supermercado ofrece a sus N clientes descuentos de acuerdo al monto de compra, como se muestra en el siguiente cuadro:
    Compra (S/.) | Descuento (%)
    0 - 250 | 0
    251 - 500 | 5
    501 - 1000 | 10
    1001 - más | 15
    Para recibir los beneficios de descuento un cliente solo puede comprar dentro de un determinado rubro, así mismo dependiendo del rubro de la compra, se le aplica el siguiente impuesto sobre la compra descontada.
    Rubro | Impuesto (%)
    Comestibles | 15
    Juguetes | 20
    Vestido | 10
    Electrodomésticos | 5
    Construir un algoritmo que calcule el pago total que hará un determinado cliente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
program DescuentosEnUnSupermercado;
uses crt;

var i, n, rubro : integer;
var descuento, impuesto, monto_de_compra, pago_total : real;
begin
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el valor de monto de compra: ');
        readln (monto_de_compra);
        descuento := 0;
        impuesto := 0;
        writeln ('Selecciona el valor de rubro.');
        writeln ('    1.- Comestibles');
        writeln ('    2.- Juguetes');
        writeln ('    3.- Vestido');
        writeln ('    4.- Electrodom'#130'sticos');
        write ('    : ');
        repeat
            readln (rubro);
            if (rubro<1) or (rubro>4) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (rubro>=1) and (rubro<=4);
        if (monto_de_compra>250) and (monto_de_compra<=500) then
            begin
                descuento := monto_de_compra*0.05;
            end;
        if (monto_de_compra>500) and (monto_de_compra<=1000) then
            begin
                descuento := monto_de_compra*0.1;
            end;
        if monto_de_compra>1000 then
            begin
                descuento := monto_de_compra*0.15;
            end;
        if rubro=1 then
            begin
                impuesto := (monto_de_compra-descuento)*0.15;
            end;
        if rubro=2 then
            begin
                impuesto := (monto_de_compra-descuento)*0.2;
            end;
        if rubro=3 then
            begin
                impuesto := (monto_de_compra-descuento)*0.1;
            end;
        if rubro=4 then
            begin
                impuesto := (monto_de_compra-descuento)*0.05;
            end;
        pago_total := monto_de_compra-descuento+impuesto;
        writeln ('Valor de descuento: ', descuento:0:6);
        writeln ('Valor de impuesto: ', impuesto:0:6);
        writeln ('Valor de pago total: ', pago_total:0:6);
        writeln;
    end;
end.