• Lenguaje

    Pascal

  • Descripción

    Un empleado de la tienda "Venta Express" realiza N ventas durante el día de trabajo. Se requiere saber:
    - Cuántas de ellas fueron mayores a $1,100.
    - Cuántas fueron mayores a $600 pero menores o iguales a $1,100.
    - Cuántas fueron menores o iguales a $600.
    Sabiendo que existe dos tipos de ventas A o B, si es A un descuento de 20%, en caso de B un descuento de 35%. Además, se requiere saber el monto de lo vendido en cada categoría y de forma global, al monto final aplicar el IGV (18%). Se debe imprimir el nombre del 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
program VentaExpress;
uses crt;

var entre_600_y_1100, i, mayores_a_1100, menores_a_600, n : integer;
var tipo_de_venta : integer;
var IGV, descuento, monto, monto_categoria_A, monto_categoria_B : real;
var monto_final, monto_global, venta : real;
var nombre_del_cliente : string;
begin
    entre_600_y_1100 := 0;
    mayores_a_1100 := 0;
    menores_a_600 := 0;
    monto_categoria_A := 0;
    monto_categoria_B := 0;
    monto_global := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el nombre del cliente: ');
        readln (nombre_del_cliente);
        write ('Ingresa el valor de venta: ');
        readln (venta);
        writeln ('Selecciona el valor de tipo de venta.');
        writeln ('    1.- A');
        writeln ('    2.- B');
        write ('    : ');
        repeat
            readln (tipo_de_venta);
            if (tipo_de_venta<1) or (tipo_de_venta>2) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (tipo_de_venta>=1) and (tipo_de_venta<=2);
        if venta>1100 then
            begin
                mayores_a_1100 := mayores_a_1100+1;
            end;
        if (venta>600) and (venta<=1100) then
            begin
                entre_600_y_1100 := entre_600_y_1100+1;
            end;
        if venta<=600 then
            begin
                menores_a_600 := menores_a_600+1;
            end;
        if tipo_de_venta=1 then
            begin
                descuento := venta*0.2;
            end
        else
            begin
                descuento := venta*0.35;
            end;
        monto := venta-descuento;
        IGV := monto*0.18;
        monto_final := monto+IGV;
        monto_global := monto_global+monto;
        if tipo_de_venta=1 then
            begin
                monto_categoria_A := monto_categoria_A+monto;
            end
        else
            begin
                monto_categoria_B := monto_categoria_B+monto;
            end;
        writeln ('Nombre del cliente: ', nombre_del_cliente);
        writeln ('Valor de IGV: ', IGV:0:6);
        writeln ('Valor de descuento: ', descuento:0:6);
        writeln ('Valor de monto: ', monto:0:6);
        writeln ('Valor de monto final: ', monto_final:0:6);
        writeln;
    end;
    writeln ('Valor de entre 600 y 1100: ', entre_600_y_1100);
    writeln ('Valor de mayores a 1100: ', mayores_a_1100);
    writeln ('Valor de menores a 600: ', menores_a_600);
    writeln ('Valor de monto categoria A: ', monto_categoria_A:0:6);
    writeln ('Valor de monto categoria B: ', monto_categoria_B:0:6);
    writeln ('Valor de monto global: ', monto_global:0:6);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.