Pascal/Turbo Pascal - programa con pilas

 
Vista:

programa con pilas

Publicado por yoselin (3 intervenciones) el 29/09/2016 03:11:04
I Necesito desarrollar un programa para resolver el siguiente problema. (usando el lenguaje de pascal)

Un estacionamiento se conforma de un solo carril que acepta hasta 10 automóviles. Únicamente hay una entrada/salida al estacionamiento en un extremo del carril. Si llega un cliente para sacar un automóvil que no esté cerca de la salida, todos los carros que bloquean su ruta se quitan, se saca el automóvil del cliente y los otros automóviles vuelven a ingresar en el mismo orden que estaban.

El control del estacionamiento se tiene con base en el tipo de movimiento (llegada o salida) y el número de placa. El programa debe mostrar un mensaje cada vez que llega o sale un automóvil. Cuando llega un automóvil, el programa debe informar si hay o no espacio en el estacionamiento. Si no hay espacio, el automóvil se va sin entrar. Cuando sale un auto, el mensaje debe incluir la cantidad de veces que se ha movido del estacionamiento para permitir que salgan otros automóviles.

II. Usa el TAD pila correspondiente, para diseñar el programa.
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

programa con pilas

Publicado por ramon (2158 intervenciones) el 30/09/2016 18:27:34
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
{Espero esto te ayude a seguir tu tarea }
 
program pilas;
 uses
   crt;
     const
        max = 10;
 
     type
       string7 = string[7];
       string12 = string[12];
       punteropila = ^nodopila;
       nodopila = record
             codigo : string7;
             nplaca : string12;
             sig : punteropila;
           end;
      pila = record
             alto : punteropila;
             end;
 
   var
      p : pila;
      cc : string7;
      tt : string12;
      tec : char;
      autom : integer;
 
 
   procedure crearpila(var s : pila);
   begin
      s.alto := nil;
   end;
 
   procedure entradaapila(dato : string7; placa : string12; var s : pila);
   var
     k : punteropila;
     begin
        new(k);
        k^.codigo := dato;
        k^.nplaca := placa;
        k^.sig := s.alto;
        s.alto := k;
     end;
 
   procedure sacadepila(var s : pila);
   var
      k : punteropila;
      begin
         if s.alto <> nil then
         begin
            writeln('   ',s.alto^.codigo,'    ',s.alto^.nplaca);
            k := s.alto;
            s.alto := s.alto^.sig;
            dispose(k);
          end;
        end;
 
    function pilavacia(s : pila) : boolean;
    begin
       if s.alto = nil then
       pilavacia := true
    else
       pilavacia := false;
     end;
 
     begin
        clrscr;
        autom := 1;
        crearpila(p);
      repeat
        clrscr;
        write('  Introducir Movimiento : ');
        readln(cc);
        write('  Introducir matriculas : ');
        readln(tt);
        writeln;
        writeln('  Desea Entrar Mas Datos [S/N]');
        entradaapila(cc,tt,p);
        autom := autom + 1;
        if autom > max then
        begin
          writeln('  Cupo Terminado ');
          writeln('  Pulse Una Tecla');
          readkey;
          break;
        end;
        repeat
            tec := upcase(readkey);
        until tec in['S','N'];
       until tec = 'N';
        clrscr;
        writeln;
        writeln(' Sacar de Pila ');
        writeln;
        while not pilavacia(p) do
        sacadepila(p);
        writeln;
        writeln('  Pulse Una Tecla');
        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