Program balik kalimat
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
Posting Komentar