program StackExample;
type
Stack = record
Data: array [1..100] of Integer;
Top: Integer;
end;
procedure InitStack(var S: Stack);
begin
S.Top := 0;
end;
procedure Push(var S: Stack; Value: Integer);
begin
if S.Top < 100 then
begin
Inc(S.Top);
S.Data[S.Top] := Value;
end;
end;
function Pop(var S: Stack): Integer;
begin
if S.Top > 0 then
begin
Pop := S.Data[S.Top];
Dec(S.Top);
end;
end;
var
S: Stack;
Value, i: Integer;
begin
InitStack(S);
// Пример заполнения стека символами
for i := 1 to 10 do
begin
Write('Введите число: ');
Readln(Value);
Push(S, Value);
end;
// Вывод четных чисел в обратном порядке
Writeln('Четные числа в обратном порядке:');
for i := S.Top downto 1 do
begin
if S.Data[i] mod 2 = 0 then
Write(S.Data[i], ' ');
end;
end.