-
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
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.
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.