Informatică, întrebare adresată de FeliV, 8 ani în urmă

Elaborați un program care citește de la tastatură și afișează pe ecran datele despre fiecare vagon intrat sau ieșit din depou. Datele în studiu includ:- numarul de inmatriculare(integer),-stația de inmatriculare(string),-anul fabricatii(1960..2000),-tipul vagonului,-capacitatea de încarcate(real),-proprietarul vagonului(string)..Ajutați-mă vă rog


boiustef: pascal, desigur, da?
FeliV: Da
boiustef: ca model a servit programul P127 de la pagina 48, manual de info, clasa XI

Răspunsuri la întrebare

Răspuns de boiustef
1

Program ex3pag50clasaXI;

{ Depozitul de trenuri }

type Tren=record

       nr:integer;

       st:string;

       an:1960..2000;

       tip:string;

       cap:real;

       prop:string;

    end;

    AdresaCelula=^Celula;

    Celula=record

                 t : Tren;

                 Prec : AdresaCelula;

           end;

var S : AdresaCelula; { adresa virfului }

   c : char;

procedure Introduc;

var R : AdresaCelula;

begin

new(R);

writeln('Dati datele despre trenul ce solicita intrarea in depozit:');

writeln('Numarul de inmatriculare: '); read(R^.t.nr);

writeln('Statia de inmatriculare: '); read(R^.t.st);

writeln('Anul de fabricare: '); read(R^.t.an);

writeln('Tipul vagonului: '); read(R^.t.tip);

writeln('Capacitatea vagonului: '); read(R^.t.cap);

writeln('Proprietarul vagonului: '); read(R^.t.prop);

 

R^.Prec:=S;

S:=R;

end; { Introduc }

procedure Extrag;

var R : AdresaCelula;

begin

if S=nil then writeln('In depozit lipsesc trenuri...')

         else begin

                R:=S;

                writeln('Pleaca din depozit trenul cu urmatoarele date:');

                writeln('Numarul de inmatriculare: ', R^.t.nr);

                writeln('Statia de inmatriculare: ', R^.t.st);

                writeln('Anul de fabricare: ', R^.t.an);

                writeln('Tipul vagonului: ', R^.t.tip);

                writeln('Capacitatea vagonului: ', R^.t.cap);

                writeln('Proprietarul vagonului: ', R^.t.prop);

                S:=S^.Prec;

                dispose(R);

              end;

end; { Extrag }

procedure Afis;

var R : AdresaCelula;

begin

if S=nil then writeln('In depozit lipsesc trenuri...')

  else begin

         writeln('In depozit stationeaza trenurile: ');

         R:=S;

         while R<>nil do

          begin

             writeln('Numarul de inmatriculare: ', R^.t.nr);

             writeln('Statia de inmatriculare: ', R^.t.st);

             writeln('Anul de fabricare: ', R^.t.an);

             writeln('Tipul vagonului: ', R^.t.tip);

             writeln('Capacitatea vagonului: ', R^.t.cap);

             writeln('Proprietarul vagonului: ', R^.t.prop);

             R:=R^.Prec;

             writeln;

           end;

      end;

readln;

end; { Afis }

begin

S:=nil;  { initial stiva este vida }

repeat

  writeln('Meniu:');

  writeln('   I - Introducerea trenului in depozit');

  writeln('   E - Extragerea trenului din depozit');

  writeln('   A - Afisarea depozit la ecran');

  writeln('   O - Oprirea programului');

  write('Optiunea='); readln(c);

  case c of

      'I' : Introduc;

      'E' : Extrag;

      'A' : Afis;

      'O' :

      else writeln('Optiune necunoscuta')

  end;

until c='O';

writeln('O zi buna!');

end.


FeliV: Mulțumesc mult
boiustef: cu plăcere
Alte întrebări interesante