program balik_kata;
uses wincrt;
const elemen=225; {batas max karakter}
type s225=string[elemen];
tumpukan = record
isi :
s225;
atas :
0..elemen
end;
var T : tumpukan;
I:integer;
{pencacah}
kalimat:s225;
{kalimat yang akan dibalik}
procedure create (var T:tumpukan);
begin
T.Atas:=0; {inisialisasi / create tumpukan}
end;
procedure Push (var T:tumpukan; x:char);
begin
T.atas:=T.atas+1;
T.isi[T.atas]:=x; {masukan huruf}
end;
function pop (var T:Tumpukan):char;
begin
Pop:=T.isi[T.atas];
T.atas:=T.atas-1;
end;
{program Utama}
begin
clrscr;
create(T);
writeln('Stack
untuk membalik kalimat');
writeln('----------------------------');
writeln;
write('ketikkan kalimatmu : '); readln(kalimat);
clrscr;
writeln('Kalimat Aslinya : ', kalimat);
writeln;
writeln('Dibalik menjadi :');
for I:=1 to
length(kalimat) do
Push (T, kalimat[I]); {memasukkan kalimat ke stack};
for I:= 1 to length (kalimat) do
write(Pop(T));
readln;
end.
0 komentar:
Posting Komentar