Program LAZARUS_KONVERSI_INFIX_KE_POSTFIX; const Max_Elemen = 255; type isi = string[Max_Elemen]; stack = record hasl : isi; top : 0..Max_Elemen end; var Infix : isi; {* notasi infix *} Lagi : char; t : stack; function ALIANSI (macam_op : char) : integer; begin case macam_op of '^' : ALIANSI := 3; {* pangkat *} '*', '/' : ALIANSI := 2; {* kali atau bagi *} '+', '-' : ALIANSI := 1; {* plus atau minus *} '(' : ALIANSI := 0 {* kurung buka *} end end; procedure PUSH (var t : stack; Elemen : char); begin t.top := t.top + 1; t.hasl[t.top] := Elemen end; function POP (var t : stack) : char; begin POP := t.hasl[t.top]; t.top := t.top - 1 end; procedure KONVERSI_CETAK (Infix : isi); var i : integer; temp, Kar : char; opr : set of char; begin opr := ['^']+['*']+['/']+['+']+['-']; for i := 1 to length(Infix) do begin Kar := Infix[i]; {* Kurung buka. Push ke dalam tumpukan *} if Kar = '(' then PUSH(t, Kar) else if Kar = ')' then begin while T.hasl[t.top] <> '(' do write(POP(T):2); temp := POP(T) end else if Kar in opr then begin while (t.top <> 0) and (ALIANSI(Kar) <= ALIANSI(T.hasl[t.top])) do write(POP(T):2); PUSH(T, Kar) end else if Kar <> ' ' then write(Kar:2) end; if t.top <> 0 then repeat write(POP(T):2) until t.top = 0; end; begin writeln(' ======================================='); writeln('| MENGUBAH NOTASI INFIX MENJADI POSTFIX |'); writeln(' ======================================='); writeln; repeat write('Masukkan ungkapan Infix : '); readln(Infix); writeln; write('Hasil Ungkapan postfix : '); KONVERSI_CETAK(Infix); writeln; writeln; write('Akan mencoba lagi? Y/N : '); readln(Lagi); writeln until not (Lagi in ['Y', 'y']) end.
Update 20-12-2012 : Script opr := ['$']+['*']+['/']+['+']+['-']; salah dan diganti opr := ['^']+['*']+['/']+['+']+['-'];
Terima kasih.
Sumber : http://aumar.blogdetik.com/
Judul: Konversi Infix to Postfix Pascal (Lazarus)
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh 10:21 PM
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh 10:21 PM
waduuh ribet sekali nih gan kayaknya,,ane gk ngerti ,,hhee
BalasHapusKalau infix ke prefix gmn gan?
BalasHapus