program balik kalimat

 uses


 crt;


const


 elemen = 255; { batas maksimum karakter }


type


 s255 = string[elemen];


 tumpukan = record


 isi : s255;


 atas : 0..elemen


 end;


var


 t : tumpukan; { nama tumpukan }


 i : integer; { pencacah }


 kalimat : s255; { kalimat yang dibalik }


 n,m : char;


{ ********** }


{ prosedur inisialisasi tumpukan }


{ ********** }


procedure awalan ( var t : tumpukan );


begin


 t.atas := 0;


end; { akhir prosedur awalan }


{ ******************** }


{ prosedur untuk memastikan elemen ke dalam tumpukan }


{ dalam hal ini cacah karakter maksimum tidak boleh dari 255 }


{ ******************** }


procedure push ( var t : tumpukan; x : char );


begin


 t.atas := t.atas + 1;


 t.isi[t.atas] := x;


end; { akhir Prosedur push }


{ *************** }


{ fungsi untuk mengambil elemen dari tumpukan }


{ *************** }


function pop ( var t : tumpukan ) : char;


begin


 pop := t.isi[t.atas];


 t.atas := t.atas - 1;


end; { akhir fungsi pop }


{ ********** }


{ program utama }


{ ********** } 


begin


 clrscr;


 awalan (t);


 writeln (' Tumpukan untuk membalik kalimat ');


 writeln (' -------------------------------- ');


 writeln;


 { kalimat yang akan dibalik }


 writeln ('Isikan sembarang kalimat : ');


 readln (kalimat);


 writeln;


 writeln(' Kalimat asli : '); ;writeln (kalimat);


 writeln('setelah dibalik : ');


 { mempush kalimat ke dalam tumpukan }


 for i := 1 to length(kalimat) do


 push(t, kalimat[i]);


 { mempop isi tumpukan sehingga diperoleh kalimat }


 { yang dibaca terbalik pembacaannya }


 for i := 1 to length(kalimat) do


 write (pop(t));


 readln;


end. { akhir program utama }


******************



Komentar