Pascal/Turbo Pascal - necesito ayuda sobre la procedure ordenar urgente por favor

   
Vista:

necesito ayuda sobre la procedure ordenar urgente por favor

Publicado por kellys gil (4 intervenciones) el 28/11/2013 01:32:13
En el período vacacional la coordinación de tránsito nacional implantará un programa que genere estadísticas de movimiento vehicular en tal sentido se cuenta con lo siguiente:
1. Se registrará la siguiente información por cada vehículo: placa, número de pasajeros, alcabala, fecha, tipo de vehículo (1 para particulares, 2 para por puesto, 3 para taxi, 4 para transporte públicos). 2. Las estadísticas se clasifican de la siguiente manera:
1. Estadísticas por alcabalas: vehículos que salen, vehículos que entran por fechas. En cantidades y porcentajes.
2. Estadísticas por vehículos: número de alcabalas transitadas, días transitados, promedio de pasajeros.
3. Estadísticas por tipo de vehículos: cantidad y porcentaje de vehículos según su tipo y por alcabas, cantidad de pasajeros contabilizados por tipo de vehículo.
Con base en lo planteado, diseñe un algoritmo en pseudocódigo donde se muestre el uso correcto de las técnicas de programación estructurada o subprogramas y realice lo siguiente:
Presente un menú de mantenimiento con las opciones siguientes: Incluir, Consultar, Modificar, Eliminar, Reporte de estadística y Salida.
Registre, con la opción incluir, los siguientes datos:
• Placa del vehículo
• Número de pasajeros
• Alcabala
• Fecha
• Tipo de vehículo (1 para particulares, 2 para por puesto, 3 para taxi, 4 para transporte públicos)
ƒ Ordene el registro por fecha y placa del vehículo.
Muestre por pantalla, cuando realice una Consulta de un vehículo los datos de registrados por grupo.
Genere por medio de la opción “Reporte” las siguientes estadísticas:
NOTA: En las alternativas “Modificar, Eliminar y Consultar” haga uso de los datos registrados con la opción “Incluir”.



Estadística 1
(Una página por alcabala y ordenado por fecha de menor a mayor)
Coordinación de Tránsito Nacional Pág. X
** Estadística por Alcabala **
Alcabala: xxxxxxxx

FECHA CANTIDAD DE VEHÍCULOS PORCENTAJE DE VEHÍCULOS
SALEN ENTRAN SALEN% ENTRAN %
=========== ======== ========== ====== === ========== =====
DD/MM/AAAA XX.XXX XX.XXX XX,XX% XX,XX%
DD/MM/AAAA XX.XXX XX.XXX XX,XX% XX,XX%
DD/MM/AAAA XX.XXX XX.XXX XX,XX% XX,XX%
DD/MM/AAAA XX.XXX XX.XXX XX,XX% XX,XX%
=========== ======== ========== ========= ===============
TOTAL DE FECHAS PROCESADAS: XX




Estadística 2
Debe estar ordenado por la placa del vehículo.
Coordinación de Tránsito Nacional Pag. X
** Estadística por Vehículo **

PLACA NÚMERO DE DÍAS PROMEDIO DE
ALCABALAS TRANSITADOS PASAJEROS
=========== ========= =========== ===============
XXXXX XXX XX.XXX XX,XX
XXXXX XXX XX.XXX XX,XX
XXXXX XXX XX.XXX XX,XX
XXXXX XXX XX.XXX XX,XX
XXXXX XXX XX.XXX XX,XX
XXXXX XXX XX.XXX XX,XX
=========== ========= =========== ===============

TOTAL DE VEHÍCULOS PROCESADOS: XX.XXX




Estadística 3
(Una página por alcabala y ordenado por tipo de vehículo de menor a mayor)
Coordinación de Tránsito Nacional Pag. X
** Estadística por Tipo de Vehículo **
Alcabala: xxxxxxxx

TIPO DE VEHÍCULOS PASAJEROS
VEHÍCULO CANTIDAD PORCENTAJE CONTABILIZADOS
=========== ======== ========== ==============
XXXXX XXX XX.XX% XXX.XXX
XXXXX XXX XX.XX% XXX.XXX
XXXXX XXX XX.XX% XXX.XXX
XXXXX XXX XX.XX% XXX.XXX
XXXXX XXX XX.XX% XXX.XXX
=========== ======== ========== ==============
TOTAL DE VEHÍCULOS PROCESADOS: XX.XXX


****este es el trabajo original y solo faltaria que la procedure" reporte de estadisticas" tenga unas subrutinas que me que permitan ordenar los datos por:
ƒ
Alcabala y fecha.
ƒ Placa del vehículo.
ƒ Alcabala y tipo de vehículo,



gracias de antemano por sus ayuda
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

necesito ayuda sobre la procedure ordenar urgente por favor

Publicado por ramon (2072 intervenciones) el 29/11/2013 14:05:26
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
{Mira esta seria una forma}
 
 uses
    crt;
  const
     tipove : array[1..4] of string[25] = (
     'para particulares','para por puesto','para taxi',
                                'para transporte publicos');
  type
    informacion = record
             placa : string[15];
             npasajeros : integer;
             alcabala   : string[60];
             fecha      : string[12];
             vehiculo   : integer;
             end;
 
  var
    info : array[1..200] of informacion;
    cont : integer;
 
 
 
  procedure ordenareg(cu : integer);
  var
    temp : informacion;
    pon, nume : integer;
  begin
      if cont > 1 then
      begin
      for nume := 1 to cont - 1 do
         for pon := cont - 1 downto nume + 1 do
         if cu = 1 then
         begin
         if info[nume].fecha > info[pon].fecha then
         begin
            temp := info[nume];
            info[nume] := info[pon];
            info[pon] := temp;
         end;
        end;
        if cu = 2 then
         begin
         if info[nume].placa > info[pon].placa then
         begin
            temp := info[nume];
            info[nume] := info[pon];
            info[pon] := temp;
         end;
        end;
        if cu = 3 then
         begin
         if info[nume].vehiculo > info[pon].vehiculo then
         begin
            temp := info[nume];
            info[nume] := info[pon];
            info[pon] := temp;
         end;
        end;
       end
     else
        begin
        writeln('*** No Tiene Datos Para Ordenar Pulse Una Tecla ***');
        readkey;
        end;
     end;
 
  procedure ordenapor;
  var
    orden : char;
    opcion : integer;
  begin
     opcion := 0;
   repeat
     clrscr;
     writeln(' **** Ordenar Por ****');
     writeln;
     writeln('  1 = Fecha De Menor a Mayor');
     writeln('  2 = Placa Del Vehiculo Menor a Mayor');
     writeln('  3 = Tipo De Vehiculo Menor a Mayor');
     writeln('  4 = Nada');
     writeln;
     writeln('<<<<< Elija Opcion >>>>>');
     repeat
         orden := readkey;
     until orden in ['1','2','3','4'];
     clrscr;
   case orden of
 '1' : ordenareg(1);
 '2' : ordenareg(2);
 '3' : ordenareg(3);
 '4' : opcion := 4;
   end;
  until opcion = 4;
 end;
 
 
 begin
     cont := 0; {Contador De Registros Entrados}
     ordenapor;
 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