{*****************************************
*program pop and push*********************
*****************************************}
program balik_kalimat;
uses wincrt;
const elemen =255; {*batas maksimum karakter*}
type s255 =string [elemen];
tumpukan = record
isi :s255 ;
atas: 0..elemen
end;
var t : tumpukan ;{*nama dari tumpukan *}
i: integer ; {*penjumlah*}
kalimat : s255 ; {*kalimat yang di balik*}
{****************************************
*prosedure inisialisasi tumpukan*********
****************************************}
procedure awalan ( var t:tumpukan );
begin
t. atas := 0
end;
{*prosedure awalan*}
{***************************************
*prosedure untuk memasukkan kalimat*****
*maksimum 255**************************}
procedure push ( var t: tumpukan ; x: char);
begin
t.atas := t. atas + 1 ;
t.isi [t.atas]:=x
end;
function pop ( var t : tumpukan ): char;
begin
pop:= t.isi[t.atas];
t.atas := t.atas - 1
end;
{***************************************
****program utama**********************}
begin
clrscr;
awalan ( t) ;
writeln(' tumpukan untuk membalik kalimat ');
writeln('---------------------------------');
writeln('');
{*kalimat yang akan dibalik*}
write('isikan sembarang kalimat =');
readln(kalimat);
clrscr;
writeln(' kalimat pertama =');writeln(kalimat);
writeln;
writeln('setelah dibalik =');
{***************************************
************membuat pushke tumpukan***
*************************************}
for i:=1 to length(kalimat ) do
push (t , kalimat [i]);
{*************************************
*mempop kalimat hingga mendapatkan hasil
***************************************}
for i:=1 to length (kalimat) do
write(pop (t));
writeln;
end.
by: agriva daniel (universitas methodist indonesia)
Tidak ada komentar:
Posting Komentar