1 / 39

BAB 6 :PERNYATAAN KAWALAN

BAB 6 :PERNYATAAN KAWALAN. BAB 6 . Struktur kawalan Tujuan : mengawal aliran aturcara Jenis: Struktur pemilihan Struktur Perulangan & Gelung Kata kunci: if else switch case for while do. STRUKTUR PEMILIHAN. Arahan2 dipilih utk dilaksanakan & pemilihan bergantung kepada syarat

branxton
Télécharger la présentation

BAB 6 :PERNYATAAN KAWALAN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BAB 6 :PERNYATAAN KAWALAN

  2. BAB 6 • Struktur kawalan • Tujuan : mengawal aliran aturcara • Jenis: • Struktur pemilihan • Struktur Perulangan & Gelung • Kata kunci: • if else • switch case • for • while do

  3. STRUKTUR PEMILIHAN • Arahan2 dipilih utk dilaksanakan & pemilihan bergantung kepada syarat • Dilakukan dengan 3 cara: • Pemilihan dgn if & else • Pemilihan dgn operator bersyarat • Pemilihan dgn switch, case & break

  4. Pemilihan dgn if & else • Terdapat 3 format • Format 1 • if (syarat) bhgn_benar; • Contoh • if (x == 10) printf(“sama dgn 10”);

  5. Pemilihan dgn if & else (samb) • Format 2 • if (syarat) bhgn_benar; else bhgn_palsu; • Contoh • If (x<0) printf(“no negatif”); else printf(“no positif”);

  6. Pemilihan dgn if & else (samb) • Format 3 (bersarang) • if (syarat 1) bhgn_benar 1; else if(syarat 2) bhgn_benar 2; : else bhgn_palsu;

  7. Pemilihan dgn if & else (samb) • contoh • if (x == 0) printf(“ no sifar “); else if(x < 0) printf(“ no negatif ”); else printf (“ no positif “);

  8. Syarat,syarat1… • Ungkapan logik dan hubungan mudah/kompleks • Bhgn_benar / Bhgn salah • Terdiri dr 1/lebih kenyataan C. • Jika lebih dr satu, mesti di letakkan di antara tanda {} Contoh if(x<10){ printf(“lebih kecil dpd 10); --kira; } else { printf(“lebih besar dpd 10); ++kira; }

  9. Jenis struktur pemilihan: • Pemilihan mudah • Hanya ada 1 @ 2 bahagian pilihan sahaja • Pemilihan Bersarang • Jika lbh dr 2 pilihan • 2 cara pemilihan bersarang: • Keputusan Berbilang Alternatif • if…else if • Syarat if yg diberi dlm beberapa aras

  10. Syarat if yg diberi dlm beberapa aras Tulis satu aturcara utk mengira & memaparkan luas satu segiempat. Saiz sisi segiempat ini diberikan oleh pengguna melalui papan kekunci. Aturcara anda mesti memastikan saiz sisi2 yg diberi bukanlah sifar atau negatif. Jika saiz yg diberikan adalah sifar, cetak mesej amaran kpd pengguna & jadikan luas sifar. Jika saiz yg diberikan adalah negatif, ambil magnitudnya shj.

  11. Cth Syarat if yg diberi dlm 2 aras if (panjang== 0 || lebar ==0) { printf("%*@$%^#***@^\n"); luas=0; } else { if (panjang < 0) panjang = -panjang; /*cari magnitud panjang*/ if (lebar < 0 ) lebar = -lebar; /* cari magnitud lebar*/ luas = panjang*lebar; }

  12. Cth Syarat if yg diberi dlm 4 aras Kementerian pertahanan hendak menyenaraikan nama-nama kakitangan lelaki yg berumur 20 hingga 26 tahun dan belum berkahwin. Kenyataan if bersarang berikut boleh digunakan: if (jantina == 'L' ) if (taraf_perkahwinan == 'B') if (umur <=26) if (umur>=20) printf("%s\n",nama ); ATAU kenyataan berikut juga boleh digunakan: if ((jantina == 'L' )&& (taraf_perkahwinan == 'B')&& (umur <=26) && (umur>=20)) printf("%s\n",nama );

  13. Pemilihan dgn operator bersyarat • Format: • ekspresi_1 ? Ungkapan_benar : ungkapan_palsu • Maksud: • ekspresi_1 akan diuji • Jika memenuhi syarat , ungkapan_benar dilaksanakan • Jika tidak memenuhi syarat , ungkapan_palsu dilaksanakan • Contoh • (umur <12) ? harga_tiket =10 :harga tiket = 20;

  14. Pemilihan dgn operator bersyarat • Sama dgn kenyataan if-else if(umur <12) harga_tiket =10; else harga_tiket =20; Boleh juga ditulis spt berikut harga_tiket = (umur <12) ? 10 :20;

  15. Pemilihan dgn switch,case & break • Jika terdapat banyak pilihan dalam aturcara, lebih mudah dilakukan dgn menggunakan struktur switch-case-break berbanding if..else • Format: switch(ungkapan_kawalan) { case label_1: arahan-arahan; case label_2: arahan-arahan; case label_3: arahan-arahan; ……. default : arahan-arahan; }

  16. Di mana: • ungkapan kawalan • Ungkapan yg akan menghasilkan nilai integer atau aksara. • label_1, label_2….. • Nilai kes utk menentukan pilihan • Nilai ini mestilah dr jenis integer atau aksara sahaja • Nombor sahih dan pembolehubah tidak dibenarkan • arahan-arahan • Pernyataan C yg perlu dilakukan utk setiap label • Boleh terdiri dr 1 atau lebih pernyataan dan tak perlu di blok • Walaubagaimanapun, pernyataan yg terakhir bg setiap label (kecuali label terakhir) mestilah pernyataan break • default • Optional • Jika digunakan ia adalah utk menangani kes yg lain yg tidak dilabelkan • switch,case • Mesti diblokkan

  17. Pemilihan dgn switch,case & break Contoh: int x; scanf("%d", &x); switch (x) { case 1: puts ("satu"); break; case 2: puts ("dua"); break; case 3: puts ("tiga"); break; default: puts ("bukan satu dua tiga "); } If(x= = 1) puts (“satu”); else if(x= = 2) puts (“dua”); else if(x= = 3) puts (“tiga”); else puts(“bukan satu,dua, tiga”);

  18. LATIHAN • Bentukkan ungkapan dlm C bagi mengungkap syarat2 berikut: • nombor sama dgn atau lebih besar dari 1 tetapi lebih kecil dari 9 • pembolehubah hrf bukan huruf q atau k • Jika nombor adalah di antara 1 dan 9 tetapi bukan 5 cetak “nombor kegemaran saya”.

  19. Gelung??? • Blok kenyataan yg perlu dilaksanakan berulang-ulang sehingga sesuatu syarat dipenuhi • Katakunci: while, do….while, for • 2 cara mengawal ulangan gelung: • Menggunakan pembilang • Digunakan jika bilangan ulangan diketahui semasa aturcara dikod • Menggunakan data sentinel di dalam ungkapan bersyarat • Digunakan jika bilangan ulangan tidak diketahui semasa aturcara dikod • Data sentinel => data yg ditentukan sendiri oleh pengaturcara sbg data penamat • Ulangan di buat sehingga data sentinel ditemui

  20. Pernyataan for • Digunakan utk ulangan yg diketahui bilangannya • Pernyataan while & do-while • Digunakan utk ulangan yg diketahui atau tidak diketahui bilangan ulangannya

  21. PERNYATAAN while • Format: • while(ungkapan syarat) satu pernyataan c; • while(ungkapan syarat) { pernyataan_1; pernyataan_2; ……. pernyataan_n; } /* end pernyataan while*/

  22. PERNYATAAN while (contoh) int digit =1; while (digit <= 10) { printf(“%d\n”,digit); ++digit; } Printf(“masukkan data :”); scanf(“%d”, nombor); While (nombor != 9999){ ++bil; jumlah = jumlah + nombor; Printf(“masukkan data :”); scanf(“%d”, nombor); }

  23. PERNYATAAN do-while • Juga mempunyai peranan seperti while • Perbezaannya: dari segi kedudukan pengujian • Bagaimana??? : Berlaku pada bahagian bawah gelung. • => kawalan akan masuk ke badan gelung dan melaksanakannya sekali, sebelum menilai ungkapan syarat

  24. FORMAT do-while do { blok aturcara C;} while (ungkapan syarat);

  25. PERNYATAAN do-while (contoh) int digit =1; do { printf(“%d\n”,digit); ++digit; } while (digit <= 10); do { puts(“Masukkan Y atau N=>”); scanf(“%c”, &jawapan); } while ((jawapan != ‘Y’) || jawapan != ‘N’));

  26. PERNYATAAN for • Pernyataan gelung dengan format yg mudah tetapi bilangan ulangan yg hendak dibuat mesti diketahui semasa aturcara dikod. • Menggunakan pembolehubah kawalan utk mengawal bilangan ulangan yg dilaksanakan.

  27. FORMAT for for(ungk_awal;ungk_syarat;ungk_peningkatan) { blok aturcara C; } cth: for(darjah=0;darjah<=360;darjah +=10) { radian = darjah*pi/180; printf(“Radian:”,radian); }

  28. ungk_awal • terdiri daripada pernyataan umpukan utk memberi nilai awal kepada pembolehubah kawalan • ia pertama dilaksanakan dalam pernyataan for dan hanya dilaksanakan sekali • Jika pembolehubah kawalan telah diberikan nilai awal sebelum pernyataan for, ungkapan ini boleh diabai tetapi tanda ; tetap diperlukan.

  29. ungk_syarat • ungkapan yg mengawal perlaksanaan gelung • Biasanya membandingkan pembolehubah kawalan yg digunakan dgn nilainya yg akhir utk menentukan sama ada ulangan telah tamat atau belum. • Ungkapan akan dinilai setiap kali sebelum melaksanakan badan gelung. • ungk_peningkatan • ungkapan yg menambah nilai pembolehubah kawalan yg digunkan dgn kenaikan/pengurangan yg ditetapkan • boleh diabaikan jika peningkatan dilakukan di badan gelung. • tetapi tanda ; masih diperlukan

  30. PERLAKSANAAN for • bermula dgn melaksanakan ungk_awal. • dilaksanakan sekali sahaja • ungk_syarat akan dinilai. • Jika BENAR, badan gelung dilaksanakan • Jika SALAH, pernyataan for akan tamat • ungk_peningkatan dilaksanakan sebaik saja perlaksanaan badan gelung selesai. Kawalan seterusnya pergi ke langkah 2.

  31. latihan int digit =1; while (digit <= 10) { printf(“%d\n”,digit); ++digit; }

  32. GELUNG BERSARANG • Badan pernyataan gelung mengandungi pernyataan gelung yg lain. • Ia tidak semestinya dari jenis yg sama. Bermakna boleh terdiri dari kombinasi pernyataan gelung. • Walaupun boleh, tetapi penggunaan gelung yg berlapis-lapis akan menjadikan aturcara susah dibaca dan kompleks.

  33. i j k 2 3 1 1 1 * * * * * * * * * * * * * * * * * * * contoh • For (i=1; i<=2; i++) { • For (j = 1; j<=3; j++){ • For (k=1; k<=4; k++) printf(“*”); printf(“\n”); } printf(“\n”); } 1 2 4 1 2 3 5 4 5 4 1 1 * * * * Output : *

  34. Fungsi exit() • Merupakan fungsi jenis void yg akan: • mengosongkan semua buffer • menutup semua fail yg dibuka semasa perlaksanaan aturcara tersebut • menamatkan perlaksanaan aturcara • memulangkan kawalan kepada sistem sebelumnya yg memulakan perlaksanaan aturcara tersebut. • Utk menggunakannya perlu memasukkan fail kepala piawai <stdlib.h> • Format : exit(status) • status boleh mengambil apa sahaja nilai integer

  35. Fungsi break • pernyataan utk menamatkan struktur pelaksanaan pernyataan while, do-while,for dan switch-case • Bila pernyataan break ditemui perlaksanaan gelung dianggap tamat walaupun ada lagi pernyataan lain (dalam badan gelung) yg belum dilaksanakan (menyebabkan adanya baki dalam badan gelung) • Format: break;

  36. x contoh #include <stdio.h> main() { int x; for (x = 1; x<=10; x++){ if(x==5) break; printf (“%d”, x); } printf(“\n using the break statement”); return 0; } 1 2 3 4 5 Output: 1 2 3 4 Using the break statement

  37. pernyataan continue • menyebabkan baki pernyataan dalam badan gelung (selepas pernyataan continue) diabaikan, tetapi kawalan terus melaksanakan gelung tersebut

  38. x contoh #include <stdio.h> main() { int x; for (x = 1; x<=10; x++){ if(x==5) continue; printf (“%d”, x); } printf(“\n using the continue statement”); return 0; } 11 1 4 3 5 2 7 8 9 10 6 Output: 1 2 3 4 6 7 8 9 10 Using the continue statement

More Related