Помогите найти ошибку в программе стекового калькулятора

  • Автор темы Night
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

Night

#1
Помогите, пожалуйста, написать программу на Турбо Паскале «стековый калькулятор» до 23.12.06. Моя программа почему-то не работает. Ответы и советы присылайте на irene_fox@inbox.ru Заранее большое СПАСИБО!

Вот программа:
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:));
val(s, a, ;);
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.
 
Статус
Закрыто для дальнейших ответов.