-
Lenguaje
Pascal
-
Descripción
Permita la gestión de ventas en una ferretería de la ciudad. Existen algunas políticas estrictas para el proceso de venta de la ferretería. Para que se efectué el cobro de una factura se debe pedir a los clientes (nombre, apellido, edad, ciudad y número de identificación); luego se pedirá cada uno de los productos comprados por el cliente (nombre del producto y número de productos). Las restricciones son las siguientes:
- Si el comprador es de la ciudad de Loja, se reducirá el 25% del costo total de los productos comprados.
- Si el comprador es de la ciudad de Quito, se reducirá el 20% del costo total de los productos.
- Si el comprador es de otra ciudad, se reducirá el 18% del costo total de los productos.
Los productos que constan en bodega son:
Nombre Cantidad | $Costo
Cemento c/saco | 12.25
Cementina c/saco | 8.45
Clavos c/libra | 1.50
Hierro 1/2 c/varilla | 5.50
Hierro 1/4 c/varilla | 3.45
Pintura c/galon | 12.15
Abrazaderas c/libra | 2.40
Brochas c/una | 2.25
El cobro del iva en la ferretería es muy particular, si el cliente tiene 18 años o menos, se le cobra el 10% del iva; caso contrario el iva a cobrar es del 12%.
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
uses crt;
var ciudad : integer;
var cantidad_de_abrazaderas_c_libra, cantidad_de_brochas_c_una, cantidad_de_cementina_c_saco, cantidad_de_cemento_c_saco, cantidad_de_clavos_c_libra : real;
var cantidad_de_hierro_1_2_c_varilla, cantidad_de_hierro_1_4_c_varilla, cantidad_de_pintura_c_galon, costo_total, descuento : real;
var edad, iva, total_a_pagar : real;
var nombre, apellido, numero_de_identificacion : string;
var tecla_repetir : char;
begin
repeat
clrscr;
write ('Ingresa el nombre: ');
readln (nombre);
write ('Ingresa el apellido: ');
readln (apellido);
write ('Ingresa el numero de identificacion: ');
readln (numero_de_identificacion);
write ('Ingresa el valor de cantidad de abrazaderas c libra: ');
readln (cantidad_de_abrazaderas_c_libra);
write ('Ingresa el valor de cantidad de brochas c una: ');
readln (cantidad_de_brochas_c_una);
write ('Ingresa el valor de cantidad de cementina c saco: ');
readln (cantidad_de_cementina_c_saco);
write ('Ingresa el valor de cantidad de cemento c saco: ');
readln (cantidad_de_cemento_c_saco);
write ('Ingresa el valor de cantidad de clavos c libra: ');
readln (cantidad_de_clavos_c_libra);
write ('Ingresa el valor de cantidad de hierro 1 2 c varilla: ');
readln (cantidad_de_hierro_1_2_c_varilla);
write ('Ingresa el valor de cantidad de hierro 1 4 c varilla: ');
readln (cantidad_de_hierro_1_4_c_varilla);
write ('Ingresa el valor de cantidad de pintura c galon: ');
readln (cantidad_de_pintura_c_galon);
write ('Ingresa el valor de edad: ');
readln (edad);
writeln ('Selecciona el valor de ciudad.');
writeln (' 1.- Loja');
writeln (' 2.- Quito');
writeln (' 3.- otra');
write (' : ');
repeat
readln (ciudad);
if (ciudad<1) or (ciudad>3) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (ciudad>=1) and (ciudad<=3);
costo_total := cantidad_de_cemento_c_saco*12.25+cantidad_de_cementina_c_saco*8.45+cantidad_de_clavos_c_libra*1.5+cantidad_de_hierro_1_2_c_varilla*5.5+cantidad_de_hierro_1_4_c_varilla*3.45+cantidad_de_pintura_c_galon*12.15+cantidad_de_abrazaderas_c_libra*2.4+cantidad_de_brochas_c_una*2.25;
descuento := 0;
if ciudad=1 then
begin
descuento := costo_total*0.25;
end;
if ciudad=2 then
begin
descuento := costo_total*0.2;
end;
if ciudad=3 then
begin
descuento := costo_total*0.18;
end;
if edad<=18 then
begin
iva := (costo_total-descuento)*0.1;
end
else
begin
iva := (costo_total-descuento)*0.12;
end;
total_a_pagar := costo_total-descuento+iva;
writeln ('Nombre: ', nombre);
writeln ('Apellido: ', apellido);
writeln ('Numero de identificacion: ', numero_de_identificacion);
writeln ('Valor de costo total: ', costo_total:0:6);
writeln ('Valor de descuento: ', descuento:0:6);
writeln ('Valor de iva: ', iva:0:6);
writeln ('Valor de total a pagar: ', total_a_pagar:0:6);
writeln;
write (#168'Deseas repetir el proceso? (S/N): ');
repeat
tecla_repetir := readkey;
until (tecla_repetir = 's') or (tecla_repetir = 'n') or (tecla_repetir = 'S') or (tecla_repetir = 'N');
until (tecla_repetir <> 's') and (tecla_repetir <> 'S');
end.