mam napisać program który będzie sprawdzał na stosie zawsze czy pozostała określona stała minimalna ilość elementów, oraz wielkość stosu nie przekroczy maksymalnej liczby elementów ilość elementów musi być lokalnie funkcje powiny zwracać true
lub false
problem jest w tym że wprowadza jedną wartość zamiast kilku
type
wskaznik = ^element;
element = record
dana: integer;
wsk: wskaznik;
end;
var
s: wskaznik;
a: integer;
const
min = 1;
max = 5;
procedure push(var x: wskaznik; var y: integer);
var
top: wskaznik;
begin
if x = nil then
begin
new(top);
top^.dana := y;
top^.wsk := x;
x := top;
end;
end;
procedure pop(var x: wskaznik; var y: integer);
var
bottom: wskaznik;
begin
if x <> nil then
begin
y := x^.dana;
bottom := x^.wsk;
dispose(x);
x := bottom;
end;
end;
function push2(var x: wskaznik; var y: integer): boolean;
var
il: integer;
begin
if x <> nil then
begin
if il < max then
begin
push(x, y);
push2 := true;
il := il + 1
end
else
push2 := false;
end;
end;
function pop2(var x: wskaznik; var y: integer): boolean;
var
il: integer;
begin
if x <> nil then
begin
if il > min then
begin
pop(x, y);
pop2 := true;
dec(il);
end;
end
else
pop2 := false;
end;
function check(var x: wskaznik; var y: integer): integer;
var
b, i: integer;
begin
while push2(x, y) = true do
begin
writeln('Wpisz ilosc');
readln(y);
push(x, y);
dec(b);
writeln;
while pop2(x, y) = true do
begin
pop(x, y);
writeln(y);
end;
writeln('zdjales wszystkie elementy');
readln;
end;
end;
begin
check(s, a);
writeln;
readln;
end.