Sunteți pe pagina 1din 2

Program P127;

{Crearea si prelucrarea unei stive }


type AdresaCelula=^Celula;
Celula=record
Info : string;
Prec : AdresaCelula;
end;
var S,N,P,An,Dt : AdresaCelula; {adresa virfului }
c : char;
procedure Introduc;
var R : AdresaCelula;
begin
new(R);
writeln('Dati persoana angajata');
writeln(' sa fie introdusa:');
readln(R^.Info);
R^.Prec:=S;
S:=R;
writeln('Numele');
readln(R^.Info);
R^.Prec:=N;
N:=R;
writeln('Prenuumele');
readln(R^.Info);
R^.Prec:=P;
P:=R;
writeln('Anul nasterii (1930...1985)');
readln(R^.Info);
R^.Prec:=An;
An:=R;
writeln('Data angajarii (ziua,luna,anul)');
readln(R^.Info);
R^.Prec:=Dt;
Dt:=R;
end; { Includ }
procedure Extrag;
var R : AdresaCelula;
begin
if S=nil then writeln('Stiva este vida')
else begin
R:=S;
write('Este extras');
writeln(' elementul:');
writeln(R^.Info);
S:=S^.Prec;
dispose(R);
end;
end; { Extrag }
procedure Afis;
var R : AdresaCelula;
begin
if S=nil then writeln('Stiva este vida')
else begin
writeln('Stiva include elementele:');
R:=S;
R:=N;
R:=P;
R:=An;
R:=Dt;
while R<>nil do begin
writeln(R^.Info);
R:=R^.Prec;

end;
end;
readln;
end; { Afis }
begin
S:=nil; { ini�ial stiva este vid� }
repeat
writeln('Meniu:');
writeln('I - Introducerea elementului;');
writeln('E - Extragerea elementului');
writeln('A - Afisarea stivei pe 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';
end.

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