Jumat, 28 Oktober 2011

Program Segitiga dengan C++

Yakk, ditengah kesibukan, akhirnya gue memutuskan ngerubah kata 'penulis' dengan 'gue', tentu saja alasannya, lebih singkat dan lebih friendly lah~seperti yang gw bilang, kuliah sibuk banget, tapi mau gimana lagi, ada 'perintah' dari mas-mbak OC buat ngapdet blog perminggu, dan cuma boleh materi kuliah, agak males, tapi dipikir2 lumayan buat ngisi waktu sekalian review.


Nah, kali ini, di update pertama gue (yang berbau pelajaran) gue bakal ngepost tentang program segitiga, kenapa harus segitiga ? ga ketupat aja yang lebih menantang ? tentu aja alasan gue "efisiensi waktu" (baca: males). Soalnya ini paling gampang buat gue jelasin, ga panjang2 banget (kayaknya).


Langsung aja, nih gue post kodenya disini (santai bro, ga horror);
-------------------------------------------
#include <stdio.h>

main ()
{
               int m,n,counter,JumlahBaris,BarisKe;
               scanf("%d", &JumlahBaris);
               counter=JumlahBaris;
               BarisKe=1;
               while (counter>0)
                         {
                                     for(n=(JumlahBaris-BarisKe);n>0;n--)

                                        {
                                          printf(" ");
                                        }
                                     
for(m=((BarisKe-1)*2+1);m>0;m--)
                                        {
                                          printf("*");
                                        }
                                     printf("\n");
                                     BarisKe++;
                                     counter--;
                         }
return 0;
}
-------------------------------------------




Nah, kayak gini kodenya, karena gue yakin kalian udah pada pinter semua, jadi ga gue jelasin secara detil2 banget ye, cukup gue jelasin logikanya. Setelah bertapa sana-sini dan diskusi sama temen sebelah gue, gue dapet rumusnya :


Jumlah Spasi = (Jumlah Baris - Baris ke)
Bintang = ( (Baris ke)*2 +1 )


udah dapet kayak gitu, yaudah tinggal dikodein...
jadi pertama,
kode yang ini :



for(n=(JumlahBaris-BarisKe);n>0;n--)
                                        {
                                          printf(" ");
                                        }


berfungsi buat output spasinya, berdasarkan rumus gue, jadinya kayak gini :
baris 1 > spasinya 4
baris 2 > spasinya 3
dst...


sedangkan kode yang ini :


for(m=((BarisKe-1)*2+1);m>0;m--)
                                        {
                                          printf("*");



berfungsi buat nampilin bintang, berdasarkan rumus gue :
baris 1 > 1 bintang
baris 2 > 3 bintang
dst...


kalo yang ini :


printf("\n");
BarisKe++;
counter--;



printf berfungsi buat ganti baris
karena ganti baris, kita juga +1 buat Baris ke
dan counter harus kurang 1 biar program berhenti ketika udah 5 baris


dengan kata lain, outputnya kayak gini (jeng jeng) :


input 
5
output
    *
   ***
  *****
 *******
*********


gue tau, banyak yang kurang jelas disini, maaf aja buat kalian, yang penting gue ngerti ya, kan review buatgue (dan kewajiban).
sampe sini aja review gue, thanks buat yang udah baca, syukur2 dapet ilmunya :)
akhiri dengan gaya pascal ah~




end.