My Binusian Story

Just another Binusian blog site

Soal Ao No.6

September13

soal6soal6_1

 

Penjelasan Untuk Soal Ini :

Untuk soal no 6 ini kita akan menapilkan bentuk X ke samping sebanyak terisi 80 ke kanan dan juga 24 ke bawah. Masih seperti soal lainya, soal ini juga dikerjakan menggunakan fungsi looping dan perbandingan.
*Seperti soal lain, awalnya akan ada pendeklarasian lalu akan menggunakan fungsi scanf untuk menginput data.

*Baris 8-13 adalah bagian yang digunkana untuk menanyakan kembali kepada user untuk memasukan input karena untuk soal ini yang harus diinput adalah bilangan ganjil dan tidak boleh bilangan genap, maka di buatlah menggunakan fungsi while itu dimana jika yang di input di modulus dengan dua dan hasilnya habis artinya program akan menanyakan kembali ke user untuk memasukan bilangan ganjil.

*Baris 17-43 logika untuk menghasilkan bntuk X dan ke samping sebanyak 80 karakter.

*Untuk membuat X itu digunakan logika bahwa akan di print * jika nilai dari f sama dengan nilai g(baris 24-35). Jadi pada baris 24 dan 25 di deklarasikan bahwa f=nilai b dan g=nilai c. Awalnya nilai b adalah -a(yang di input di jadikan negatif) tetapi sblmya di baris 14 di katakan bahwa a=a/2 berarti saat di input nilai a itu langsung di bagi dengan 2 baru msk ke dalam for. Maka bila di input 5, a yang sebenarnya menjadi a/2=2.5 tetapi karena integer maka hanya 2 saja. Sama halnya juga dengan nilai c yaitu -2 juga. Nah f=b berarti f=-2 dan g=c berari g=-2. Di baris 26-27 dberi statement apabila nilai g dan nilai f di bawah 0 atau negatif maka nilai f akan di kali dengan -1 yang artinya menjadi mutlak positif.
Nah setelah itu msk dalam baris 28-35 dengan statement jika nilai f sama dengan nilai g maka akan di print ‘*’ dan jika tidak sama maka di buat spasi.
Maka logikanya saat f dan g -2 kemudian dimutlakkan dengan printah baris 26-27 maka baris 28 benar dan di printlah * itu, tapi setelah itu di print spasi karena apa? karena jika if di baris 28 di kerjakan makan C akan di incrementkan menjadi -1 sedangkan b masih berupakan -2 maka karena tidak benar bahwa f==g maka di print spasi.
Akan terus seperti itu di check hingga nanti f==g lagi maka di print ‘*’ lagi. Berhenti saat for di baris 20 sudah salah statementnya.

*Lalu kenapa dia dapat kessamping sebanyak 80 karakter? karena di baris 19 sudah di deklarasikan bahwa h=79 yang artinya dapat disini 79 baris ke samping kanan. Kenapa tidak h=80? karena jika 80 makan hasil eksekusinya jadi aneh.
Nah untuk dibuat ke sampingnya juga menggunakan ketentuan menggunakan fungsi If. Pada baris 22 itu adalah statement untuk memberhentikan pencetakan ke arah kanan jika h sudah sama dengan 0 maka berhenti. Dan jangan lupa pada baris 36 itu juga ada h– agar nilai h juga bisa menjadi sama dengan 0 dan berhenti pencetkan ke kanan.
Jangan lupa untuk memberikan printf(“\n”); seperti pada baris 42 itu agar setelah di print ke kanan 80 karakter maka akan ke baris baru lagi sehingga bentuk Xnya muncul seperti di gambar.

*Nah yang terakhir adalah for pada baris 17 itu. Itu adalah fungsi yang digunakan untuk menglooping bntuk Xnya ke bawah sebanyak sesuai statement di fornya. Nah sebelumnya pada baris 7 di deklarasikan x=a kenapa? agar saat masuk ke baris 15 itu kita masih menggunakan nilai input asli tanpa di bagi dua seperti saat membuat bentuk X.
Nah logikanya karena hanya dapat 24 karakter ke bawah maka 24 karakter kebawah itu di bagi dengan input dari user(i<=24/x), x itu sudah sama dengan a yang asli di input user. Maka jika di input 5, maka hanya akan di looping ke bawah sebanyak 24/5=4.8 karena integer maka hanya 4 saja maka hanya di looping 4 kali ke bawah.

Kalau sudah begitu semua di atas maka hasilnya akan seperti pada gambar di bawah. Selamat mencoba ^^.

soal6_1

 

#SoCSBinus #KevinTanzil #1901474870

 

posted under Soal AO

Email will not be published

Website example

Your Comment: