Sunteți pe pagina 1din 2

Program tpamihaela;

uses crt;
type AdresaCelula=^Celula;
Celula=record
numarul : integer;
statia:string;
an_f:1960..2019;
tip_v:string;
capacitate:real;
proprietate:string;
Prec : AdresaCelula;
end;
var S : AdresaCelula;
c : char;

procedure Introducere;
var R : AdresaCelula;
begin
new(R);
writeln('Dati datele vagonului nou ');
writeln(' -numarul de inmatriculare este :');readln(R^.numarul);
writeln(' -statia de inmatriculare este:');readln(R^.statia);
writeln(' -anul fabricarii este:');readln(R^.an_f);
writeln(' -tipul vagonului este:');readln(R^.tip_v);
writeln(' -capacitatea de incarcare este:');readln(R^.capacitate);
writeln(' -proprietarul vagonului este:');readln(R^.proprietate);
R^.Prec:=S;
S:=R;
end;

procedure Extragere;
var R : AdresaCelula;
begin
if S=nil then writeln('Stiva este vida')
else begin
R:=S;
write('Este extras elementul:');
writeln(R^.numarul);
S:=S^.Prec;
dispose(R);
end;
end;

procedure Afisare;
var R : AdresaCelula;
begin
if S=nil then writeln(' nu este nici un vagon')
else begin
writeln('locomotiva include urmatoarele vagoane:');
writeln('| numarul | statia | anul_f | tipul_v |capacitate | proprietar |');
R:=S;
while R<>nil do begin
writeln('|',R^.numarul,'|',R^.statia ,'|',R^.an_f,'|',R^.tip_v,'|',R^.capacitate,'|
',R^.proprietate);
R:=R^.Prec;
end;
end;

readln;
end;

begin
S:=nil;
repeat
writeln('Meniu:');
writeln('I - Introducerea elementului;');
writeln('E - Extragerea elementului');
writeln('A - Afisarea stivei');
writeln('O - Oprirea programului');
write('Optiunea=');readln(c);
case c of
'I' : Introducere;
'E' : Extragere;
'A' : Afisare;
'O' :
else writeln('Optiune necunoscuta')
end;
until c='O';
end.

S-ar putea să vă placă și