Pascal/Turbo Pascal - Carga Camiones

 
Vista:
sin imagen de perfil

Carga Camiones

Publicado por elias (45 intervenciones) el 20/04/2013 02:46:00
Tengo que elaborar un procedure que cree lista de camiones e inserte en dicha lista los datos de camiones que esperan cargar según su numero de entrada a la empresa y sabiendo que es una cola...¿por donde comienzo?
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
sin imagen de perfil

Carga Camiones

Publicado por elias (45 intervenciones) el 22/04/2013 19:11:48
Tengo lo siguiente:

puntero=^nodo;

nodo=record
Camion : string [15];
Fecha : string [30];
Tipo de Carga : string [10];
Procedencia : string [10];
Destino : string [10];
Entrada: {aqui me da un numero de llegada, es el dato más importante porque es el que ordena Cola..no?}
sig : puntero;
end;

¿Qué mas debo hacer para insertarlo en la lista enlazada y generar así los nodos?
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

Carga Camiones

Publicado por ramon (2158 intervenciones) el 23/04/2013 22:29:04
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{Mira esto te ayudara}
 
uses
    crt;
  type
     punteroejemp = ^ejemplo;
     ejemplo = record
           datos : string;
           sig : punteroejemp;
         end;
 
 
   var
     tecla : char;
     prime, anter, actu : punteroejemp;
 
 
 
   procedure otroregistroentra;
   procedure entramosdatos;
   begin
       with actu^ do
       begin
          write('Introduzca Datos : ');
          readln(datos);
       end;
   end;
 
   begin
   if prime = nil then
   begin
       new(actu);
       entramosdatos;
       prime := actu;
       actu^.sig := nil;
      end
   else
      begin
          anter := actu;
          new(actu);
          entramosdatos;
          anter^.sig := actu;
          actu^.sig := nil;
      end;
    end;
 
 
    procedure listardatos;
    var
      ver : punteroejemp;
    begin
       ver := prime;
       while ver <> nil do
       begin
          with ver^ do
          writeln(datos);
          ver := ver^.sig;
        end;
        writeln;
        writeln('Pulse [Enter]');
        readln;
     end;
 
   procedure insertaprimero(entrada : string);
   var
      pt : punteroejemp;
    begin
        new(pt);
        pt^.datos := entrada;
        pt^.sig := prime;
        prime := pt;
    end;
 
    procedure insertafinal(entrada : string);
    var
      pt : punteroejemp;
    begin
        new(pt);
        pt^.datos := entrada;
        actu^.sig := pt;
        pt^.sig := nil;
        actu := pt;
    end;
 
    procedure insertamosporordendebalor(entrada : string);
    var
      rr, pp, pt : punteroejemp;
      nofin, salir : boolean;
    begin
       new(pt);
       pt^.datos := entrada;
       pp := prime;
       rr := prime;
       if pp^.datos > entrada then
       begin
          insertaprimero(entrada);
       end
     else
         begin
         salir := false;
         nofin := false;
     repeat
         rr := pp;
         pp := pp^.sig;
         if pp^.datos > entrada then
         begin
            salir := true;
            nofin := true;
         end;
     until (pp^.sig = nil) or (salir = true);
      if (salir = false) and (nofin = false) then
      begin
         insertafinal(entrada);
      end
    else
       begin
          pt^.sig := pp;
          rr^.sig := pt;
       end;
    end;
  end;
 
   procedure insertaregistro;
   var
     dat : string;
     tt : char;
   begin
       clrscr;
       writeln;
       write('Insertamos Entre Datos : ');
       readln(dat);
       writeln;
       writeln('  Pulse  1 = Al Principio   2 = Al Final   3 = Ordenado ',
       '  4 = Nada');
       writeln('  Elija Opcion');
       repeat
       tt := readkey
       until tt in[#49..#52];
    case tt of
  #49 : insertaprimero(dat);
  #50 : insertafinal(dat);
  #51 : insertamosporordendebalor(dat);
  #52 :;
     end;
   end;
 
   begin
       prime := nil;
    repeat
        clrscr;
          repeat
     write('1 = entrar datos  2 = listar datos  3 = Insertar   4  = final');
     tecla := readkey;
     until tecla in[#49..#52];
      if tecla = #49 then
      begin
         clrscr;
         otroregistroentra;
      end;
      if tecla = #50 then
      begin
         clrscr;
         listardatos;
      end;
      if tecla = #51 then
      begin
          clrscr;
          insertaregistro;
      end;
      until tecla = #52;
   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