Pascal/Turbo Pascal - Ayudaaa con este programa en turbo pascal

 
Vista:
sin imagen de perfil

Ayudaaa con este programa en turbo pascal

Publicado por Jose (9 intervenciones) el 30/05/2014 17:33:26
Por favor necesito que me asesoren en cuanto a este programa en pascal:

El Estacionamiento SICAR C.A con N clientes, actualmente su tarifa por auto tiene un costo de 60 bs por hora este ha decido organizar sus operaciones
Se tiene como datos de entrada:
 Nombre del cliente
 Edad del cliente
 El año del vehículo
 Duración de horas en el estacionamiento.

Deciden organizarlo de la siguiente forma
 Si el año del vehículo es mayor o igual al año 2012, se estacionará en el piso número 1.
 Si el año del vehículo es menor que el año 2012, se estacionará en el piso número 2.
 Si el cliente es menor de 60 años no recibirá descuento.
 Si el cliente es mayor o igual de 60 años recibirá un descuento del 15 %

Imprimir por cliente nombre, tarifa a cancelar y el piso donde se encuentra su vehículo, indicar si recibe o no descuento y el monto de este descuento.

Finalmente imprimir:
 El número de Vehículos en el piso número 1
 El número de vehículos en el piso numero 2
 Total de vehículos en el estacionamiento
 El número de clientes con descuento
 Porcentaje de cliente con descuento
 El monto cobrado en el piso numero 1
 El monto cobrado en el piso numero 2
 El monto total cobrado en el estacionamiento.

ESPERO SU PRONTA RESPUESTA POR FAVOOOOOORRR!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayudaaa con este programa en turbo pascal

Publicado por ramon (2158 intervenciones) el 01/06/2014 00:19:08
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
{Mira esto}
 
program estaciona;
 uses
   crt;
 const
     cli = 50;
 type
    cliente = record
         clave  : longint;
         piso   : integer;
         Nombre : string[80];
         Edad   : integer;
         desc   : integer;
         antig  : integer;
         horas  : real;
       end;
 
 
   var
     posicion : array[1..cli] of cliente;
     cont : integer;
     tec : char;
     num : integer;
 
   procedure datos_cliente(n : integer);
   begin
      writeln('   ***** Entradas Clientes *****');
      writeln;
      posicion[n].clave := cont;
      write('  Nombre                 : ');
      readln(posicion[n].nombre);
      write('  Edad                   : ');
      readln(posicion[n].edad);
      if posicion[n].edad >= 60 then
      posicion[n].desc := 15
   else
      posicion[n].desc := 0;
      write('  Antiguedad Del Veiculo : ');
      readln(posicion[n].antig);
      if posicion[n].antig >= 2012 then
      posicion[n].piso := 1
    else
      posicion[n].piso := 2;
      write('  Horas De Estancia      : ');
      readln(posicion[n].horas);
      writeln('  **** Los Datos Son Correctos [S/N]');
      repeat
          tec := upcase(readkey);
      until tec in['N','S'];
      if tec = 'N' then
      begin
      clrscr;
      datos_cliente(n);
      end;
   end;
 
   procedure cancelacion(clave : longint);
   var
     deaq : real;
   begin
      clrscr;
      writeln('  ***** Cancelacion *****');
      writeln('  Nombre : ',posicion[clave].nombre,'  Horas : ',
      posicion[clave].horas:0:2,'  Descuento : ',
      posicion[clave].desc,'  Planta : ',posicion[clave].piso);
      deaq := ((posicion[clave].horas * 60) * posicion[clave].desc) / 100;
      writeln('  Costo = ',posicion[clave].horas * 60 - deaq:0:2,'   ',
               'Descuento = ',deaq:0:2);
   end;
 
   procedure presenta_reporte;
   var
     descu, rr : integer;
     pla1, pla2 : integer;
     deaq, vol1, vol2 : real;
    begin
       pla1 := 0;
       pla2 := 0;
       descu := 0;
       vol1 := 0;
       vol2 := 0;
       for rr := 1 to cont do
       begin
          if posicion[rr].desc = 15 then
          descu := descu + 1;
          if posicion[rr].piso = 1 then
          begin
          pla1 := pla1 + 1;
          deaq := ((posicion[rr].horas * 60) * posicion[rr].desc) / 100;
          vol1 := vol1 + (posicion[rr].horas * 60) - deaq;
          end;
         if posicion[rr].piso = 2 then
         begin
          pla2 := pla2 + 1;
          deaq := ((posicion[rr].horas * 60) * posicion[rr].desc) / 100;
          vol2 := vol2 + (posicion[rr].horas * 60) - deaq;
          end;
       end;
        writeln('  ****** Reporte ******');
        writeln;
        writeln('  Veiculos Aparcamiento 1          = ',pla1);
        writeln('  Veiculos Aparcamiento 2          = ',pla2);
        writeln('  Total Veiculos Apt. 1/2          = ',pla1 + pla2);
        writeln('  Numero De Clientes Con Descuento = ',descu);
        writeln('  Promedio clientes con Descuento  = ',descu / cont:0:2);
        writeln('  Volumen Cobrado Piso Nm. 1       = ',vol1:0:2);
        writeln('  Volumen Cobrado Piso Nm. 2       = ',vol2:0:2);
        writeln('  Total Piso 1/2                   = ',vol1 + vol2:0:2);
    end;
 
 
 
   begin
       clrscr;
       cont := 1;
     repeat
       datos_cliente(cont);
       clrscr;
       writeln('  **** Desea Entrar Mas datos [S/N] ****');
       repeat
           tec := upcase(readkey);
       until tec in['S','N'];
      if tec = 'S' then
      cont := cont + 1;
      if cont > cli then
      cont := cli;
     until tec = 'N';
     clrscr;
     writeln('  Entre Num. Cliente A Cancelar [ 1 al ',cont,' ]');
     write('  Numero : ');
     readln(num);
     cancelacion(num);
     writeln;
     presenta_reporte;
     readkey;
   end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar