Автор: Shurka 25.05.2004 23:06
Помогите найти ошибку. Условие задачи следующее: берешь любое аритметическое выражение в виде postfiks, т.е. если дано а+b,то postfiks будет: ab+. А потом начинаешь по знаку разбирать, если цифра, то лпжишь ее в стек, если знак, то извлекаешь из стека 2 последних цифры, и деелаешь соответствуещее знаку действие. Так вот здесь надо использовать модуль, а вот с этим то как раз и заключается проблема.
Ошибки здесь могут быть самыми тупыми.
Код
program стек;
uses crt;
type infotyyp= integer;
pinutyyp= ^pinutype;
pinutyyp= record
element: infotyyp;
Tipp: pinutyyp;
end;
var top: pinutyyp;
avaldis: string;
i: integer;
a,b,c: real;
begin
readln(avaldis);
Create(top);
for i:=1 to length(avaldis) do
begin
writeln('Введите выражение в виде postfiks:');
if avaldis[i] in ['0'..'9'] then
begin
val(avaldis[i],pinutyyp^.element);
push(top, element);
end
else
begin
pop(top, element);
a:=pinutyyp^.element;
pop(top, element);
b:=pinutyyp^.element;
case avaldis[i] of
'+': c:=a+b;
'-': c:=a-b;
'*': c:=a*b;
'/': c:=a/b;
end;
end;
end;
writeln('Ответ:',c);
readln;
end.
Автор: Altair 25.05.2004 23:19
Цитата
Ошибки здесь могут быть самыми тупыми.
Да уж это точно!
Код
Create(top);
А где процедура Create ?????
Код
push(top, element);
А где процедура push????
Код
pop(top, element);
тоже ...
Код
uses crt;
И зачем он тут ???
Автор: Shurka 25.05.2004 23:23
ну так это не процедура, а модуль имеется в иду, мне обяснили, что вроде он просто должен быть рядышком, но даже если их и включить в эту программу все равно ничего не получается
Автор: Shurka 25.05.2004 23:29
а вот и эти процедуры, но как я уже сказала все равно что-то не получается
Код
procedure Create(var top: pinutyyp);
begin
new(top);
top^.tipp:=nil;
end;
procedure push(info: infotyyp; var top: pinutyyp);
var node:pinutyyp;
begin
new(node);
node^.element:=info;
node^.tipp:=top;
top:=node;
end;
procedure pop(var info: infotyyp; var top: pinutyyp);
var node:pinutyyp;
begin
info := top^.element;
node:=top;
top:=top^.tipp;
dispose(node);
end;
Автор: Altair 26.05.2004 2:26
Цитата
но как я уже сказала
Ах сказалА, так с этого надо начинать
Значит так, процедуры должны быть или в тексте программы (до слова BEGIN)
или в модуле, который присоединяется, вам как надо?
Автор: Shurka 26.05.2004 21:32
спасибо, с этим я уже сама разобралась. Но ранее я уже открывала тему насчет хеш-таблицы, вот там мне действительно нужна помощь. Задачка не на 10 минут (т. е. то, с чем мне в жизни не справиться)