Gambar segitiga Siku-Siku:
*
**
***
****
*****
******
*******
Seperti yang kita lihat, bahwa terdapat
segitiga siku – siku yang dibuat dengan cara membuat simbol “*” mulai dari satu
sampai baris ke – n. Misalnya saja, dengan contoh di atas, user ingin menampilkan segitiga dengan jumlah baris 7, maka
ditampilkan gambar seperti di atas. Begitu seterusnya. Berikut adalah
contoh kodenya:
#include
<iostream>
using
namespace std;
void main
() {
int segi1;
cout << "";
cin >> segi1;
for (int j = 1; j <= segi1; ++j) {
for (int i = 1; i <= segi1; ++i)
{
if (i <= segi1 - j)
cout << "
";
else
cout <<
"*";
}
cout << "\n";
}
}
Logika:
Bila diamati baik – baik, akan diketahui bahwa,
misalnya, jika ada 7 baris yang diminta, maka ada 6 buah spasi yang dibuat lalu
kemudian dicetak tanda asterisk “*”,
dan pada baris berikutnya ada 5 buah spasi lalu dicetak dua buah tanda asterisk. Lalu kemudian pada baris berikutnya ada 4
buah spasi, pada baris berikutnya lagi ada 3 buah spasi, dst. Dapat disimpulkan
bahwa jumlah spasi yang dibuat pada baris pertama adalah:
Total baris yang diinginkan – 1
Lalu kemudian pada baris kedua adalah:
Total baris yang diinginkan – 2
Begitu seterusnya.
Dengan demikian diketahui bahwa untuk mecetak spasi
menggunakan rumus:
Total baris yang diinginkan – baris yang akan dicetak
Jadi, misalnya baris yang sedang “dikerjakan” adalah
baris pertama maka, rumusnya menjadi: total baris yang diinginkan – 1, begitu
juga dengan baris kedua menjadi: total baris yang diinginkan – 2, dst. Jika
sudah “melewati” keadaan tersebut, dicetak “*”.
Penjelasan kode:
Pada kode di atas, pertama – tama kita membuat sebuah
variabel / identifier dengan nama segi1. Dimana segi1, merupakan input dari user untuk menentukan berapa banyak
baris segitiga yang akan dicetak. Setelah itu, dilakukan perulangan untuk mencetak
banyaknya baris, di sini kita memakai variabel j. Untuk mencetak spasi dan tanda “*” sendiri digunakan
variabel i, dengan
kondisi:
·
Jika i lebih
kecil atau sama dengan segi1 - j, dicetak spasi
Ini karena syarat yang telah dikemukakan
sebelumnya, jumlah spasi yang dicetak per baris adalah hasil dari segi1 – j, dimana j adalah baris yang aktual (current) pada saat itu.
·
Jika i lebih
besar dari segi1,
maka dicetak tanda “*”.
Sebenarnya, jika Anda bisa mengamati dengan
cukup seksama, maka Anda akan menemukan bahwa kita selalu mencetak dengan
jumlah yang sama. Misalnya jumlah baris yang diinginkan adalah 7, maka
sebenarnya dalam setiap baris dari baris pertama sampai baris 7, kita selalu mencetak
sebanyak 7 kali pada setiap barisnya. Hanya saja ada “variasi”pada setiap
barisnya, yaitu jika dengan dikuranginya segi1 dengan j, maka denga sendirinya jumlah “*” yang tercetak akan
semakin banyak dan pada akhirnya sama dengan jumlah baris yang diinginkan.
Jadi, cobalah bayangkan bahwa yang kita cetak adalah sebuah persegi / persegi panjang
dengan gambaran seperti yang telah disebutkan di atas (bisa, kan? J).
Hal ini terus berlanjut pada setiap baris dan pada
ahirnya berhenti pada kondisi dimana j lebih besar dari segi1.
Tidak ada komentar:
Posting Komentar