Monday, 14 May 2012

Bahasa C

Bahasa pengaturcaraan C adalah antara bahasa pengaturcaraan yang paling kecil. Jadi untuk menguasai secara asas bahasa ini tidak mengambil masa yang lama. Walaupun begitu, untuk 'mastering' bahasa C bukan kerja yang mudah.

Bahasa C hanya mengandungi 36 'keywords' iaitu:


 auto     -  double  - inline   - static 
 break    -  else    - int      - struct 
 case     -  enum    - long     - switch 
 char     -  extern  - register - typedef 
 complex  -  float   - restrict - union 
 const    -  for     - return   - unsigned 
 continue -  goto    - short    - void 
 default  -  if      - signed   - volatile 
 do       -  sizeof  - while    - imaginary


Perkara yang menyebabkan bahasa C nampak besar ialah koleksi fungsi2 piawai yang dikepilkan bersamanya. Contoh fungsi piawai ialah seperti printf, scanf untuk tujuan input dan output; strcmp, strcpy untuk memproses perkataan atau huruf (strings), dan lain2.

Bagi pelajaran C untuk hari ini dan seterus, saya akan menggunakan Pelles C yang boleh didapati secara percuma di http://www.smorgasbordet.com/pellesc. Perkara yang menarik mengenai Pelles C ialah dokumentasi fungsi piawai yang agak lengkap. Pengaturcara C mesti membiasakan diri membaca dokumentasi fungsi, kerana setiap platform mempunyai koleksi fungsi tambahan masing2. Sebagai contoh, untuk menulis program di atas mana2 platform mana Microsoft Windows, pengaturcara perlu menggunakan fungsi yang tidak terdapat dalam koleksi fungsi2 piawai C seperti untuk memaparkan 'Message Box'. Tambahan pula, Pelles C dipilih kerana ianya mempunyai IDE yang setanding dengan IDE yang komersil.

Debugger yang akan digunakan ialah OllyDbg juga boleh secara percuma di http://home.t-online.de/home/Ollydbg/.

Program C Pertama
Oleh kerana tujuan komputer dicipta adalah untuk melakukan pengiraan. Program pertama kita akan diarah untuk melakukan beberapa pengiraan aritmetik

KOD
int main()
{

int a = 20;
int b = 0x20;
int jumlah;
int hasil_darab;

jumlah = a + b;
hasil_darab = a * b;

return 0;
}


Analisis:
- int main()
setiap aturcara C yang lengkap mesti mempunyai fungsi main() yang bertindak sebagai 'entry point' iaitu lokasi tempat bermulanya sesebuah aturcara. Bagi setiap fungsi, setiap baris arahannya mesti berada dalam brace, { }.

- int a = 20;
arahan ini adalah untuk mengarahkan compiler supaya menyediakan ruang memori yang bersaiz int, seterusnya ruang memori tersebut diisi dengan nilai 20. Saiz int biasanya 16 bit atau 32 bit bergantung kepada compiler yang digunakan.

- int b = 0x20;
seperti arahan diatas tetapi nilai yang diletakkan dalam ruangan memori b bernilai 32 jika ditukarkan kepada sistem desimal.

- int jumlah;
arahan ini adalah untuk mengarahkan compiler supaya menyediakan ruang memori yang bersaiz int tetapi tidak meletak nilai permulaan dalam ruang memori itu.

- int hasil_darab;
seperti di atas.

- jumlah = a + b;
menjumlah nilai yang berada dalam ruangan memori a dan b, hasilnya pula diletakkan di jumlah.

- hasil_darab = a * b;
mendarabkan nilai dalam ruangan memori a dan b, hasilnya pula diletakkan di hasil_darab.

- return 0;
keluar dari program dan mengembalikan nilai 0 kepada Sistem Operasi.

Walaubagaimanapun, aturcara di atas nampaknya seperti tidak berguna kerana hasil daripada pengiraan aritmetik tidak diketahui. Menyedari keperluan untuk mempaparkan output, fungsi printf dibina dan dijadikan sebagai fungsi piawai untuk tugas ini.
Oleh itu, kita akan menggunakan printf untuk memaparkan hasil dari pengiraan aritmetik. Sebelum membina semula aturcara diatas, lebih baik kita merujuk kepada dokumentasi fungsi printf. Di dalam dokumentasi Pelles C, printf di definisikan sebagai

int printf(const char * restrict format, [argument] ...);

Declared in:
(printf)

Nampaknya kita perlu memasukkan sekali fail stdio.h untuk menggunakan printf. Ini boleh dilakukan dengan arahan pra-compile
#include

Oleh itu, aturcara kita seperti di bawah

KOD
#include <stdio.h>
int main()
{

int a = 20;
int b = 0x20;
int jumlah;
int hasil_darab;

jumlah = a + b;
hasil_darab = a * b;

printf("hasil tambah ialah %i \n", jumlah);
printf("hasil darab ialah %i \n", hasil_darab);

return 0;
}


Untuk menjelaskan secara terperinci bagaimana arahan #include berfungsi kita boleh misalkan kandungan fail stdio.h seperti dibawah.

KOD
int printf(const char * restrict format, [argument] ...);
int wprintf(const wchar_t * restrict format, [argument] ...);
char * gets(char *buffer);
int puts(const char *string);


Dengan itu sebelum aturcara di compile, aturcara kita diproses dan kelihatan seperti di bawah.

KOD
int printf(const char * restrict format, [argument] ...);
int wprintf(const wchar_t * restrict format, [argument] ...);
char * gets(char *buffer);
int puts(const char *string);


KOD
int main()
{

int a = 20;
int b = 0x20;
int jumlah;
int hasil_darab;

jumlah = a + b;
hasil_darab = a * b;

printf("hasil tambah ialah %i \n", jumlah);
printf("hasil darab ialah %i \n", hasil_darab);

return 0;
}
design by faha

No comments:

Post a Comment