• Lenguaje

    Pascal

  • Descripción

    Registrar la cantidad de estudiantes que asisten a un museo (escolares, de institutos o universitarios). Por cada estudiante se ingresará el tipo de estudiante y el turno (mañana, tarde o noche)
    Estudiante | Cobro
    Escolar | $10
    De instituto | $18
    Universitario | $20
    Mostrar un reporte con:
    - El total de pagos recaudado por turno.
    - El total de pagos recaudado por tipo de estudiante.
    - La cantidad de estudiantes por tipo.

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
82
83
84
85
86
87
program ReporteDeEstudiantesEnUnMuseo;
uses crt;

var cantidad_de_institutos, cantidad_escolares, cantidad_universitarios, cobro, i : integer;
var n, recaudado_de_institutos, recaudado_escolares, recaudado_manana, recaudado_noche : integer;
var recaudado_tarde, recaudado_universitarios, tipo, turno : integer;
begin
    cantidad_de_institutos := 0;
    cantidad_escolares := 0;
    cantidad_universitarios := 0;
    recaudado_de_institutos := 0;
    recaudado_escolares := 0;
    recaudado_manana := 0;
    recaudado_noche := 0;
    recaudado_tarde := 0;
    recaudado_universitarios := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        cobro := 0;
        writeln ('Selecciona el valor de tipo.');
        writeln ('    1.- Escolares');
        writeln ('    2.- De institutos');
        writeln ('    3.- Universitarios');
        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 turno.');
        writeln ('    1.- Ma'#164'ana');
        writeln ('    2.- Tarde');
        writeln ('    3.- Noche');
        write ('    : ');
        repeat
            readln (turno);
            if (turno<1) or (turno>3) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (turno>=1) and (turno<=3);
        if tipo=1 then
            begin
                cobro := 10;
                recaudado_escolares := recaudado_escolares+cobro;
                cantidad_escolares := cantidad_escolares+1;
            end;
        if tipo=2 then
            begin
                cobro := 18;
                recaudado_de_institutos := recaudado_de_institutos+cobro;
                cantidad_de_institutos := cantidad_de_institutos+1;
            end;
        if tipo=3 then
            begin
                cobro := 20;
                recaudado_universitarios := recaudado_universitarios+cobro;
                cantidad_universitarios := cantidad_universitarios+1;
            end;
        if turno=1 then
            begin
                recaudado_manana := recaudado_manana+cobro;
            end;
        if turno=2 then
            begin
                recaudado_tarde := recaudado_tarde+cobro;
            end;
        if turno=3 then
            begin
                recaudado_noche := recaudado_noche+cobro;
            end;
        writeln ('Valor de cobro: ', cobro);
        writeln;
    end;
    writeln ('Valor de cantidad de institutos: ', cantidad_de_institutos);
    writeln ('Valor de cantidad escolares: ', cantidad_escolares);
    writeln ('Valor de cantidad universitarios: ', cantidad_universitarios);
    writeln ('Valor de recaudado de institutos: ', recaudado_de_institutos);
    writeln ('Valor de recaudado escolares: ', recaudado_escolares);
    writeln ('Valor de recaudado manana: ', recaudado_manana);
    writeln ('Valor de recaudado noche: ', recaudado_noche);
    writeln ('Valor de recaudado tarde: ', recaudado_tarde);
    writeln ('Valor de recaudado universitarios: ', recaudado_universitarios);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.