[pascal] Program ONP zamiana wyrażeń - drobny błąd
Ostatnio zmodyfikowano 2013-12-02 19:21
pawel93 Temat założony przez niniejszego użytkownika |
[pascal] Program ONP zamiana wyrażeń - drobny błąd » 2013-12-02 19:21:03 Dobra po wielu godzinach spedzonych nad tym w miare działa ... zamykam temat mozna usunac Zrobiłem program ale cos mi nie działa jak chce np wpisac 2 + 5 = to zamiast wypisac 2 5 + = to wypisuje 2 + 5 = i nie wiem co zle robie gdzie tu blad moze byc bo ja już nie mam pojęcia : / program project1;
var stos : string; el : string; ws : integer; Begin read(el); ws := 1; repeat if ((el[1] >= '0') and (el[1] <= '9')) then write(el + ' ') else Begin case el[1] of '+' : Begin End; '-' : Begin while((ws <> 1) and (stos[ws - 1] <> '(')) do begin ws := ws -1; write(stos[ws] + ' '); end; stos[ws] := el[1]; ws := ws + 1; break; End; '*': Begin End; '/': Begin while ( (ws <> 1) and ( stos[ws - 1] <> '(' ) and (stos[ws -1] <> '+') and (stos[ws-1]<>'-')) do begin ws := ws - 1; write(stos[ws] + ' '); end; stos[ws] := el[1]; ws := ws + 1; break; End; '(':Begin stos[ws] := '('; ws := ws + 1; break; End; ')':Begin while ( stos[ws-1]<> '(') do begin ws := ws - 1; write(stos[ws] + ' '); break; end;
End; '=':Begin while (ws <> 1) do begin ws := ws - 1; write(stos[ws]+ ' '); end; writeln('='); break; End; End; End;
until (el[1] <> '=' );
End. |
|
« 1 » |