-
Lenguaje
Pascal
-
Descripción
Una empresa dedicada a la producción de software ofrece a sus clientes aplicaciones comerciales clasificado de la siguiente manera:
TIPO | DESCRIPCION | COSTO
1 | CONTABILIDAD BASICA | $5000.00
2 | CONTABILIDAD DE COSTOS | $6500.00
3 | CONTABILIDAD AVANZADA | $7000.00
Las aplicaciones comerciales se venden por número de licencia. La primera licencia esta incluida dentro del costo del paquete, para cada licencia adicional se cobra $.2000.00 por cada una.
Si el cliente así lo desea (Respuesta S(1) o N(2)) se le ofrece un plan de mantenimiento del software a un precio adicional de $.8,000 para la modalidad 1, 9,000 para la 2 y 10,000 para la 3.
Para la modalidad 2 y 3 se debe comprar un manual de usuario a un precio adicional del $.1500.00. A los clientes que compren mas de una licencia se les otorga un descuento del 25% del precio del manual.
Emitir una factura al usuario que muestre:
1. Precio base de la licencia
2. Costo por licencias adicionales
3. Costo por plan de mantenimiento
4. Costo por manual de usuario
5. Descuento
6. Costo total
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
uses crt;
var plan_mantenimiento, tipo : integer;
var base_licencia, costo_mantenimiento, costo_manual, costo_total, descuento : real;
var licencias_adicionales, numero_de_licencias : real;
begin
write ('Ingresa el valor de numero de licencias: ');
readln (numero_de_licencias);
base_licencia := 0;
costo_mantenimiento := 0;
costo_manual := 0;
licencias_adicionales := (numero_de_licencias-1)*2000;
writeln ('Selecciona el valor de tipo.');
writeln (' 1.- Contabilidad b'#160'sica');
writeln (' 2.- Contabilidad de costos');
writeln (' 3.- Contabilidad avanzada');
write (' : ');
repeat
readln (tipo);
if (tipo<1) or (tipo>3) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (tipo>=1) and (tipo<=3);
writeln ('Selecciona el valor de plan mantenimiento.');
writeln (' 1.- Si');
writeln (' 2.- No');
write (' : ');
repeat
readln (plan_mantenimiento);
if (plan_mantenimiento<1) or (plan_mantenimiento>2) then
write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
until (plan_mantenimiento>=1) and (plan_mantenimiento<=2);
if tipo=1 then
begin
base_licencia := 5000;
end;
if tipo=2 then
begin
base_licencia := 6500;
costo_manual := 1500;
end;
if tipo=3 then
begin
base_licencia := 7000;
costo_manual := 1500;
end;
if (plan_mantenimiento=1) and (tipo=1) then
begin
costo_mantenimiento := 8000;
end;
if (plan_mantenimiento=1) and (tipo=2) then
begin
costo_mantenimiento := 9000;
end;
if (plan_mantenimiento=1) and (tipo=3) then
begin
costo_mantenimiento := 10000;
end;
if numero_de_licencias>1 then
begin
descuento := costo_manual*0.75;
end
else
begin
descuento := 0;
end;
costo_total := base_licencia+licencias_adicionales+costo_mantenimiento+costo_manual-descuento;
writeln ('Valor de base licencia: ', base_licencia:0:6);
writeln ('Valor de costo mantenimiento: ', costo_mantenimiento:0:6);
writeln ('Valor de costo manual: ', costo_manual:0:6);
writeln ('Valor de costo total: ', costo_total:0:6);
writeln ('Valor de descuento: ', descuento:0:6);
writeln ('Valor de licencias adicionales: ', licencias_adicionales:0:6);
writeln;
write ('Presiona una tecla para terminar . . . ');
readkey;
end.