menu
Minggu, 11 Maret 2012
Program Balik Kalimat perkarakter
hari ini saya hanya punya postingan ringan tentang program pascal.. yaitu program pembalik kata atau kalimat perkarakternya tanpa merubah posisi awalnya.. karena pada tutorial - tutorial pascal yang ada dan pernah saya search d'google.. kebanyakan outputnya yaitu mengubah susunan karakter sekaligus posisinya juga..
nah, kali ini saya membuatnya sedikit berubah.. hee ..he..
ok langsung saja..
uses crt; {}
type
stack = record
top : 0..100;
data: array[1..100] of char;
end;
var stack1 : stack;
isi : string[100];
i : integer;
procedure inisialisasi(var s : stack);
begin
s.top := 0;
end;
function isEmpty(var s : stack) : boolean;
begin
isEmpty := s.top = 0;
end;
procedure push(var s : stack; x:char);
begin
s.top := s.top + 1;
s.data[s.top] := x;
end;
procedure pop(var s : stack; var x:char);
begin
if not isempty(stack1) then begin
x := s.data[s.top];
s.top := s.top-1;
end;
end;
var
b : boolean;
begin
clrscr; {}
i := 0;
b := false;
write('Input kalimat yang akan dibalik perkarakter : ');readln(isi);
writeln;
write('Kalimat tersebut setelah di balik perkarakter
menjadi : ');
isi := isi + ' ';
repeat
inc( i);
if (b=false) then inisialisasi(stack1);
push(stack1,isi[i]);
b := true;
if isi[i] = ' ' then begin
b := false;
repeat
pop(stack1,isi[i]);
write(isi[i]);
until isEmpty(stack1) = true;
end;
until i >= length(isi);
readln;
end.
demikan sedikit dari saya tuk hari ini.. semoga bermanfaat.. :)
Langganan:
Posting Komentar (Atom)
untuk membalik kalimat per kata
BalasHapusprogram balik_kalimat;
uses crt;
type
stack=record
tampung:0..100;
isi:array[1..100]of char;
end;
var
s:stack;
huruf:char;
kalimat, kalimatBalik, tempKalimat :string;
kataBalik :array[1..100] of string;
i, arCount, j:integer;
procedure inisialisasi;
begin
s.tampung:=0;
end;
procedure push(var s:stack; x:char);
begin
s.tampung:= s.tampung+1;
s.isi[s.tampung]:=x;
end;
procedure pop(var s:stack; var x:char);
begin
x := s.isi[s.tampung];
s.tampung := s.tampung-1;
end;
begin
clrscr;
write('Masukkan Kalimat: '); readln(kalimat);
for i:=1 to length(kalimat) do
begin
huruf:=kalimat[i];
push(s,huruf);
end;
arCount:=1;
while s.tampung <> 0 do
begin
pop(s, huruf);
kalimatBalik := kalimatBalik+huruf;
if huruf <> ' ' then
kataBalik[arCount]:=kataBalik[arCount]+huruf
else
inc(arCount);
end;
for i:=1 to arCount do
begin
tempKalimat :='';
for j:=length(kataBalik[i]) downto 1 do
tempKalimat := tempKalimat+(kataBalik[i])[j];
kataBalik[i] := tempKalimat;
end;
for i:=1 to (length(kalimat))+15 do
write('-');
writeln;
writeln('Kalimat dibalik per karakter: ', kalimatBalik);
write('Kalimat dibalik per kata: ');
for i:=1 to arCount do
write(kataBalik[i],' ');
readln;
end.
alhamdulillah membantu, terima kasih scriptnya:D
BalasHapuseh, bo org gtlo olo sup. baru sadar dpalia di gambar wkwk. mantap mantapppp...
BalasHapus