• Lenguaje

    Pascal

  • Descripción

    Un almacén ha recopilado los datos de N productos, para esto se ingresan en un proceso repetitivo: el tipo (comida, vestido), la procedencia (Nacional, Importado) y el precio de cada producto. Construya un algoritmo que permita calcular lo siguiente:
    a) El promedio de precios de productos procedencia Nacional.
    b) El promedio de precios de productos procedencia Importado.
    c) El menor precio.
    d) La cantidad de productos del tipo Comida.
    e) La cantidad de productos del tipo Vestido.

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 DatosDeNProductos;
uses crt;

var cantidad_comida, cantidad_importados, cantidad_nacionales, cantidad_vestido, i : integer;
var n, procedencia, tipo : integer;
var menor_precio, precio, promedio_importados, promedio_nacionales : real;
begin
    cantidad_comida := 0;
    cantidad_importados := 0;
    cantidad_nacionales := 0;
    cantidad_vestido := 0;
    menor_precio := 0;
    promedio_importados := 0;
    promedio_nacionales := 0;
    write ('Ingresa el valor de n: ');
    readln (n);
    for i:=1 to n do
    begin
        writeln ('PROCESO ', i);
        write ('Ingresa el valor de precio: ');
        readln (precio);
        writeln ('Selecciona el valor de tipo.');
        writeln ('    1.- Comida');
        writeln ('    2.- Vestido');
        write ('    : ');
        repeat
            readln (tipo);
            if (tipo<1) or (tipo>2) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (tipo>=1) and (tipo<=2);
        writeln ('Selecciona el valor de procedencia.');
        writeln ('    1.- Nacional');
        writeln ('    2.- Importado');
        write ('    : ');
        repeat
            readln (procedencia);
            if (procedencia<1) or (procedencia>2) then
                write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
        until (procedencia>=1) and (procedencia<=2);
        if procedencia=1 then
            begin
                promedio_nacionales := promedio_nacionales+precio;
                cantidad_nacionales := cantidad_nacionales+1;
            end
        else
            begin
                promedio_importados := promedio_importados+precio;
                cantidad_importados := cantidad_importados+1;
            end;
        if (i=1) or (menor_precio>precio) then
            begin
                menor_precio := precio;
            end;
        if tipo=1 then
            begin
                cantidad_comida := cantidad_comida+1;
            end
        else
            begin
                cantidad_vestido := cantidad_vestido+1;
            end;
        writeln;
    end;
    if cantidad_importados = 0 then
        promedio_importados := 0
    else
        promedio_importados := promedio_importados/cantidad_importados;
    if cantidad_nacionales = 0 then
        promedio_nacionales := 0
    else
        promedio_nacionales := promedio_nacionales/cantidad_nacionales;
    writeln ('Valor de cantidad comida: ', cantidad_comida);
    writeln ('Valor de cantidad importados: ', cantidad_importados);
    writeln ('Valor de cantidad nacionales: ', cantidad_nacionales);
    writeln ('Valor de cantidad vestido: ', cantidad_vestido);
    writeln ('Valor de menor precio: ', menor_precio:0:6);
    writeln ('Valor de promedio importados: ', promedio_importados:0:6);
    writeln ('Valor de promedio nacionales: ', promedio_nacionales:0:6);
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.