pernah membuat pengaturcaraan komputer. Struktur am suatu bahasa pengaturcaraan C adalah seperti berikut : a)bahagian #include iaitu arahan pemproses b)main() c)pembuka blok { d)badan aturcara e)penutup blok } Contoh: /* Aturcara pertama dalam C */ #include <stdio.h> int main(void) { printf (Contoh aturcara pertama dalam C \n); return 0; } Output : Contoh aturcara pertama dalam C
KOMEN (/**/) Teks yang dimulakan dengan simbol /* dan diakhiri dengan simbol */ menandakan satu komen. Pengaturcara memasukkan komen untuk tujuan mendokumentasikan dan meningkatkan pemahaman aturcara. Komen tidak akan menyebabkan sebarang tindakan semasa aturcara itu dilaksanakan. Komen Aturcara pertama dalam C menerangkan tujuan aturcara itu. Komen juga menolong orang lain membaca dan memahami aturcara kita. Komen yang terlalu banyak pula akan menyebabkan aturcara itu susah untuk dibaca. Jadi pengaturcaraan harus bijak meletakkan komen pada tempat yang difikirkan perlu. BARIS int main(void) main() adalah sebahagian daripada aturcara bahasa C. Simbol () menunjukkan bahasa main adalah satu blok pembangunan aturcara yang dipanggil fungsi. Aturcara bahasa C mengandungi 1 atau lebih fungsi di mana salah satu daripadanya adalah main dan mesti wujud dalam setiap aturcara C. Fungsi main adalah fungsi yang pertama sekali yang dilaksanakan oleh pengkompil C. Perkataan int dan void dalam baris aturcara di atas ialah kata kunci atau kata simpan dalam C yang memberi maksud tertentu kepada pengkompil. Perkataan int menunjukkan bahawa fungsi main mengembalikan nilai int kepada sistem pengoperasian manakala perkataan void pula memberi maksud bahawa fungsi main tidak memerlukan sebarang parameter. Baris return 0; merupakan satu penyataan kembali. Ia menyebabkan satu nilai sifar dipulangkan kepada sistem pengoperasian. Nilai yang dipulangkan ini boleh digunakan sekiranya perlu oleh sistem pengoperasian tersebut. Fungsi akan dibincang dengan lebih lanjut di dalam unit 7. SIMBOL { dan } Simbol { digunakan untuk memulakan setiap badan fungsi manakala simbol } akan mengakhiri setiap fungsi. Simbol { dan } serta bahagian aturcara antara simbol-simbol ini dipanggil satu blok. Blok adalah satu unit yang penting dalam bahasa C. Penggunaan simbol } pada baris terakhir aturcara dalam contoh aturcara menunjukkan penghabisan fungsi main. Lengkapkan aturcara di bawah dengan meletakkan simbol ciri-ciri am dalam bahasa C. Aturcara memaparkan maklumat pelajar */ #include <stdio.h> printf (Nama saya ialah Azi); printf (Umur saya ialah 19 tahun); return 0; } Aturcara di bawah adalah satu aturcara ringkas yang meminta pengguna menaip satu nombor dan kemudian mencetaknya kembali.
/* Aturcara mengambil input dan mencetak output */ #include <stdio.h> main() { int nombor; /* isytihar pembolehubah*/ printf (Masukkan satu nombor dan tekan Enter : ); scanf (%d, &nombor); /* ambil input */ printf (Nombor yang anda taip ialah %d, nombor); return 0; } Output : Masukkan satu nombor dan tekan Enter : 5 Nombor yang anda taip ialah 5
PENYATA KELUARAN printf() Arahan printf digunakan untuk mencetak output di skrin. Format bagi arahan ini ialah: printf (<apa yang hendak dicetak, diletakkan di sini>); Baris printf (Masukkan satu nombor dan tekan enter) dalam aturcara di atas adalah satu kenyataan mencetak. Ia mengarah komputer mencetak di skrin satu muatan aksara yang disempadani dengan tanda . Setiap kenyataan bahasa C mesti diakhiri dengan tanda ; Komputer akan mencetak Masukkan satu nombor dan tekan Enter di skrin apabila aturcara itu dilaksanakan. PENYATA MASUKAN scanf() Arahan scanf digunakan untuk mengambil input dari papan kekunci. Format bagi arahan ini ialah : scanf (<penyata jenis data>,&<pembolehubah>); Tanda & yang diletakkan sebelum nama pembolehubah ialah untuk membolehkan komputer mengetahui kedudukan pembolehubah tersebut dalam ingatan komputer. Komputer perlu mengetahuinya bagi membolehkannya mengubah kandungan pembolehubah. PENYATA MASUKAN scanf() Baris scanf (%d,&nombor); dalam aturcara di atas mengarahkan komputer menunggu pengguna menaip satu nombor di papan kekunci. Setelah pengguna menaipnya, nilai nombor itu akan dimasukkan dalam pembolehubah bernama nombor. Dalam penyataan scanf di atas, penyata jenis data %d digunakan, nombor adalah data berjenis integer. Sekiranya nilai yang hendak dibaca itu dari jenis data lain maka penyata jenis data lain pula digunakan. PENGGUNAAN BARIS printf UNTUK MENCETAK KEMBALI NILAI PEMBOLEHUBAH YANG DIMASUKKAN. Dalam aturcara di atas anda dapati baris printf digunakan untuk mencetak kembali nilai nombor yang dimasukkan. Format penggunaan printf untuk mencetak nilai semasa pembolehubah ialah :
printf (%<penyata jenis data>,<pembolehubah>);
Dalam aturcara tersebut %d digunakan untuk mencetak nilai pembolehubah integer nombor. Sekiranya pembolehubah yang dicetak mempunyai jenis data lain, maka penyata lain pula digunakan. Pernyataan puts,putchar dan getchar /* Aturcara mengambil input dan mencetak output */ #include <stdio.h> main() { int nombor; puts ("Masukkan satu nombor: "); nombor=getchar(); puts ("nombor yang anda masukkan ialah: "); putchar (nombor); return 0; }
Pernyataan puts,putchar dan getchar Output: Masukkan satu nombor: 5 Nombor yang anda masukkan ialah: 5 KOD-KOD FORMAT
Terdapat beberapa kod format dalam bahasa C untuk memformat output. Jadual di bawah memberi penerangan bagi setiap kod format tersebut: Kod Format Penerangan %d Mempamerkan nombor dalam bentuk integer %f Mempamerkan nilai titik terapung atau perpuluhan %e Mempamerkan nilai titik terapung dalam notasi eksponen %c Mempamerkan satu nilai aksara %s Mempamerkan satu nilai rentetan %g Mempamerkan satu nilai titik terapung sama ada dalam bentuk titik terapung atau bentuk eksponen %lf Mempamerkan nombor dalam bentuk double SIMBOL & Simbol & yang diletakkan sebelum nama pembolehubah dalam arahan scanf ialah untuk membolehkan komputer mengetahui kedudukan pembolehubah tersebut di dalam ingatan komputer. AKSARA LEPAS Terdapat beberapa aksara lepas yang digunakan dalam program C. Jadual di bawah memberi penerangan bagi setiap aksara lepas tersebut. Aksara Lepas Penerangan \n Menggerakkan kursor ke baris baru \b Menggerakkan kursor ke belakang satu kedudukan di baris semasa \f Menggerakkan kursor ke permulaan muka seterusnya \r Menggerakkan kursor ke permulaan baris semasa \t Menggerakkan kursor ke tab mengufuk seterusnya \v Menggerakkan kursor ke tab menegak seterusnya Latihan: Berdasarkan keratan aturcara di bawah apakah output yang akan dipaparkan. i) printf (Selamat Datang ke \n); printf (\n\tPoliteknik Ungku Omar); ii) int nombor1, nombor2; float jumlah; printf(Masukkan nombor 1 : ); scanf (%d,&nombor1); printf(Masukkan nombor 2 : ); scanf (%d,&nombor2); jumlah = nombor1 + nombor2; printf (Jumlah kedua-dua nombor ini ialah : %.2f, jumlah);
Contoh : Tulis aturcara untuk mencetak Selamat Belajar Bahasa C. Penyelesaian : /* Aturcara mengambil input dan mencetak output */ #include <stdio.h> int main(void) { printf (Selamat Belajar Bahasa C); return 0; }
Output : Selamat Belajar Bahasa C
Latihan : Tulis satu aturcara untuk mencetak Selamat Belajar Bahasa C dalam baris yang berlainan (1 perkataan sebaris) menggunakan hanya satu arahan printf sahaja.
Penyelesaian: /* Aturcara mengambil input dan mencetak output */ #include <stdio.h> int main(void) { printf (Selamat\nBelajar\nBahasa\nC\n); return 0; }
Output : Selamat Belajar Bahasa C
Latihan: Tuliskan aturcara yang membaca 2 nombor integer dan mencetak kedua-dua nombor tersebut. Terdapat 2 jenis arahan pra pemproses iaitu #include dan #define. #include a) #include adalah arahan untuk prapemproses C. Baris-baris yang bermula dengan simbol # diproses oleh prapemproses sebelum aturcara itu dikompil. b) Arahan #include perlu ditulis diikuti dengan fail kepala yang mana akan dibincangkan dalam bahagian seterusnya. Contoh : #include <stdio.h> c) Fail stdio.h disertakan kerana di dalamnya terdapat definisi arahan untuk mencetak output dan mengambil input yang akan kita gunakan. #define a) Selain #include kita juga boleh menakrifkan pra pemproses yang dipanggil #define. b) #define juga boleh digunakan untuk mengisytiharkan sesuatu pemalar. Sintaks : #define <nama pemalar><nilai pemalar>
Contoh : #define BIL_MAKS 999 #define PI 3.1459 c) Apabila baris ini ditemui dalam fail aturcara yang sedang dikompil, prapemproses akan menukar semua pengecam BIL_MAKS yang dijumpai ini dengan nilai 999 dan PI dengan 3.1459. Kecuali jika ianya adalah komen. BIL_MAKS dan PI ini dikenali sebagai pemalar simbolik. Ia boleh diletakkan di mana-mana dalam aturcara dan ia akan memberi kesan kepada baris aturcara selepas ia diletakkan kebiasaannya ia diletakkan di permulaan aturcara dan ditulis dengan huruf besar. Kebanyakan daripada perlaksanaan bahasa C ada menyediakan perpustakaan piawai yang terdapat banyak fungsi di dalamnya. Secara asasnya C piawai menyediakan 16 pengepala atau kepala fail yang setiap satunya mempunyai banyak fungsi di dalamnya. 16 kepala fail itu ialah :
<assert.h> <float.h> <math.h> <stdarg.h> <stdlib.h> <ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h> <errno.h> <locale.h> <signal.h> <stdio.h> <time.h> <conio.h> (a) <stdio.h> Terdapat beberapa fungsi dalam pustaka stdio.h yang boleh digunakan untuk aksara dan rentetan. Jadual berikut meringkaskan fungsi yang boleh diguna. Prototaip fungsi Tugas int getchar(void) Baca aksara yang dimasukkan dan kembali kod aksara dalam integer char *gets(char *s) Baca input rentetan dan masukkan dalam tatasusunan s sehingga berjumpa baris baru atau EOF. Aksara NULL akan ditambah di hujung rentetan int putchar(int c) Cetak aksara dalam c int puts(const char * s) Cetak rentetan s dan tambah aksara baris baru Fail kepala stdio.h ini mengandungi maklumat yang diperlukan untuk pengendalian masukan scanf dan keluaran printf. Nama penuh fail ini ialah standard input / output header.
#include <stdio.h> int main(void) { int umur; printf (Masukkan umur anda : ); scanf (%d,umur); printf (Umur anda ialah %d tahun, umur); return 0; }
Output : Masukkan umur anda : 18 Umur anda ialah 18 tahun
CONTOH: (b) <math.h>
Terdapat beberapa fungsi dalam pustaka yang boleh digunakan untuk melaksanakan operasi matematik asas. Jadual berikut meringkaskan fungsi yang boleh digunakan. Prototaip Fungsi Tugas double acos(double x) Mengira kosin untuk sesuatu nilai x double asin(double x) Mengira nilai sin untuk x double atan(double x) Mengira nilai tan untuk x double sinh(double x) Mengira sin hiperbolik untuk x double exp(double x) Mengira eksponen untuk x double log(double x) Mengira logaritma asli untuk x double pow(double x,double y) Mengira x kuasa y double sqrt(double x) Mengira punca ganda dua untuk x Contoh:
#include <stdio.h> #include <math.h> int main(void) { double x = 3.0, y = 4.0; double hasil; hasil = pow (x, y); printf (Hasil = %lf , hasil); return 0; }
Output : Hasil = 81.0
(c) <ctype,h> Antara fungsi- fungsi yang terkandung dalam fail kepala ini ialah fungsi untuk menguji jenis aksara dan fungsi untuk menukar aksara dari abjad huruf kecil ke abjad huruf besar. Berikut adalah senarai fungsi- fungsi dalam fail kepala <ctype.h>. Prototaip Fungsi Tugas int isdigit (int c) Pulangkan 1 jika c adalah digit dan 0 jika c bukan digit int isalpha(int c) Pulangkan 1 jika c adalah abjad dan 0 jika c bukan abjad int islower (int c) Pulangkan 1 jika c adalah huruf kecil dan 0 jika c huruf besar int isupper (int c) Pulangkan 1 jika c adalah huruf besar dan 0 jika c huruf kecil int isspace(int c) Pulangkan 1 jika c adalah ruang kosong dan 0 jika palsu int toupper(int c) Pulangkan 1 jika c huruf kecil , kembalikan huruf besar bagi c int tolower(int c) Pulangkan 1 jika c huruf besar, kembalikan huruf kecil bagi c Contoh:
#include <stdio.h> #include <ctype.h> int main(void) { char aksara; printf (Masukkan satu aksara :); aksara = getchar(); if (isdigit (aksara)) printf (%c adalah digit \n, aksara); if (isalpha (aksara)) printf (%c adalah abjad \n, aksara); if (islower (aksara)) printf (%c adalah huruf kecil \n, aksara); if (isupper (aksara)) printf (%c adalah huruf besar \n, aksara); if (isspace (aksara)) printf (%c adalah ruang kosong \n, aksara); printf (tolower %c adalah %c\n,aksara,tolower(aksara)); printf (toupper %c adalah %c\n,aksara,toupper(aksara)); return 0; }
Output : Masukkan satu aksara : g g adalah abjad g adalah huruf kecil tolower g adalah g tolower g adalah G