Program Susun Huruf dengan Pascal

Posted: Desember 13, 2008 in Pascal

Pernahkah anda membuat program yang jika dimasukan nilai 5 hasilnya seperti ini ?
result
Kasus diatas bukan punya saya, tapi punya salah seorang yang pernah mampir ke blog ini.

Pesan yang beliau tulis yaitu :


bagai mana caranya membuat program yang apabila dimasukkan angka 5 maka akan menghasilkan keluaran sebagai berikut :
dimohon solusinya.
 

Nah, dari kasus diatas saya coba untuk membuat programnya dan
berikut adalah source code hasil coba-coba saya :

Program simulasi;
uses wincrt;
var
n: integer;
i,j,k,m : integer; {variable untuk iterasi}
OutLine:string; {variable penampung baris}
PanjangLine:integer;
Starthuruf,endhuruf:integer;
IntStartChar:integer; {karakter mulai}
FrontLetter,EndLetter:char; {karakter didepan / dibelakang}

begin
{
Baris yang tercipta adalah (n * 2)-1
a
aba
abcba
aba
a

* langkah pertama, membuat baris berikut :
a
aba
abcba

* langkah kedua, membuat baris berikut :
aba
a

setiap pembuatan baris dibagi menjadi 3 step :
1. membuat bagian kosong didepan.
2. membuat bagian yang berisi huruf.
3. membuat bagian kosong dibelakang.
kemudian hasil dari ketiga step itu digabungkan.

}

{inisialisasi variable}
FrontLetter:=’ ‘;
EndLetter:=’ ‘;
intStartChar:=96; {96=a}

{* langkah pertama}
write(‘Masukan jumlah n ‘);
readln(n);
panjangline:=(n*2)-1;

for i:= 1 to (panjangline div 2)+1 do
begin
starthuruf:=((panjangline div 2) + 1) – (i-1);
endhuruf:=starthuruf + ((2*i)-2);

{1. membuat baris kosong didepan}
for j:=1 to starthuruf-1 do
begin
outline:=concat(outline,FrontLetter);
end;

{2. membuat bagian yang berisi huruf}
m:=1;
for j:=starthuruf to endhuruf do
begin
if j < (panjangline div 2) + 1 then begin outline:=concat(outline,chr(m+intStartChar)); m:=m+1; end else begin outline:=concat(outline,chr(m+intStartChar)); m:=m-1; end; end; {3. membuat bagian kosong dibelakang} for j:=endhuruf+1 to panjangline do begin outline:=concat(outline,EndLetter); end; writeln(outline); outline:=''; {reset aoutline} end; {* langkah kedua} for i:= (panjangline div 2) downto 1 do begin starthuruf:=((panjangline div 2) + 1) - (i-1); endhuruf:=starthuruf + ((2*i)-2); {membuat bagian kosong didepan} for j:=1 to starthuruf-1 do begin outline:=concat(outline,EndLetter); end; {membuat bagian yang berisi huruf} m:=1; for j:=starthuruf to endhuruf do begin if j < (panjangline div 2) + 1 then begin outline:=concat(outline,chr(m+intStartChar)); m:=m+1; end else begin outline:=concat(outline,chr(m+intStartChar)); m:=m-1; end; end; {membuat bagian kosong dibelakang} for j:=endhuruf+1 to panjangline do begin outline:=concat(outline,FrontLetter); end; writeln(outline); outline:=''; end; readln; end. [/sourcecode]

Komentar
  1. lukman wahyudi mengatakan:

    thx thx so much atas bantuannya.

    sangat membantu saya.

    kapan – kapan kalo ada kesulitan lagi saya tanya lagi ya.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s