Pascal/Turbo Pascal - URGENTE NECESITO AYUDAAAA POR FAVOOOORR

 
Vista:
sin imagen de perfil

URGENTE NECESITO AYUDAAAA POR FAVOOOORR

Publicado por Jose (9 intervenciones) el 31/05/2014 20:33:24
POR FAVOOOR NECESITO AYUDA CON EL SIGUIENTE PROGRAMA EN PASCAL EL QUE ME PUEDA AYUDAR SE LO AGRADECERIA MUCHISIMO POR FAVOOORRR


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.
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

URGENTE NECESITO AYUDAAAA POR FAVOOOORR

Publicado por ramon (2158 intervenciones) el 01/06/2014 00:11:22
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 te valdra}
 
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
sin imagen de perfil

URGENTE NECESITO AYUDAAAA POR FAVOOOORR

Publicado por Jose (9 intervenciones) el 03/06/2014 17:40:45
ESTA MUY BUENO AMIGO RAMÓN, PERO SI NO ES DE MUCHA MOLESTIA LO QUISIERA UN POCO MENOS COMPLEJO Y SIN PROCEDURE Y ADEMAS QUE AL FINAL NO ME MUESTRE UN SOLO CLIENTE SINO TODOS LOS CLIENTES QUE INTRODUJE! ESPERO TU RESPUESTA GRACIAS!!!
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

URGENTE NECESITO AYUDAAAA POR FAVOOOORR

Publicado por ramon (2158 intervenciones) el 04/06/2014 11:25:45
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
138
139
140
141
142
143
144
145
{Espero esto sirva a tu forma}
 
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;
     clave, num : integer;
     deaq : real;
     lave : longint;
     descu, rr : integer;
     pla1, pla2 : integer;
     vol1, vol2 : real;
     clientes : integer;
 
 
   begin
     clrscr;
     cont := 1;
     repeat
      fillchar(posicion[cont],sizeof(cliente),0);
      writeln('   ***** Entradas Clientes *****');
      writeln;
      posicion[cont].clave := cont;
      write('  Nombre                 : ');
      readln(posicion[cont].nombre);
      write('  Edad                   : ');
      readln(posicion[cont].edad);
      if posicion[cont].edad >= 60 then
      posicion[cont].desc := 15
   else
      posicion[cont].desc := 0;
      write('  Antiguedad Del Veiculo : ');
      readln(posicion[cont].antig);
      if posicion[cont].antig >= 2012 then
      posicion[cont].piso := 1
    else
      posicion[cont].piso := 2;
      write('  Horas De Estancia      : ');
      readln(posicion[cont].horas);
      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;
      clrscr;
  until tec = 'N';
  clientes := cont;
      clrscr;
      writeln('  Entre Num. Cliente A Cancelar [ 1 al ',cont,' ]');
      write('  Numero : ');
      readln(num);
      clave := num;
      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);
      writeln;
      writeln(' Pulse Una Tecla');
      readkey;
      clrscr;
       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);
        writeln(' === Pulse Una Tecla ===');
        readkey;
        clrscr;
 gotoxy(1,1);write('Clave   Planta   Nombre   Edad   Desc.   Antg.   Horas');
 gotoxy(1,2);write('------------------------------------------------------');
 cont := 0;
        for num := 1 to clientes do
        begin
          cont := cont + 1;
          with posicion[num] do
          begin
           gotoxy(3, 2 + cont);write(clave);
          gotoxy(10, 2 + cont);write(piso);
          gotoxy(18, 2 + cont);write(Nombre);
          gotoxy(27, 2 + cont);write(Edad);
          gotoxy(34, 2 + cont);write(desc);
          gotoxy(42, 2 + cont);write(antig);
          gotoxy(50, 2 + cont);write(horas:0:2);
        end;
        if cont > 21 then
        begin
           gotoxy(2,24);write('Pulse Una Tecla');
           readkey;
           clrscr;
 gotoxy(1,1);write('Clave   Planta   Nombre   Edad   Desc.   Antg.   Horas');
 gotoxy(1,2);write('------------------------------------------------------');
           cont := 0;
        end;
      end;
     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