Anda di halaman 1dari 4

Nama kelompok : Irwan Ruchwana SB (10110370) Dionofan Kurnia Pratama (10110346) Amelia Pralingga (10110327)

Kelas : IF-1 program KONVERSI_INFIX_KE_POSTFIX; uses crt; const Max_Elemen = 255; type S255 = string[Max_Elemen]; Tumpukan = record Rinci : S255; Atas : 0..Max_Elemen end; var Infix : S255; Lagi : char;

function VALENSI (Tanda_Op : char) : integer; begin case Tanda_Op of $ : VALENSI := 3; *, / : VALENSI := 2; +, - : VALENSI := 1;

( : VALENSI := 0 end end; procedure PUSH (var T : Tumpukan; Elemen : char); begin T.Atas := T.Atas + 1; T.Rinci[T.Atas] := Elemen end; function POP (var T : Tumpukan) : char; begin POP := T.Rinci[T.Atas]; T.Atas := T.ATas 1 end; procedure KONVERSI_CETAK (Infix : S255); var I : integer; Operator : set of char; Temp, Kar : char; T : Tumpukan; Test : boolean; begin Operator := ['$']+['*']+['/']+['+']+['-']; for I := 1 to length(Infix) do begin

Kar := Infix[I]; if Kar = ( then PUSH(T, Kar) else if Kar = ) then begin while T.Rinci[T.Atas] <> ( do write(POP(T):2); Temp := POP(T) end else if Kar in Operator then begin while (T.Atas <> 0) and (VALENSI(Kar) <= VALENSI(T.Rinci[T.Atas])) do write(POP(T):2); PUSH(T, Kar) end else if Kar <> then write(Kar:2) end; if T.Atas <> 0 then repeat write(POP(T):2) until T.Atas = 0; end; begin

clrscr; writeln(); writeln(| PROGRAM KONVERSI INFIX MENJADI POSTFIX |); writeln(); writeln; repeat write(Masukkan Ungkapan Infix: ); readln(Infix); writeln; write(Ungkapan Postfixnya Adalah: ); KONVERSI_CETAK (Infix); writeln; writeln; write(Akan mencoba lagi? Y/T: ); readln(Lagi); writeln until not (Lagi in ['Y', 'y']) end.

Anda mungkin juga menyukai