• 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

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program EmpresaDeAplicacionesComerciales;
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.