-
Perhatikan potongan program di bawah ini!
for i:=1 to n do begin for k:=i to n-1 do write(' '); for j:=1 to (2*i-1) do if (i=n) or (i mod 2=1) then write('*') else if j mod 2=1 then write('*') else write('0'); writeln; end; for l:=n downto 2 do begin for m:=l to n do write(' '); for o:=(2*l-1) downto 3 do if o mod 2=1 then write('*') else write('0'); writeln; end;
Apabila diberi masukan n=7, maka berapakah banyaknya ‘*’ yang dicetak pada layar?
Untuk for bagian pertama:
Untuk i yang bernilai ganjil, jumlah bintang = (2i – 1).
Sehingga dari 1,3,5 dan 7 jumlah bintang = 1 + 5 + 9 + 13 = 28.
Untuk i bernilai genap:
j dimulai dari 1 sampai 2i-1, dan bintang tercetak ketika j merupakan bilangan ganjil
yang mana berjumlah i. Karena itu jumlah bintang = 2 + 4 + 6 = 12.
Untuk for bagian bawah:
Perulangan dimulai dari n (7) sampai 2:
Setiap pengulangan l terdapat pengulangan o yang mencetak ‘*’.
Jumlah bintang yang tercetak adalah jumlah bilangan ganjil dari 3 sampai 2l-1 = l-1.
Sehingga total dari n = 2 sampai n = 7 adalah 1 + 2 + 3 + 4 + 5 + 6 = 21.
Dengan demikian total bintang yang tercetak adalah 28 + 12 + 21 = 61.