• Lenguaje

    Pascal

  • Descripción

    Realice un algoritmo para resolver el siguiente problema: una fábrica de pantalones desea calcular cuál es el precio final de venta y cuánto ganará por los N pantalones que produzca con el corte de alguno de sus modelos, para esto se cuenta con la siguiente información:
    a) Tiene dos modelos A y B, tallas 30, 32 y 36 para ambos modelos.
    b) Para el modelo A se utiliza 1.50 m de tela, y para el B 1.80 m.
    c) Al modelo A se le carga 80 % del costo de la tela, por mano de obra. Al modelo B se le carga 95 % del costo de la tela, por el mismo concepto
    d) A las tallas 32 y 36 se les carga 4 % del costo generado por mano de obra y tela, sin importar el modelo.
    e) Cuando se realiza el corte para fabricar una prenda sólo se hace de un solo modelo y una sola talla.
    f) Finalmente, a la suma de estos costos se les carga 30%, que representa la ganancia extra de la tienda.

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
program GananciasDeUnaFabricaDePantalones;
uses crt;

var modelo, talla : integer;
var N_pantalones, cargo_por_talla, costo_de_la_tela, ganancia, ganancia_extra : real;
var mano_de_obra, metro_de_tela, metros_de_tela, precio_final : real;
begin
    write ('Ingresa el valor de N pantalones: ');
    readln (N_pantalones);
    write ('Ingresa el valor de metro de tela: ');
    readln (metro_de_tela);
    writeln ('Selecciona el valor de modelo.');
    writeln ('    1.- A');
    writeln ('    2.- B');
    write ('    : ');
    repeat
        readln (modelo);
        if (modelo<1) or (modelo>2) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (modelo>=1) and (modelo<=2);
    writeln ('Selecciona el valor de talla.');
    writeln ('    1.- 30');
    writeln ('    2.- 32');
    writeln ('    3.- 36');
    write ('    : ');
    repeat
        readln (talla);
        if (talla<1) or (talla>3) then
            write ('Valor incorrecto. Ingr'#130'salo nuevamente.: ');
    until (talla>=1) and (talla<=3);
    if modelo=1 then
        begin
            metros_de_tela := 1.5*N_pantalones;
        end
    else
        begin
            metros_de_tela := 1.8*N_pantalones;
        end;
    costo_de_la_tela := metros_de_tela*metro_de_tela;
    if modelo=1 then
        begin
            mano_de_obra := costo_de_la_tela*0.8;
        end
    else
        begin
            mano_de_obra := costo_de_la_tela*0.95;
        end;
    if (talla=2) or (talla=3) then
        begin
            cargo_por_talla := mano_de_obra*0.04;
        end
    else
        begin
            cargo_por_talla := 0;
        end;
    ganancia_extra := (costo_de_la_tela+mano_de_obra+cargo_por_talla)*0.3;
    precio_final := costo_de_la_tela+mano_de_obra+cargo_por_talla+ganancia_extra;
    ganancia := cargo_por_talla+ganancia_extra;
    writeln ('Valor de cargo por talla: ', cargo_por_talla:0:6);
    writeln ('Valor de costo de la tela: ', costo_de_la_tela:0:6);
    writeln ('Valor de ganancia: ', ganancia:0:6);
    writeln ('Valor de ganancia extra: ', ganancia_extra:0:6);
    writeln ('Valor de mano de obra: ', mano_de_obra:0:6);
    writeln ('Valor de metros de tela: ', metros_de_tela:0:6);
    writeln ('Valor de precio final: ', precio_final:0:6);
    writeln;
    write ('Presiona una tecla para terminar . . . ');
    readkey;
end.