0 Segitiga Siku Siku



Gambar segitiga yang akan dibuat adalah seperti  di bawah ini:


*
**
***
****
*****
******
*******

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 segi 1, 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? ).
Hal ini terus berlanjut pada setiap baris dan pada ahirnya berhenti pada kondisi dimana j lebih besar dari segi1. Hasilnya dapat Anda lihat pada screen shot berikut:






0 komentar:

Poskan Komentar