Syntax  aturcara C

 

ARAHAN PEMPROSES

#include <fail header fail>

 

simbol #

dipanggil arahan prapemproses.

 

include

Bertujuan untuk mentakrifkan pencam piawai daripada pustaka piawai. Menyebabkan prapemproses memasukkan satu salinan fail header piawai seperti <stdio.h> ke dalam aturcara pada baris dimana arahan tersebut ditemui. Fail stdio.h mengandungi maklumat mengenai fungsi piawai untuk input atau ouput seperti scanf() dan printf

Contoh lain: #include <math.h>  arahan header ini adalah untuk fungsi matematik.

 

Define

Bertujuan untuk mencipta makro pemalar contohnya

#define NAMA nilai

NAMA dikenali sebagai makro pemalar maksudnya nilainya tetap setelah ditakrifkan sedemikian, kebiasannya ia ditulis dengan huruf besar untuk membezakan pencan dan pemboleh ubah yang biasa.

 

Kurungan <….>

menunjukkan fail ini ditemui ditempat yang biasa contohnya dalam sistem unix ia dinamakan  fail .profile.

 

PROTOTAIP FUNGSI UTAMA

 

int main(void){

    badan fungsi

}

 

merupakan pengistiharan fungsi utama

 

main

menunjukkan arahan bermula perlaksanaan aturcara

terdiri dari dua bahagian

-          pengisytiharan pembolehubah

-          badan aturcara

 

tanda kurungan ()

dibuat selepas main memberitau pengkompil bahawa ia adalah satu fungsi.

 

int

pembolehubeh berjenis jejari/diameter suatu intiger bernombor bulat, dinyatakan sebagai jenis nilai bagi fungsi main, mengisytiharkan bahawa nilai yang akan dipulangkan oleh fungsi main bejenis integer yang benilai kosong kepada sistem pengoperasian sekiranya perlaksanaan berakhir dengan jayanya.

 

Void

menunjukkan fungsi main() tidak menerima apa-apa input data daripada sistem pengoperasian sebelum ia memulakan perlaksanaan. Jika aturcara ini tidak perlu mengembalikan sebarang nilai dan tidak menerima nilai maka kita tulisnya sebagai void main(void)

{………..}

lekuk {

menunjukkan permulaan badan fungsi main().

Lekuk }

Menunjukkan tamat aturcara

 

Printf(format output (“..”)[. Senarai _nilai(\n));

Printf()

Ialah fungsi dalam pustaka C yang mencetak output pada paparan komputer. Perhatikan bahawa kita telah memasukkan fail header stdio.h yang memberikan maklumat tentang takrifan fungsi printf() ini menerima pemalar rentetan “format output…..”

-format output merupakan satu rentetan yang menentukan bentuk  output bagi nilai-nilai yang disenaraikan. Contonya printf (“ayat pertama)

-senarai_nilai pula boleh terdiri daripada pemboleh ubah, pemalar,ungkapan atau gabungan semuanya.

 

“………”

Rentetan ini menentukan output yang hendak dicetak pada paparan.

 

Simbol %

Ialah intiger

 

\n

dibaca sebagai backslash n. aksara istimewa ini mewakili aksara yang dipanggil garis baru. Aksara ini tidak dicetak. Tujuannya untuk meletakkan kursor di permulaan baris yang baru. Boleh juga diletak di tengah ayat untuk membezakan garis. Contohnya (“selamat datang\nDalam alam aturcara\n”);

 

selaian aksara \n aksara lain yang boleh di isi seperti:

 

\a                 bermaksud loceng

\b             aksara sebelum (backspace)

\f              muka baru (form feed)

\r             ke lajur pertama (carriage return)

\t              tab

\v             tab menegak (vertical tab)

\\              \

\’             

\”            

 055         aksara nilai perlapan

\xA9        aksara nilai perenam belasan 0xA9

\0             aksara nol

 

untuk mencetak nilai format output pula mempunyai spekasi nilai seperti:

 

%s outputnya rentetan aksara

contohnya: untuk cetak pembolehubah nama yang dipaparkan radiah sahaja boleh ditulis

 

void main() {

                char nama [] = “Radiah”

 

                prinf(“%s”, “nama”)

 

outputnya:

                Radiah

 

%c outputnya aksara

contohnya: printf(%c %c %c”, ‘U’ , ’K’ , ’M’ );

outputnya

                U K M

Atau

 

aksara1 = ‘U’;

aksara2 = ‘K’;

aksara 3 = ‘M’;

printf(“%c %c %c , aksara1,aksara2, aksara3);

 

outptnya

                U K M

 

Untuk mewujudkan lebar medan antara dua aksara atau lebih..

Contohnya:

Printf(“%c%3c%7c”, ‘U’ , ‘K’, ‘M’);

Outputnya

U--K------M    MAKSUD tanda‘-‘ merupakan ruang kosong yang telah dijumlahkan dalam a/c tadi.

 

%d outputnya intiger

dan

%f untuk mencetak nila intiger outputnya float/double

contohnya:

void main() {

                int nom1;

                float nom2;

 

                nom1 = 5

                nom2 = 33.77;

                printf(“NILAI pertama = %d\n”,nom);

                printf(“NILAI kedua = %f\n”, nom2);

}

 

outputnya

Nilai pertama = 5

Nilai kedua = 33.770000

 

Atau lebar medan menentukan format nilai intiger

Contoh

Printf(“%5d”, 1234);                Outputnya: -1234

Printf(“%6d”, 1234);                Outputnye : --1234 iaitu bertambah dua ruang kosong begitulah nombor seterusnya

*nombor 1 hingg 4 tetap mencetak satu ruang kosong

format spesifikasi bagi nilai nyata terdiri dari dua bahagian iaitu lebar medan minimum  dan ruang bagi keperisian digit perpuluhan iaitu dalam format:

 

%m.nf

m adalah lebar medan minimum keseluruhan.

n ialah nilai kepersisian iaitu bilangan ruang selepas titik perpuluhan.

contoh:

printf(“%6.1f”, 12.12345);                outputnya: --12.1

printf(“%6.2f”, 12.12345);                outputnya: -12.12

printf(“%6.3f”, 12.12345);                outputnya: 12.123

 

atau

 

sekiranya digit berikut adalah 5 atau lebih besar, digit kepersisian terakahir perlu ditambah satu contoh:

jika input: 12.3456789

printf(“%6.3f\n”);

 

outputnya: 12.346.                 (oleh kerana digit perpuluhan berikutnya – iaitu 7 lebih daripada enam maka digit yang

                                                ke tiga ditambah satu menjadi 6)

 

 

*sekiranya nilai n lebih besar daripada bilangan digit perpuluhan nombor tersebut, maka digit 0 akan ditambah di hujung nilai. Contohnya nilai 12.5 jika ditulis dalam spesifikasi format %6.3f adalah 12.500.

 

*terdapat 6 ruang lebar medan untuk aksara pada output, berubah mengikut a/c.

 

atau

 

kita juga boleh hanya menyatakakan bilangan digit perpuluhan yang ingin dicetak. Lebar medan untuk digunakan bergantung kepada bilangan digit perpuluhan yang hendak dicetak contoh:

input: 12.3456789                  à prinf(“%.1f”);                         à outputnya: 12.3

input 12.3456789                   à prinf(“%.2f”);                         à outputnya: 12.35

 

Kesimpulan

1. jika input : 12.345678

jenis ouput:

(“%d : %2d : %8d)                                 à (%d)777 : (%2d) 777 : (%8d) ~~~~~777.

(“%f : %6.1f : %.4 : %8.3f”) à  (%f) 12.345678 : (%.6.1f) ~~12.3 : (%.4f) 12.3457 : (%8.3f) ~~12.346.

 

2. jika input: 555.55555.

jenis output:

(“%f : %6.1f : %.4f : %8.3f”)                 à (%f) 555.55556 : (%6.1f) ~555.6 : (%.4f) 555.5556 : (%8.3f) ~555.556.

 

gabungan spesifikasi output

contoh:

void main () {

                int umur:

                float tinggi:

 

                umur = 21;

                tinggi = 1.73;

printf(“Ali  berumur %d tahun dan dengan ketinggian %f cm\n”, umur, tinggi;

}

 

Char

Digunakan untuk mewakilkan aksara seperti huruf, digit atau simbol khas seperti ‘?’, nilai suatu aksara boleh dibaca, dicetak dan tukarkan kepada suatu nilai intiger, perbandingan nilai aksara boleh dilakukan dengan menggunakan prngoperasi sama dengan atau tidak sama dengan (= = atau !=), dan pengoperasi hubungan <,<=, dan >=.

 

Tanda ‘….’

Tanda kutip tunggal, untuk mengumpukkan suatu aksara kepada suatu pembolehubah, contoh ‘A’ ‘Z’, ‘3’ ‘?’.

 

Underscore _

Pembolehubah/pencam ini hanya untuk membezekan dua perkataan seperti nom_metrik, yang biasa digunakan ailah membezakan antara huruf besar dan kecil seperti sukomSembilan.

 

Simbol =

Diguna untuk mengumpukkan nilai kepada pembolehubah, berfungsi sama seperti ¬ dimaksudkan menyelesaikan ungkpan di bahagian sebelah kanan dahulu dan kemudian barulah mengumpukkan nilainya kepada pembolehubah di sebelah kiri. Simbole ini tidak sama denagan simbol dalam matematik.

 

Simbol = =

Untuk perbandingan atau semakan

 

float

Nombor nyata, pembolehubah ini digunakan pada nombor perpuluhan sahaja atau nombor nyata.

 

%e outputnya float/double menggunakan tatatanda saintifik

 

Semikolon ;

Fungsi printf diakhiri dengan semikolon kerana semua pengisytiharan dan penyataan dalam C mesti diakhiri dengan semikolon.

 

Return 0;

Intiger bernilai 0 dipulangkan oleh fungsi main() kepada sistem pengoperasian.permulaan ini bermaksud aturcara telah tamat dengan jayanya.

 

Scanf()

Fungsi ini membenarkan kita berinteraksi dengan aturcara yang di tulis. Input adalah daripada papan kekunci.nilai yang diinput dipadankan dengan pemboleh ubah berdasarkan format yang diberikan.

Contoh:

 

Scanf(format_input [, senarai pemboleh ubah]0);

 

Format input merupakan rentetan aksara yang menentukan bentuk rentetan input. Rentetan ini hampir sama dengan printf.

 

Senarai_pembolehubah merupakan alamat loksi ingatan bagi pemboleh ubat yang dipadankan denagan nilai yang diinput.

 

%s bemaksut bagi input rentetan aksara

%c bagi input aksara

%d bagi input integer

%f bagi input float

%lf bagi input doble

%Lf bagi input long doble

 

untuk input pemboleh ubah asas (intiger, nyata dan aksara) kita perlu menyenaraikan alamat lokasi ingatan bagi pemboleh ubah tersebut.

 

& menandakan alamat lokasi dinyatakan dengan menggunakan pengeroperasi terhadap nama pemboleh ubah tersebut seperti

 

scanf (“%c%d”, &aks, &nom);

 

akan membaca dua input. Andaikan aks dan nom adalah masing pemboleh ubah berjenis char dan int. input pertama untuk disimpan dalam ingatan berjenis pembolehubah char manakala input kedua bejenis nom pula disimpan dalam ingatan berjenis pembolehubah int

 

contoh

void main() {

                int hari, bulan, tahun;

 

                scanf(“%d %d %d”, &hari, &bulan, &tahun);

                printf(“Hari: %d, Bulan: %d, Tahun: %d”, hari, bulan, thun);

}

 

outputnya, sekiranya terdapat ruang kita menginput untuk hari, bulan dan tahun. Cntohnya

31 8 1999 selepas menekan kunci <anter>

 

outputnya setiap nilai input terdapat ruang kosong telah diumpukkan seperti

hari: 31, bulan: 8, tahun :1999

 

PENGOPERASI DAN UNGKAPAN

 

aritamatik

+              tambah

-               tolak

*              darab

/               bahagi, terbahagi kepada pembahagian intiger dan pembahagian nyata

%             modulo, operasi ini menghasilkan nilai baki daripada pembahagian intiger. Operasi ini hanya dilakukan terhadap operan inigesahaja seperti., 5 % 3 = 2,                7 % 2 = 1, 12 % 2 = 0

 

Paras keutamaan

tinggi  *,/,%

rendah                +,-

 

-ungkapan aritmatik dinilai mengikut paras keutamaan. Pengoperasi paras keutaaan paling tinggi akan dinilai dahulu.

-sekiranya paras keutamaan adalah sama, maka ungkapan tersebut dinilai daripada kiri ke kanan.

-sekiranya tidak mahu dinilai mengikut paras keutamaan kita perlu membuat kurungan. Unkapan dalam kurungan dinilai terlebih dahaulu.kurungan tersarang(kurungan dalam kurungan dikira terlebih dahulu.

-dalam menilis ungkapan algebra penting menggunakan kurungan untuk mmbezakan ungkapan aritmatik biasa dan C, seperti;

15+5+7                   ungkapan C                             (15 + 5 +7) / 2

     2

 

Contoh soalan:

Untuk setiap ungkapan algebra berikut, tuliskan ungkapan aritmatik C yang setara dengannya. Kemudian tunjukkan bagaimmana andda memperolehi nilai bagi ungkapanaritmatik C tersebut jika benilai

 

 

a) b-a * c+b

à            b-a*-c+b

                =2- 5 * -5+2

                = 2+(-5*-5)+2

                =2+2.5+2

                =27 +2

                = 29.

 

b)       a+ab +c

            b    c

à            a+(a/b) – (b/c)+c

                =5+(5/2)-(2/-5)+(-5)

                =5+2 – (2/-5) +(-5)

                =5+2+0-5

                =2

 

c)         b-c +a

 c+a   b

à            (b-c/c+a)+(a/b)

                =((2-(-5) / (-5+5))+(5/2)

                =(2+5/-5+5)+(5/2)

                =(7/0)+(5/2)

                =0+2

                =2

 

Pernyataan ungkapan berganda

Kita boleh melakukan beberapa proses umpukan dalam satu pernyataan seperti:

a = b =(c = 40)  /*umpukkan nilai 40 kepada pembolehubah c */

a = (b = (c =40)) /* ungkapan c = 40 menghasilkan nilai 40. Nilai ini akan diumpuk kepad b iaitu bernilai 40 */

(a = (b = (c = 40)) /* disini nilai diumpuk puila kepada a */

 

Pernyataan umpukan Majmuk

Iaitu nilai asal pembolehubah ditambah atau didarab dengan satu nilai lain dan kemudian diumpukkan kembali kepada nilai asal, seperti,

 

bil = bil + 5

 

dalam C pernyataan pengoperasi majmuk ditilis seperti ini

 

Pengoperasi                             Contoh                Makna

+=                                           bil += 5;                bil = bil + 5;

-=                                            bil -= 5;                bil = bil – 5;

*=                                            bil *= 5;                bil = bil * 5;

/=                                             bil /= 5;                bil = bil / 5;

%=                                          bil %= 5;                bil = bil % 5;

 

Paras keutamaan operasi majmuk  adalah paling rendah. Ini bermakna pengoperasi ini akan dinilai paling akhir sekali semasamenyelesaikan suatu ungkapan seperti

Gaji += jamKerja * kadar * 2:

Pernyataan di atas dapat diselesaikan seperti:

ó gaji = gaji + (jamKerja * kadar *2)

               

Pengoperasi Hubungan

Digunakan untuk perbandingan data, tugasnya untuk membandingkan nilai dua ungkapan seperti <, <=, >, >=, ==, !=.

Operasi ini hanya dapat menguji satu hubungan pada satu masa ketika

 
Pengoperasi Mantik

Operasi ini untuk menguji beberapa kes yang berkaitan untuk menentukan keputusan simbol operasi ini seperti:

 

&&          dan

||               atau

!               tak

 

&&, || mesti mempunyai dua operan manakala ! hanya satu operan shj.

Rujuk m/s 116

 

Pengoperasi tokok dan susut

 

++           tokok operan sebanyak 1

--             susut operan sebanyak 1

 

pengoperasi ini memerlukan satu operan sahaj iaitu suatu pembolehubah intiger, makna bagi ungkapan tokok dan susut seperti berikut

 

Ungkapan                Makna                Pernyataan

i++                          i = i + 1                i += 1; maksud ungkapan tersebut ialah nilai i  ditokok selepas digunakan dalam ungkapan.

 

++i                          i = i + 1                i += 1; maksud ungkapan tersebut ialah nilai I ditokok sebelum digunakan dalam ungkapan.

 

i--                            i = i – 1                 i -= 1; maksud ungkapan tersebut ialah nilai I disusut selepas digunakan dalam ungkapan

 

--i                            i = i – 1                i -= 1; maksud ungkapan tersebut ialah nilai I disusut sebelum digunakan dalam ungkapan

 

-          kedudukan pengoperasi terseut tidak memberi kesan, iaitu sama ada di hadapan (prefix) atau di belakang (postfix) pemboleh ubah tersebu.

 

Contoh postfix

 

i = 5

j = i++ - 2

 

Nilai asal 5 ditolakdengan 2; menjadikan j = 3. Kemudian barulah nilai i ditokok menjadi 6 atau sama juaga dengan contoh ini

i = 5;

j = i – 2;

i++;

 

Contoh prefix

i= 5;

j = ++i – 2;

Nilai asal 5 ditokok terlebih dahulu menjadi 6, kemidian ditolak dengan 2; menjadikan j bernilai 4. Kaedah kedua

i = 5;

i++;

j = i –2;

 

Kaedah menjawab soalan nombor 11 muka surat 124

 

i

 

X

 

Y

j=j+(i++-i)

=j+(i-i)

nilai i++

 

Z=x*PI+y

 

j=i

 

4.2f

 

.4f

 

8.3f

5

2.5

27.3678

j=5+(5-5)

j= 5

nilai i++

j= 6

Z=(25*3.14159)+27.3678

Z=7.8539751+27.3678

Z=35.221275

 

 

j=6

 

 

35.22

 

 

35.2218

 

 

--35.222

 

-1

 

1.2

 

-0.9987

J=5+(-1+1)

J=5

Nilai I++

J=0

Atau

5+(-1--1)

= 5+0=5

I++=-1+1

J= 0

Atau

J=j+(I++-i)

=5+(-1-5)

=5-6=-1

Z=(1.2*3.14159)+(-09987)

Z=3.769908+-09987

Z=2.771208

 

j=0

 

2.77

 

2.7712

 

---2.771

 

 

 

 

 

 

 

 

 

Pengoperasi Acu

                Iaitu menggabungkan pembolehubah daripada jenis yang berbeza. Satu operasi terhadap dua intiger hasilnya intiger begitu operan nyata. Tetapi jika suatu operasi dilakukan terhadap satu operan intiger dan satu operan nyata, maka hasilnya adalah nilai nyata seperti;

8 / 5 + 1.5 – 12.5

ó 1 + 10 * 1.5 –12.5         /*8/5 adalah pembahagi intiger*/

ó 1+ 15.0 – 12.5                   /*10*1.5 menghasilkan nilai nyata */

ó 1 + 2.5                               /* 15.0-12.5 menghasilkan nilai nyata */

ó 3.5                                      /* 1+2.5 nilai nyata */

 

contoh

int jumlah, bilangan ;

float purata;

…….

Purata = jumlah / bilangan;

 

Jadikan purata dikekalkan bernilai nyata iaitu dengan menukar purata = ((float) jumlah) / ((float) bilangan);….untuk mengelakkan komputer melakukan pembundaran.

Penjelasan m/s 120

 

STRUKTUR PENYATA KAWALAN

 

Penyataaan if

Digunakan untuk mewakili struktur pilihan. Struktur pilihan membolehkan dan melaksanakan hanya satu daripada beberapa pilihan berdasarkan kepada syarat tertentu

 

Bentuk 1 pemilihan tunggal if

Contoh

if (ungkapan)

    Penyata;

                Penyataan akan dilaksanakan hanya jika nilai unglakapan bukan sifar (benar).

                Penyataan boleh juga terdiri daripada satu penyataan. Ini dikenalisebagai pernyataan majmuk. Pernyataaan majmuk mesti diapit oleh tanda { dan }.

Contoh

if (k < j) {

   Min = k;                                                               /*dilaksanakan jika k < j */

   Printf(“k lebih kecil dari j\n”)                          /* dilaksanakan jika k < j palsu */

}

 

                Ungkapan boleh terdiri daripada ungkapan hubungan atau ungkapan logik yang mempunyai nilai benar  atau palsu.

 

Bentuk 2 (if-else) iaitu bentuk dwi pemilihan

Contoh

if  (ungkapan)

     Pernyataan-1;

else

Pernyataan-2

 

                Jika nilai ungkapan adalah bukan sifar (benar) maka pernyataan-1 akan dilaksanakan. Sebaliknya jika nilai ungkapan adalah sifar (palsu) maka pernyataan 2 pula dilaksanakan. Pernyataan satu dan pernyataan 2 juga boleh teridri daripada penyataan majmuk (yang diapait oleh tanda { dan }. Conth M/S 130.

 

Bentuk 3 (if-else-if)

                Bentuk ketiga pernyataaan if-else-if adalah setara dengan struktur multi-pilihan.

Contohnya,

 

if ( ungkapan 1)

    Pernyataan 1;

else if  (ungkapan 2)

    Pernyataan 2;

else

   Pernyataan 3;

 

                Pernyataan 1 akan dilaksanakan jika nilai ungkapa 1 adalah bukan sifar (benar). Pernyataan 2 pula akan dilaksanakan jika nilai ungkapan 1 adalah sifar (palsu) dan nilai ungkapan 2 adalah bukan sifar (benar), pernyataan 3 pula akan dilaksanakan jika ungkapan 1 dan ungkapan 2 bernilai sifar (palsu).

                Dengan kata lain jika unkapan 1 merupakan pertama kali bernilai bukan sifar(benar) setelah pernyataan satu dilaksanakan, kesemua ujian lain diabaikan jika tidak ungkapan 2 dilaksana ..begitulah seterusnya. Contoh M/S 132

 

Pernyataan if-else dua paras/Multi Paras.

Kadagkala untuk menentukan pilihan memerlukan pernyataan if-else dua paras.

Contoh untuk mencari nilai maksimum dianatara tiga nilai a, b, c.

 

if (a>b) {

  if (a>b)

     maks = a;                                            Blok A

  else                                                        paras2

     maks = c;

}

else {

   if (b>c)

      maks =b;                                           Blok B

    else                                                      paras2

     maks = c;

}

 

                Aturcara di atas terdiri dari satu pernyataan if-else (paras1) yang mana pernyataan satu (blokA) dan pernyataan 2 (blok B) adalah juga pernyataan if-else. Apabila ujian paras 1 adalah benar maka pernyataan if-else pada blok a akan dilaksanakan . sekiranya palsu, maka blok B pula dilaksanakan.

 

Masalah else terjuntai (dangling else problem)

                Kena lebih berhati-hati apabila menulis pernyataan if-else dua paras ataupun multi paras, kebiasaannya kita menggunakan { dan } untuk menunjukkan blok bagi pernyataan tersebut.

                Selain itu gaya penulisan juga penting, lazimnya kita tulis paras kedua pernyataan dengan langkau 3 ruang dan seterusnya paras ke tiga dengn langkau 6 ruangdaripada lajur pertama.

Pernyataan switch dan break.

                Digunakan untuk memilih satu sahaja daripada beberapa pilihan. Pernyataan ini sangat berguna apabila pilihan adalah berdasarkan nilai bagi satu pembolehh ubah atau ungkapan mudah. Nilai ungkapan ini boleh daripada jenis int dan char, tetapi tidak daripada jenis float. Contoh,

 

Switch (ungkapan) {

  case ungkapan-1;

        Pernyataan-1;

        break;

  case ungkapan-2;

        Penyataan-2;

        break;

        :

  case ungkapan-m;

       pernyataan-m;

       break-m;

  default;                  /*boleh diabaikan*/

       pernyatan-n;

       break;

}

 

                Pernyataan switch akan dinilai dan cuba dipadankan dengan satu daripada ungkapan-1 hingga ungkapan-m pada case. Jika dapat dipadankan , pernyataan untuk case berkenaan akan dilaksanakan dan diikuti pernyataan break.

                Pernyataan break ini akan membawa keluar pernyataan swith tanpa melaksanakan penyataan pernyataan case berikutnya. Jika ungkapan tidak dapat dipadankan, dan wujud pernyataan difault maka pernyataan-n dilaksanakan. Jika tidak wujud pernyataan difault kawalan akan keluar daripada pernyatan switch.

Contoh,

 

void main()  {

  int nombor;

 

sacanf (“%d”, &nombor);

switch (nombor) {

   case 1;

      printf(“satu\n”);

    case 2;

     printf(“dua\n”);

   default;

     printf(“lain-lain\n”);

  }

}

contoh lain di muka surat 138

 

Pernyataan for

 

For membolehkan kita mengulangi bahagian aturcara tertentu sehingga bilangan ulangan yang ditentukan (bilagan ditentukan)

 

Bentuk umum pernyataan for adalah seperti berikut:

 

  For (awalan:ujian: pengemaskinian)

        Pernyataan;

 

Contoh:

 

  For (bil = 1; bil <= 8; bil++)

     Printf(“%d\t”,bil)

 

Cara menjawab:

 

Bil=1       bil<=8                cetak bil                bil++

                1<=8                1                2

                2<=8                2                3

                3<=8                3                4

                4<=8                4                5

                5<=8                5                6

                6<=8                6                7

                7<=8                7                8

                8<=8                8                9                (selepas ini nilai adalah palsu)

 

                penegenaskinian  tidak semestinya ungkapan tokok/susut. Seperti:

 

  for (digit = 0; digit <=20; digit +=2)

      printf(“%d\t”, digit);

 

outputnya nanti ialah 2, 4, 6, …..20.

 

                pernyataan dalam gelung for boleh merupakan sebarang pernyataan (seperti pernyataan if, switch dan sebagainya) dan bolehjuga merupakan pernyataan majmuk yang diapit oleh { dan }

                gaya penulisan seperti  pernyataan majmuk ditulis 3 langkau ruang dan tanda } ditilis  selari dengan pernyataan for.

                medan dalam pernyataan for (iaitu ungkapan awalan, ujian dan prngemadkinian) boleh diabaikan dari pernyataan for tersebut contohnya for (digit = 0; digit <=9; digit++ jika diabaikan menjadi for (  ;   digit < 9;   ) {

apabila kita mengabaikan medan tertentu, tanda ; yang memisahkan ketiga-tga medan tersebut perlu kekal, cara ini tidak digalakkan keran pernyataan for memberi ringkasan mengenai ungkapan awalan, pengemaskinian dan ujian penamat dalam satu baris.

Akibat pengabaian semua medan dalam pernyataan for akan menghasilkan gelung yang tidak terhingga dan hanya akan berhenti sehingga komputer ditutup. Seperti for (   ;    ;   ) {

 

Pernyataan while

 

Ia adalah gelung berkawal syarat. Pernyataaan while dapat menghasilakan gelung yang lebih umum berbanding dengan for ia bergelung sehingga syarat tertentu tercapai

                Pernyataan while tidak perlukan maklumat bilangan gelungan tersebut berlaku tetapi hanya meletakkan syarat untuk terus bergelung conto sitaks while:

 

  While (ungkapan)

    Pernyataaan;

 

Ungkapan biasanya merupakan ungkapan hubungan atau ungkapan logik atau ungkapan hubungan majmuk. Ia merupakan mengawal gelung. Ia menghasilkan nilai benar (bukan sifar) atau palsu (sifar).

 

Contohnya :

Jumlah = i = 0;

    Printf(“Masukkan nombor yang lebih besar daripada 0 “);

     Sacanf(“%d”, &n);

          While(i !=n ) {                              /*semak syarat pengawal gelung*/

           Jumlah += i;

           i++;                                              /*mengemaskini pengawal gelung */

}

 

cara menjawabnya ialah.:

nilai n.     while(i !=n)                jumlah=jumlah+=i                   i++

 7             0!=7                        jumlah=0+0=0                       1

                1!=7                        jumlah=0+1=1                       2

                2!=7                        jumlah=1+2=3                       3

                3!=7                        jumlah=3+3=6                       4

                4!=7                        jumlah=6+4=10                     5

                5!=7                        jumlah=10+5=15                   6

                6!=7                        jumlah=15+6=21                   7

                7!=7                tamat

 

                Pernyataaan while dapat juga ditulis dalam bentuk pernyataan for, biasanya pernyataan while adalah setara dengan pembilang gelung dalam pernyataan for.

Contoh pernyataan for

For(awalan; ujian; pengemaskinian)

   Pernyataan;

Contoh gelung while pula ialah

 

awalan;

    while(ujian) {

       pernyataan;

        pengemaskinian;

}

 

contoh sebenar while

digit = 0;

  while (digit < 9) {

    jumlah +=i;

    digit++

}

 

jika ditukar dalam bentuk pernyataan for :

for (digit = 0; digit <9; digit++) {

  jumlah += i;

}

 

untuk lebih jelas rujuk m/s 157

 

Contoh penggunaan pernyataan while.aturcara ini menginput data bil,. Kemudia aturcara akan membaca input sebanyak bil dan mengira bilangan nombor genap dan ganjil, seterusnya rumusan akan dicetak.

 

#include <stdio.h>

 

void main()  {

  int bil, i, genap, ganjil, nilai;

 

  i = genap = ganjil = 0;

  Printf(“masukkan bilangan data”)

      Scanf(“%d”,, &bil);

       while (i  >  bil ) {

           printf(“masukkan nombor positif “);

              Scanf(“%d”, &nilai)’;

             if (nilai % 2 ==0)

             genap++

      else

             ganjil++

      i++

   }

printf(bilangan nilai genap\t%d\n”, genap);

printf(“bilangan nilai ganjil|t%d\n”, ganjil);

}

 

caramenjawab

bil            i<bil                nilai                 % 2=0                kira genap       kira ganjil                i++                 kira ganjil                kira genap

10            0<10      8                %2=0    1                -             1                  5             5

                1<10      4                %2=0    2                -             2               

                2<10      3                %2=0                    1            3

                3<10      2                %2=0    3                              4

                4<10      1                              2                      5

                5<10      5                %2=0                    3            6

                6<10      6                %2=0    4                4            7

                7<10      9                %2=0                    5            8

                8<10                10  %2=0                5                            9

                9<10      7                %2=0     (tamat)

 

                Semua contoh di atas pernyataan while bergelung sehingga syarat tertentu dicapai. Kesemua syarat ini berdasarkan kepada nilai pengawal gelung. Nilai pengawal gelung ini dikemaskini dalam badan gelung.

                Selain daripada gelung sebegini, pernyataan while juga dapat mewakili gelung berkawal sentinel. Gelung berkawalkan sentinel memerlukan satu nilai sentinel yang merupakan syarat bagi memberhentikan gelung. Contohnya

Genap = ganjil = 0

Printf(“masukkan nombor positif (negatif untuk tamat)”);

Scanf(“%d”, &nilai);

While (nilai >= 0)  {                    /* GELUNG SEHINGGA DATA SENTINEL */

     if (nilai % 2 == 0)

        Genap++;

    else

        Ganjil++;

Printf(“masukkan nombor positif  (negatif untuk tamat)”);

……

 

Perntaaan do-while m/s 161

Gelung berkawal syarat dan sentinel juga boleh di tulis menggunakan do-while. Tetapi syarat untuk tamat gelung diuji di akhir gelung. Ini bermakna gelung ini akan dilaksanakan sekurang-kurangnya sekali sebelum syarat ujian di nilai. Contohnya

Do

     Pernyataan

  While ( ungkapan );

 

Contoh :

Printf(“Maukkan nombor yang lebih besar daripada 0”);

Scanf(“%d”. &n);

Jumlah = 1 = 0;

Do{

      Jumlah += i;                    /*jumlah = 0 + 1 +…..+ n-1 */

       i ++;

} while ( i !=n);                     /* langkah pengujian di akhir gelung /*

 

cara menjawab:

N             jumlah                 I++  selagi (I !=n)

                0+0=0                1                I !=5

                0+1=1                2                I !=5

                1+2=3                3                I !=5

                3+3=6                4                I !=5

                6+4=10                5                I !=5

 

Pernyataan Continue

Bukan satu pernyataan gelung tetapi merupakan pernyataan kawalan yang membolehkan kita menyambung terus gelungan berikutnya tanpa melaksanakan pernyataan seterusnya dalam badan gelung, ia juga boleh dugunakan dalam semua pernyataan geluang iaitu while, do-while dan for, sinteksnya ialah

 

Continue;

 

Seperti

For (i = 0; i <= 9; i++ {

     if (i % 2)

       continue;

     else

       Printf(“%d adalah nombor genap\n”, I);

    Printf(“Cetak hanya bila genap ! \n”);

}

 

output bagi atur cara ini ialah

0 adalah nombor genap

cetak hanya bila genap !

2 adalah nombor genap

cetak hanya bila genap

……..sehingga nombor 8.

 

Contoh aturcara berikut menunjukkan penggunaa pernyataan continue. Aturcara ini meminta input bilangan data dan bergelung untuk menerima input data tersebut untuk mencari nilai jumlah. Diakhir gelung, aturcara akan mengira  purata bagi nilai data yang diimput. Sfar dan negatif tidak diambil.

 

Void main ()

  int n, bil, jumlah, i, data”);

Scanf(%d”, &n);

Bil = jumlah = 0;

for (i = 0; i < n; i++)  {

     Printf(“data: “)

if (data <= 0)

    continue;                             /* jika data sifar atau negatif input lagi */

Jumlah += data;

Bil++;

}

purata = (float) jumlah / bil;

printf(“\nBilangan data lebih daripada 0;: %d\n”, bil);

printf(“jumlah: %d\n”, jumlah);

printf(“purata : %2f\n”, purata);

}

 

contah cara menjawab

jika nilai n=7

dan data yang dinput ialah 20, 15, -5, 7, 11, 0, 1

 

n      i=0     i<7        input data        data<=0        jumlah+=data        b++   I++    bil        jumlah        purata

7                0<7        20      20<=0        0+20=20        1        1

                  1<7        15      15<=0        20+15=35        2        2

                  2<7        -5       -5<=0                      3

                  3<7        7        7<=0        35+7=42        3        4

                  4<7        11      11<=0        42+11=53        4        5

                  5<7        0        0<=0                       6

                  6<7        1        1<=0        53+1=54        5        7

                                                                                  5        7        10.8

 

output bilangan data lebih daripada angka 0:5

jumlah 54

jumlah / bil = purata 10.8000

 

Pernyataan break dalam gelung

Pernyataan ini boleh digunakan dalam gelung while, do-while atau faktor

Pernyataan brek disini menetukan bagaimana ia digunakan untuk keluar daripada gelung pada keadaan tertentu.

Contoh

Printf(“Masukkan nombor 1 hingga 10: “)

Scanf(“%d”, &nilai);                                    /*nilai ditentukan oleh kita*/

For (i = 1; i <= 10; I++) {

     if (i == nilai)

         Break;

    Printf(“%d”, i);

}

printf(“\nKeluar daripada gelung apabila nilai %d”, I);

 

contoh masukkan nilai 6, apbila gelung tiba ke nilai 6 gelung akan berhenti iaitu pernyataan brek telah dilaksanakan.

 

                Pernyataan diatas adlah ubahsuai dari data yang berbentuk sentinel negatif yang memerlukan dua kali pernyataan scanf dalam ungkapan while.

Contoh pengubahsuaian yang dilakukan menggunakan gelung tidak terhingga.

Genap = ganjil = 0

While (1)  {                             /* 1 sentiasa benar è gelung tidak terhingga*/

Printf(“Maukkan nombor positif (negatif untuk tamat)”);

Scanf(“%d”, &nilai);

if  (nilai    >= 0)                     /*UJI DATA SENTINEL DISINI*/

    Break                                 /*GELUNG TAMAT*/

     if (nilai % 2 == 0)

        Genap++;

    else

        Ganjil++;

Printf(“Bilangan nilai genap\t%d\n”, genap);

Printf(“Bilangan nilai ganjil\t%d\n”, ganjil);

 

Jika berlaku penyarangan gelung, brealk akan keluar daripada gelung yang paling dalam.

 

 

 

 

Gelung tersarang

Berlaku apabila satu daripada pernyataaqn dalam gelung adalah pernyataan gelung. Apabila berlaku penyarangan elung paling dalam sekali akan diaksanakan sehingga berulang kpepada tamt dan kembali ke gelung luar semula.

Contoh penyarangan gelung for.

 

For (i = 0; i < 2;  i++)  {                                     /* paras satu */

     For (j=0; j < 5; j++)  {                                     /* paras 2 */

         Printf(“d, %d\t”, i, j);

    }                                                                          /* tamat paras 2*/

    printf(“\n”);

}                                                                              /*tamat paras 1

 

penjelasan/huraian m/s 169

i               j                printf(“..”, i, j)                printf(“\n);

0              0                0, 0\t

1                     0, 1\t

2                     0, 2\t

3                     0, 3\t

4                     0, 4\t \n

 

 

1              0                1, 0\t

1                     1, 1\t

2                     1, 2\t

3                     1, 3\t

4                     1, 4\t \n

 

Untuk lebih lanjut rujuk m/s 170, 171, 172.

 

Contoh aturcara mengira gaji.

 

#include <studioh>

main() {

float jam_kerja, kadar_sejam, gaji_kasar, gaji_bersih;

float gaji_kenaCukai, cukai, Jum_maksima, kadar_lebihMasa;

 

gaji_kasar = gaji_bersih=0;

gaji_kenaCukai = 500.00;

cukai = 50.00;

jum_maksima = 40.0;

kadar_lebihMasa =2.0;

 

printf (“\n Masukkan jumlah kerja darab kadar sejam”);

scanf (“%f %f”, &jam_kerja, &kadar_sejam);

 

                if (jam_kerja <=jam_maksima)

                     gaji_kasar=jam_kerja * kadar_sejam;

                else

                    gaji_kasar= (jam_maksima * kadar_sejam + ((jam_kerja-jam_maksima) * kadar_lebihmasa * kadar_sejam

 

                if (gaji_kasar > gaji_kenaCukai)

                     gaji_bersih = gaji_kasar-cukai;

                else

                     gaji_bersih = gaji_kasar;

 

printf (“\n gaji_kasar = %.2f”, gaji_kasar);

printf (“\n gaji_bersih = %.2f”, gaji_bersih;

 

  }

Soalan 5 m/s 175.

i=1

i<=5

C. Luar\n

C,i

J=i

J<=i

C. \tDalam\t

C. j

k=1

k<=j

C. k

k++

\n

J++

I++

 

1<=5

Luar

1

1

1<=1

dalam

1

1

1<=1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=1

X

-

\n

2

 

 

 

 

 

 

2<=1

X

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

2<=5

Luar

2

1

1<=2

dalam

1

1

1<=1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=1

X

-

\n

2

 

 

 

 

 

2

2<=2

dalam

1

1

1<=2

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=2

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=2

X

-

\n

3

 

 

 

 

 

3

3<=2

x

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

3<=5

Luar

3

1

1<=3

dalam

1

1

1<=1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=1

X

 

\n

2

 

 

 

 

 

2

2<=3

dalam

2

1

1<=2

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=2

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=2

X

-

-

3

 

 

 

 

 

3

3<=3

dalam

3

1

1<=3

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=3

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=3

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=3

X

-

-

4

 

 

 

 

 

4

4<=3

x

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

4<=5

Luar

4

1

1<=4

dalam

1

1

1<=1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=1

X

-

\n

2

 

 

 

 

 

2

2<=4

dalam

2

1

1<=2

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=2

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=2

X

-

\n

3

 

 

 

 

 

3

3<=4

dalam

3

1

1<=3

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=3

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=3

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=3

X

-

\n

4

 

 

 

 

 

4

4<=4

dalam

4

1

1<=4

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=4

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=4

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=4

4

5

 

 

 

 

 

 

 

 

 

 

 

 

5<=4

X

-

\n

5

 

 

 

 

 

5

5<=4

x

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

5<=5

luar

5

1

1<=5

dalam

1

1

1<=1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=1

X

-

\n

2

 

 

 

 

 

2

2<=5

dalam

2

1

1<=2

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=2

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=2

X

-

\n

3

 

 

 

 

 

3

3<=5

dalam

3

1

1<=3

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=3

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=3

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=3

x

-

\n

4

 

 

 

 

 

4

4<=5

dalam

4

1

1<=4

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=4

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=4

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=4

4

5

 

 

 

 

 

 

 

 

 

 

 

 

5<=4

x

-

\n

5

 

 

 

 

 

5

5<=5

dalam

5

1

1<=5

1

2

 

 

 

 

 

 

 

 

 

 

 

 

2<=5

2

3

 

 

 

 

 

 

 

 

 

 

 

 

3<=5

3

4

 

 

 

 

 

 

 

 

 

 

 

 

4<=5

4

5

 

 

 

 

 

 

 

 

 

 

 

 

5<=5

5

6

 

 

 

 

 

 

 

 

 

 

 

 

6<=5

x

-

\n

6

 

 

 

 

 

6

6<=5

x

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

6<=5

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Output yang terhasil daripada Soalan 5 m/s 175.

 

luar    1

          dalam           1       1

luar    2

          dalam           1       1

          dalam           2       12

luar    3

          dalam           1       1

          dalam           2       12

          dalam           3       123

luar    4

          dalam           1       1

          dalam           2       12

          dalam           3       123

          dalam           4       1234

luar    5

          dalam           1       1

          dalam           2       12

          dalam           3       123

          dalam           4       1234

          dalam           5       12345

 

Jawapan soalan nom. 14 m/s 177.

 

N=5

I=0

I<N

J=0

J<I

C.J\t

J++

\n

I++

I=0

I<N

J=0

J<N-I

C.J\t

J++

\n

I++

 

0

0<5

0

0<0

X

 

 

1

0

0<5

0

0<5-0

0

1

 

 

 

1

1<5

0

0<1

0

1

 

 

0

 

1

1<5

1

2

 

 

 

 

 

2

1<1

X

 

\n

2

0

 

2

2<5

2

3

 

 

 

2

2<5

0

0<2

0

1

 

 

0

 

3

3<5

3

4

 

 

 

 

 

1

1<2

1

2

 

 

0

 

4

4<5

4

5

 

 

 

 

 

2

2<2

X

 

\n

3

0

 

5

5<5

X

 

\n

1

 

3

3<5

0

0<3

0

1

 

 

1

1<5

0

0<5-1

0

1

 

 

 

 

 

1

1<3

1

2

 

 

1

 

1

1<4

1

2

 

 

 

 

 

2

2<3

2

3

 

 

1

 

2

2<4

2

3

 

 

 

 

 

3

3<3

X

 

\n

4

1

 

3

3<4

3

4

 

 

 

4

4<5

0

0<4

0

1

 

 

1

 

4

4<4

X

 

\n

2

 

 

 

1

1<4

1

2

 

 

2

2<5

0

0<4-1

0

1

 

 

 

 

 

2

2<4

2

3

 

 

2

 

1

1<3

1

2

 

 

 

 

 

3

3<4

3

4

 

 

2

 

2

2<3

2

3

 

 

 

 

 

4

4<4

X

 

\n

5

2

 

3

3<3

X

 

\n

3

 

5

5<5

x

X

X

x

X

x

3

3<5

0

0<3-1

0

1

 

 

 

 

 

 

 

 

 

 

 

3

 

1

1>2

1

2

 

 

 

 

 

 

 

 

 

 

 

3

 

2

2<2

x

 

\n

4

 

 

 

 

 

 

 

 

 

4

4<5

0

0<2-1

0

0

 

 

 

 

 

 

 

 

 

 

 

4

 

1

1<1

x

 

\n

5

 

 

 

 

 

 

 

 

 

 

5<5

X

x

x

x

x

X

 

Output yang terhasil.

 

0

0              1

0              1            2

0              1            2                3

0              1            2                3            4

0              1            2                3

0                 1            2

0              1

0

 

 

FUNGSI

 

Fungsi ialah gabungan pernyataan yang dibentuk untuk melaksanakan suatu tugas.

 

Contoh fungsi muadah;

Y=sqrt(x);

Sqrt(x)     à adalah panggilan fungsi

Sqrt         à nama fungsi

X             à argumen

 

*perlu diingat takrifan fungsi dia atas perlu bersesuaian denan pustaka piawai iaiatu #include <math.h> . sebelum ini kita telah banyak menggunakan pustaka piawai seperti #include <stdio.h> untuk fungsi main() bagi mengawal protype fungsi printf, scanf dll.

 

Rekabentuk atas bawah.

Bermula dari masalah asal pada paras paling atas dan beranjak ke sabmasalah pada setiap paras paling rendah. Proses ini hampir sama dengan alkhawarizmi

 

Mekanisma kerja fungsi.

Satu cara untuk mengimplement reka bentuk atas bawah ialah mentakrifkan funsi milik mereka sendiri.

Contoh mudah mereka fungsi .

#include <stdio.h>                  à arahan pemproses bagi pustaka piawai.

Lukis_bulatan()

Lukis_garissilang()

Lukis_garis dasar()

Lukis_segitiga()

 

·          fungsi di atas adalah satu prototype atau pengistiharan fungsi-funsi yang dibuat sebelum fungsi main()

 

Prototype fungsi

Disitiharkan sebelum fungsi main.

 

Jenisdata nama fungsi(senarai takrifan parameter sebenar);

 

Prototype fungis memberitahu pengkompil C maklumat mengenai parameter iatu bilangan dan jenis data bagi parameter yang akan dihantar kepada kepada fungsi dan memberi tahu jenis nilai yang akan dipulangkan oleh fungsi tersebut.

 

Jenisdata à sesuatu fungsi ditentukan oleh nilai yang dipulangkan oleh fungsi trsbt.

1.        void  tidak memulangkan sebarang nilai.

2.        float memulangkan nilai float

3.        int memulangkan nilai integer

4.        Dll.

 

Senarai takrifan parameter sebenar  à senarai jenis bagi setiap parameter yang dipisahkan oleh koma.

Contoh;

int  lukisSegiempat(int lebar, int tinggi); /* input integer output integer*/

 

*sebarang nama pencam parameter boleh ditulis atau tidak kerana ia tidak akan memberi kesan kepada prototype.

 

Panggilan fungsi.

Sintaks am;

 

Nama fungsi(senarai_parameter_sebenar)

 

Senarai_parameter_sebenar  ialah parameter yang dihantar sebagai input kepada fungsi

 

Nama fungsi berfungsi untk melaksanakan fungsi, apabila nama funsi dipanggila. Kawalan a/c akan berpindah kepada namafungsi().

 

Takrifan fungsi

Merupakan kod aturcara C yang menerangkan apa yang dilakukan oleh suatu fungsi

Sepert;

Jenis_data nama fungsi(senarai takrifan parameter) {

    Pengisytiharan pemboleh ubah setempat;

 

   Pernyataan

}

 

·          sebelub tanda { adalah kepala takrifan fungsi dan antara { dan } merupakan badan bagi takrifan fungsi.

 

Jenis_data à ialah jenis yang dipulangkan oleh fungsi, jika tidak kata kunci void digunakan.

Nama fungsi à mesti mematuhi sarat seperti pencam/ pemboleh ubah yang dibenarkan

Senarai parameter à ialah pengisytiharan parameter yang dipisahkan oleh koma, parameter-parameter ini dihantar sebagai input.

 

Fungsi dengan parameter.

Jenis data Nama fungsi(parameter)

 

1.        parameter sebenar (parameter pada panggilan fungsi)

2.        parameter formal (parameter pada takrifan fungsi)

 

*biasanya parameter sebenar dan formal mesti sepadan.

Contoh fungsi dengan rameter;

1.        float kira_luas(int);  

à fungsi kira_luas() akan memulangkan (output) satu nilai berjenis float dan senarai parameter int menerima (input) argumen/ parameter berjenis integer.

2.        Void padam_paparan(void);

à fungsi tidak mengoutput sebarang parameter dan menginput sebarang  nilai

3.        float kira(int jam, int jum);

à fungsi mengoutput parameter bernilai float dang menginput parameter berjenis integer.

 

Pernyataan return

Fungsi mengembalikan nilai dengan pernyataan return

 

Return;

atau

return ungkapan

 

return bila dilaksanakan, kawalan a/c akan dikembalikan kepada persekitaran yg memanggil dengan serta-merta

 

ungkapan boleh terdiri daripada pemalar, pembolehubah atau pun ungkapan lain (iaitu arithmatik, mantik atau hubungan) seperti return (45*6+jumlah(x);

contoh;

return;

return 787;

return luas;

return ++a;

return (a+b+c);

 

Skop pembolehubah.

1.        pembolehubah setempat (local)

à boleh diubah nilainya didalam fungsi yang mengisytiharkanya. Tidak boleh diganggu oleh fungsi lain. Diisytiharkan selepas tanda { suatu fungsi.

Contoh;

Int main(void0 {

  Int I, j;                   à pembolehubah setempat bagi fungsi main();

:

}

 

2.        pembolehubah sejagat (global)

à dikenali oleh seluruh a/c termasuk fungsi, boleh diubah oleh sebarang fungsi. Diisytiharkan sebelum takrifan fungsi main().

 

Int I, j;     à pembolehubah sejagat

Int main(void)  {

:

}

 

 

 

 

 

 

 

 

 

 

 

I

=

1

N

=

4

I<=4

J=kira

(I, I*I)

Ctk I= J=

I++

Jum

=

0

K = i

K<=j

Jum += k

K++

Return jum

Kira

int I, int j

1

4

I<=4

1, 1x1=1

 

 

0

K= 1

1<=1

1 = 0+1

2

 

 

 

 

 

 

 

 

 

2=1

2<=1

x

 

1

1 , 1

 

 

 

Jum à j = 1

i=1 j=1

2

 

 

 

 

 

 

 

 

 

2<=4

2,2x2=4

 

 

0

K=2

2<=4

2=0+2

3

 

 

 

 

 

 

 

 

 

 

3<=4

5=2+3

4

 

 

 

 

 

 

 

 

 

 

4<=4

9=5+4

5

 

 

 

 

 

 

 

 

 

 

5<=4

x

 

9

2 , 9

 

 

 

Jum à j = 9

I = 2 j = 9

3

 

 

 

 

 

 

 

 

 

3<=4

3,3x3=9

 

 

0

K=3

3<=9

3=0+3

4

 

 

 

 

 

 

 

 

 

 

4<=9

7=3+4

5

 

 

 

 

 

 

 

 

 

 

5<=9

12=7+5

6

 

 

 

 

 

 

 

 

 

 

6<=9

18=12+6

7

 

 

 

 

 

 

 

 

 

 

7<=9

25=18+7

8

 

 

 

 

 

 

 

 

 

 

8<=9

33=25+8

9

 

 

 

 

 

 

 

 

 

 

9<=9

42=33+9

10

 

 

 

 

 

 

 

 

 

 

10<=9

X

 

42

3 , 42

 

 

 

Jum à j = 42

I = 3

J = 42

4

 

 

 

 

 

 

 

 

 

4<=4

4,4x4=16

 

 

0

K=4

4<=16

4=0+4

5

 

 

 

 

 

 

 

 

 

 

5<=16

9= 4+5

6

 

 

 

 

 

 

 

 

 

 

6<=16

15=9+6

7

 

 

 

 

 

 

 

 

 

 

7<=16

22=15+7

8

 

 

 

 

 

 

 

 

 

 

8<=16

30=22+8

9

 

 

 

 

 

 

 

 

 

 

9<=16

39=30+9

10

 

 

 

 

 

 

 

 

 

 

10<=16

49=39+10

11

 

 

 

 

 

 

 

 

 

 

11<=16

60=49+11

12

 

 

 

 

 

 

 

 

 

 

12<=16

72=60+12

13

 

 

 

 

 

 

 

 

 

 

13<=16

85=72+13

14

 

 

 

 

 

 

 

 

 

 

14<=16

99=85+14

15

 

 

 

 

 

 

 

 

 

 

15<=16

114=99+15

16

 

 

 

 

 

 

 

 

 

 

16<=16

130=114+16

17

 

 

 

 

 

 

 

 

 

 

17<=15

x

 

130

4 , 130

 

 

 

Jum à j = 130

I = 4

J = 130

5

 

 

 

 

 

 

 

 

 

5<=4

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

j

Markah[i]

Markah[j]

Sementara

1

2

12

70

 

1

2

70

12

70

1

2

12

70

70

1

3

12

40

70

1

4

12

60

70

1

5

12

23

70

1

6

12

100

70

1

7

12

32

70

1

8

12

16

70

1

9

12

9

70

1

9

12

9

12

1

9

9

12

12

 

 

2

9

70

40

60

23

100

32

16

12

 

 

i

j

Markah[I]

Markah[j]

Sementara

2

3

70

40

 

2

3

70

40

70

2

3

40

70

70

2

4

40

60

70

2

5

40

23

70

2

5

40

23

40

2

5

23

40

40

2

6

23

100

40

2

7

23

32

40

2

8

23

16

40

2

8

23

16

23

2

8

16

23

23

2

9

16

12

23

2

9

16

12

16

2

9

12

16

16

 

2

9

12

70

60

40

100

32

23

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

j

Markah[I]

Markah[j]

Sementara

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

j

Markah[I]

Markah[j]

Sementara

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

j

Markah[I]

Markah[j]

Sementara