Forum Dhammacitta

Buddhisme dan Kehidupan => Tolong ! => Topic started by: El Sol on 08 November 2008, 04:51:13 PM

Title: [urgent] so hard!..C programming...
Post by: El Sol on 08 November 2008, 04:51:13 PM
aku ada assignment..disuruh buat pyramid of number...

bentukne gini...

Quote
                                                   1
                                                  232
                                                 34543
                                                4567654
                                              567898765
                                             67890109876
                                           7890123210987
                                          890123454321098
                                        90123456765432109
                                       0123456789876543210

nah, codenya gw ketemu di internet...

Quote
#include<stdio.h>
#include<stdlib.h>
int
main(void) {
           int first;
           int second;
           int third;
           
           for(first = 1; first <=10; first++)
           {
           for(second = 1; second <= 31 - first; second++)
           printf(" ");
           for(second = first, third = (2 * first-1)/2+1; third;second++, third--)
           {
           if(second == 10) second=0;
           printf("%d",second);
           }
           for (second -= 2, third = (2*first-1)/2;third;second--,third--)
           {
 
           if(second==-1)second=9;
 
           printf("%d",second);
 
           }
 
           printf("\n");
 
           }
           system("pause");
           return(0);
}

nah masalahne...gw gk ngerti cara kerja codena...ribet banget codenye...

so, bisa tolong jelasin fungsi masing2 code itu?

yosh!..

kita mulai dari ini..

Quotefor(second = 1; second <= 31 - first; second++
yg ini maksudne apa yak?
Title: Re: [urgent] so hard!..C programming...
Post by: FZ on 08 November 2008, 05:04:17 PM
looping dari nilai second = 1 sampai nilai second = 31 - first
jadi misal
           nilai first = 1, maka nilai second dilooping dari 1 sampai 30
           nilai first = 2, maka nilai second dilooping dari 1 sampai 29
           nilai first = 3, maka nilai second dilooping dari 1 sampai 28
           .......
           nilai first = 10, maka nilai second dilooping dari 1 sampai 21
         
ayo sol.. jangan menyerah.. waktu scripting emang memusingkan.. tapi ada kepuasan tersendiri lho waktu men-tracing script
Title: Re: [urgent] so hard!..C programming...
Post by: El Sol on 08 November 2008, 05:07:20 PM
 [at] ko fox

thx..

tapi itu codenya berfungsi sebagai apa yak didalem pyramid itu?...

biar ada bentuk pyramid?....

thx yak atas bantuanne..haha

gw kira ko fox itu tabib, ternyata bisa programming juga haha
Title: Re: [urgent] so hard!..C programming...
Post by: El Sol on 08 November 2008, 06:31:47 PM
bump!...
Title: Re: [urgent] so hard!..C programming...
Post by: Subzer0 on 08 November 2008, 09:17:49 PM
Oo.. konteks for pertama di kode itu (first) untuk nentuin lajur vertikalnya.
Konteks for kedua untuk nentuin spasi.

Variable second dalam konteks for ketiga untuk nentuin nilai2 setengah awal dari lajur horizontal (1-5 misalnya).
Konteks if untuk ngubah angka '10' dalam setengah awal lajur horizontal jadi '0' (jadi daripada 101234, jadinya 01234).

Konteks for keempat untuk nentuin nilai setengah akhir dari lajur horizontal.
Konteks if dalam for ini untuk ngubah angka '-1' jadi '9' krn pengurangan yang terjadi di konteks for-nya (jadi daripada 543210-1, jadinya 5432109).
Title: Re: [urgent] so hard!..C programming...
Post by: El Sol on 08 November 2008, 09:34:48 PM
 [at] atas

thx banget...besok gw kaji lage!!...^^

thx thx thx..
Title: Re: [urgent] so hard!..C programming...
Post by: El Sol on 11 November 2008, 07:59:42 PM
Quotefor(second = first, third = (2 * first-1)/2+1; third; second++, third--)
yg ini maksudne apa yak?..

masih gk ngerti neh..T_T
Title: Re: [urgent] so hard!..C programming...
Post by: Subzer0 on 11 November 2008, 11:20:17 PM
Aku kurang tahu di C itu pakai big endian atau small endian, kayaknya small endian.  Kalau small endian misalnya 2.5 dalam integer jadi 2.  Third == 2 berarti 2 kali putaran for.  Dalam 2x putaran for, second++ dari second = 2, jadinya 2 and 3.  Jadi di baris kedua (232) hasil dari for ini 2 & 3.
Title: Re: [urgent] so hard!..C programming...
Post by: El Sol on 12 November 2008, 11:06:44 PM
Quote from: Subzer0 on 11 November 2008, 11:20:17 PM
Aku kurang tahu di C itu pakai big endian atau small endian, kayaknya small endian.  Kalau small endian misalnya 2.5 dalam integer jadi 2.  Third == 2 berarti 2 kali putaran for.  Dalam 2x putaran for, second++ dari second = 2, jadinya 2 and 3.  Jadi di baris kedua (232) hasil dari for ini 2 & 3.
oh!
gitu toh..pantes gw bingung kok bisa ada 2.5..ternyata di endian itu tah?

huahuahuahua..

nanti aku kalo gk ngerti tanya2 lage yak ko subzero...^^ thx banget !

jangan cape jelasin yak hehe...^^

GRP SENT!
Title: Re: [urgent] so hard!..C programming...
Post by: johan3000 on 27 November 2008, 10:05:43 AM
Dhamma ada dimana-mana...
tinggal anda MENYELAMINNYA (istilah MMD)....

Quote
for(second = first, third = (2 * first-1)/2+1; third; second++, third--)

bisa pakai debugger utk melihat perubahan2 dlm variable..
sehingga dpt mengerti bagaimana suatu program bekerja...

kalau tidak ada fasilitas debugger..
yg pakai print statement utk melihat nilai tsb...

atau tanya org lain...(cara mudah)

mungkin ada saran lain?
Title: Re: [urgent] so hard!..C programming...
Post by: Mr. Bagus on 27 November 2008, 10:35:25 AM
Coba dulu bikin piramidnya pake 1 angka aja, misal angka 1. Setelah terbentuk piramidnya, baru coba ubah2 angka 1 tersebut dengan hitungan matematis sederhana :P
     1              1
   111   -->   232
11111       34543
Dengan seringnya bro El Sol mengutak-atiknya pasti jadi mengerti cara kerjanya ;D
Hati2, utak atik itu bs membuat bro El Sol tergiur lho  ^-^