Witam serdecznie forumowiczów!
Mam mały problemik :(
Program mam gotowy cały!
Tylko na dole mam program z "function pelny:boolean"
Program ma na celu pokazanie między innymi czy stos jest zapełniony
Proszę o porady małe.
Pozdrawiam.
moduł
unit uStos;
interface
procedure inicjuj;
{Inicjuje pusty stos}
procedure wstaw(i:longint);
{Wstawia element i na stos}
function zdejmij:longint;
{Jesli stos jest pusty, to wartoscia jest nic,
w przeciwnym razie wartoscia jest element zdjety ze szczytu stosu}
function pusty:boolean;
{Wartosc true, gdy stos jest pusty, w przec. razie falsz}
function szczyt:longint;
{Jesli stos jest pusty, to wartoscia jest nic,
w przeciwnym razie element ze szczytu stosu}
function pelny:boolean;
const nic=-MaxLongint; {Oznacza nieokreslona wartosc funkcji szczyt i zdejmij}
implementation
const maxStos=100;
type zakres=0..maxStos;
tab=array[zakres] of longint;
var stos:tab;
wsk:zakres;
procedure inicjuj;
begin
wsk:=0
end; {inicjuj}
procedure wstaw(i:longint);
begin
Inc(wsk);
stos[wsk]:=i
end; {wstaw}
function zdejmij:longint;
begin
if pusty then zdejmij:=nic
else begin
zdejmij:=stos[wsk];
Dec(wsk)
end
end; {zdejmij}
function pusty:boolean;
begin
pusty:=wsk=0
end; {pusty}
function szczyt:longint;
begin
if pusty then szczyt:=nic
else szczyt:=stos[wsk]
end; {szczyt}
__function pelny:boolean;
begin
if wsk=zakres then pusty:=true else pusty :=false;
end;__
end.'
Sam program
program TestowanieStosu; {cwicz. 1.42}
uses Crt,uStos;
const n=20;
var i:1..n;
begin
ClrScr;
Writeln('Nieokreslona wartosc wynosi: ',nic);
inicjuj;
Randomize;
Writeln('Na szczycie stosu pustego jest ',szczyt);
Writeln('Umieszczanie na stosie');
for i:=1+Random(n) downto 1 do begin
wstaw(Random(100)); Write(szczyt,' ')
end;
Writeln; Writeln('Zdejmowanie ze stosu');
while not pusty do Write(zdejmij,' ');
Writeln;
Writeln('Wartosc zdjeta ze stosu pustego wynosi ',zdejmij);
writeln('stos jest pelny',pelny);
Repeat Until Keypressed;
end.