Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ обратная польская запись

Автор: -KOT- 21.11.2006 20:27


помогите плз , нужно в эту прогу добавить обратную польскую запись , то есть чтобы это выражение , которое вводишь преобразовывалось в польскую запись.




const max=100;
s__:string='(){}[]';
var
mas:array[1..max] of char;
kon,q,g,a1,a2:longint;
str:string;
{}
begin
writeln('vvedite vyrajenie');
readln(str);
kon:=0;
for q:=1 to length(str) do begin
if (str[q]='(')or(str[q]='{')or(str[q]='[') then begin
inc(kon);
mas[kon]:=str[q];
end;
if (str[q]=')')or(str[q]='}')or(str[q]=']') then begin
if (pos(str[q],s__)-1=pos(mas[kon],s__)) then begin
dec(kon);
end else begin
writeln('incorect');
readln;
exit;
end;
end;
end;
if (kon<>0) then begin
writeln('incorect');
readln;
exit;
end;
writeln('corect');
readln;
end.

Автор: volvo 21.11.2006 20:30

Во-первых, ты для себя реши, КАКУЮ запись тебе надо... В одном месте ты пишешь - "обратную польскую", в другом - "польскую"...

А во вторых, в FAQ-е специальная тема создана по префиксным и постфиксным выражениям. Ищи и читай...

Автор: -KOT- 21.11.2006 20:39

обратная польская нотация , я видел faq , но как ее в эту прогу засунуть ???