Помогите, пожалуйста, написать программу на Турбо Паскале «стековый калькулятор» до 23.12.06. Моя программа почему-то не работает. Ответы и советы присылайте на <censored> Заранее большое СПАСИБО! вот сама программа:
Program calculator;
Const
maxStack = 250; {максимальный размер стека }
c: Integer=0;
Var
stek: array [1..maxStack] of Integer; {стек}
x: integer;
s: string;
a, b: integer;
Procedure Push; {положить на стек}
begin
if c<>maxStack then
begin
inc ©;
stek[c] := x;
writeln('pushed ', stek[c]);
end;
end;
Function Pop:integer; {вытащить из стека }
begin
if c<>0 then
begin
pop:=stek[c];
dec©;
end;
end;
begin
writeln('введите функцию для калькулятора');
write(':');
readln(a);
writeln('введите функцию для калькулятора ');
write(':');
readln(b);
val(s, a, b);
if (b=0) and ((length(s)>1) or(s[1]<> '-')) then
push
else
case s[1] of
'+':
begin
a:=pop;
b:=pop;
x:=a+b;
push;
{ writeln(x);}
end;
'-':
begin
a:=pop;
b:=pop;
x:=a-b;
push;
{ writeln(x);}
end;
'/':
begin
a:=pop;
b:=pop;
if a=0 then
writeln ('¤Ґ«Ёвм 0 Ќ…‹њ‡џ')
else
begin
x:=b div a;
push;
{ writeln(x);}
end;
end;
'*':
begin
a:=pop;
b:=pop;
x:=a*b;
push;
{ writeln(x);}
end;
end;
writeln('x=',x);
readln;
end.