1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | program bintang_piramid; uses wincrt; var c,a,b,n : integer; begin write ('masukkan angka : ');readln(n); writeln; if n mod 2 = 0 then for a := 1 to (n div 2) do begin for b := 1 to (n div 2)-a do write (' '); for c := 1 to (a*2) do write ('*'); writeln; end else for a := 1 to (n div 2)+1 do begin for b := 1 to (n div 2)+(1-a) do write (' '); for c := 1 to (a*2)-1 do write ('*'); writeln; end; end. |
keluaran:
masukkan jumlah bintang terbawah : 9
masukkan jumlah bintang terbawah : 9
*
***
*****
*******
*********
masukkan jumlah bintang terbawah : 8
**
****
******
********
saya membuatnya disertai dengan percabangan karena bila jumlah bintang terbawah yang dimasukkan genap maka yang paling atas juga akan genap dan jika yang dimasukkan ganjil maka yang paling atas juga akan ganjil
logika.
pertama masukkan jumlah bintang terbawah yang diinginkan contoh yang dimasukan adalah 8.
8 div 2 = 0 maka
baris yang yang ada pada piramid adalah setengah dari bintang yang dimasukkan kecuali bila bintang yang paling bawah adalah ganjil, maka tinggi atau barisnya adalah ½ alas+1,kerena bintang piramid berbentuk segitiga samakaki.
jadi pertama kita membuat perulangan untuk membuat baris dengan menggunakan perulangan for a :1 to (n div 2) do, karena saya menggunakan (n/2)tidak mau,jadi saya menggunakan n div 2 karena variabel n yang saya masukkan adalah integer. dan hasil n div 2 pasti integer.
setelah kita membuat perulangan untuk baris,selanjutnya kita membuat perulangan untuk baris kanan yang tidak terisi dan perulangan untuk bintang yang akan dimunculkan.
yaitu dengan cara
begin for b: 1 to (n div 2)-a do write (‘ ‘);
for c: 1 to (a*2) do write (‘*’); writeln;
for c: 1 to (a*2) do write (‘*’); writeln;
perulangan untuk baris, sebanyak (n div 2) yaitu 8 div 2 = 4. jadi akan ada 4 perulangan untuk baris
Perulangan untuk baris yang pertama adalah.
n =8
a =1
=(n div 2)-a
=(8 div 2)-1
= 4-1
= 3
b =1 to (n div 2)-a = 1 to 3 do write (‘ ‘)
jadi tampil sepasi 3x atau sepasi tigakali,setelah itu
c= 1 to (1*2)=1 to 2 do write (‘*’)
jadi disampingnya 3 sepasi tadi terdapat dua bitang berjejeran,yang berarti puncak dari piramid tersebut adalah dua bintang. setelah itu program membaca writeln yang berarti ganti baris.
perulangan untuk baris ke2 adalah .
n =8
a =2
= (n div 2)-a
= (8 div 2)-2
= 4-2
= 2
b =1 to (n div 2)-a = 1 to 2 do write (‘ ‘)
jadi tampil sepasi 2x, setelah itu
c = 1 to (2*2)= 1 to 4 do write (‘*’)
jadi disamping 2 sepasi terdapat 4 bintang berjejeran,setelah itu program membaca writeln yang berarti ganti baris.
perulangan untuk baris ke3 adalah.
n =8
a =3
= (n div 2)-a
= (8 div 2)-3
= 4-3
= 1
b =1 to (n div 2)-a = 1 to 1 do write (‘ ‘) jadi tampil sepasi 1x, setelah itu
c = 1 to (3*2)= 1 to 6 do write (‘*’)
jadi disamping 1 sepasi terdapat 6 bintang berjejeran,setelah itu program membaca writeln yang berarti ganti baris.
perulangan untuk baris ke4 adalah.
n =8
a =3
= (n div 2)-a
= (8 div 2)-4
= 4-4
= 0
b =1 to (n div 2)-a = 1 to 0 do write (‘ ‘)
jadi tidak ada sepasi, setelah itu
c = 1 to (4*2)= 1 to 8 do write (‘*’)
jadi terdapat 8 bintang berjejeran,setelah itu program membaca writeln yang berarti ganti baris.
karena dalam perulangan cuma sampai (n div 2) atau 4, jadi perulangan akan berhenti dan didapatkan tampilan seperti ini
**
****
******
********
yang ganjilpun sama logikanya. tinggal memasukkan angka didalam variabel-variabel yang sudah saya buat. Silahkan dicoba sendiri untuk pembuktian jumlah bintang ganjil
0 komentar:
Post a Comment