Răspuns :
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.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!