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
Răspunsuri la întrebare
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.