1 bab 7 struktur kawalan pilihan. 2 pemilihan tunggal carta-alir langkah a syarat langkah 1.. k...

23
1 Bab 7 Struktur Kawalan Pilihan

Post on 19-Dec-2015

276 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

1

Bab 7

Struktur Kawalan Pilihan

Page 2: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

2

Pemilihan TunggalCarta-alir

langkah a

syarat langkah 1 .. k

langkah k+1

palsu benar

Page 3: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

3

Pemilihan TunggalKod Pseudo

langkah ajika < syarat benar > mula_jika

langkah 1langkah 2..langkah k

tamat_jika

langkah k + 1

Page 4: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

4

Pernyataan if Sintaks pernyataan if

if ( <ungkapan> )

<pernyataan>; <pernyataan> hanya akan dilaksanakan jika nilai <ungkapan>

adalah bukan sifar (benar)

<ungkapan> di sini boleh terdiri dari ungkapan hubungan atau

ungkapan mantik (logik)

Contoh 1:if ( k < j )

min = k;printf(“Akhir pernyataan if\n”);

Jika (k < j) benar : min = koutput : Akhir pernyataan if

Jika (k < j) palsu : output : Akhir pernyataan if

Page 5: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

5

Pernyataan if Contoh 2:

if (k < j) {min = k;printf(“k lebih kecil dari j\n”);

} Jika (k < j) benar : min = k,

output : k lebih kecil dari j Contoh 3:

if (k < j) min = k;printf(“k lebih kecil dari j\n”);

Jika (k < j) benar : min = k, output : k lebih kecil dari j

Page 6: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

6

Pernyataan if Contoh 2:

if (k < j) {min = k;printf(“k lebih kecil dari j\n”);

}Jika (k < j) palsu :

output : Contoh 3:

if (k < j) min = k; printf(“k lebih kecil dari j\n”);

Jika (k < j) benar :output : k lebih kecil dari j

Page 7: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

7

Dwi-pemilihan Carta -alir

langkah a

syarat langkah 1 .. k

langkah n+1

palsu benarlangkah k=1 .. n

Page 8: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

8

Dwi-pemilihan Kod Pseudo

jika <syarat benar> mula_jika

langkah 1

langkah 2

:

langkah k

tamat_jika

jika_tidak mula_jika_tidak

langkah k+1

langkah k+2

:

langkah n

tamat_jika_tidak

langkah n+1

Page 9: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

9

Pernyataan if-else Sintaks pernyataan if-else

if ( <ungkapan> )<pernyataan-1>;

else<pernyataan-2>;

Jika nilai <ungkapan> bukan sifar, <pernyataan-1> akan dilaksanakan

Jika nilai <ungkapan> sifar, <pernyataan-2> akan dilaksanakan

Page 10: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

10

Pernyataan if-else Contoh 1:

if (i < j)min = i;

elsemin = j;

printf(“Nilai minima ialah %d\n”, min);

Jika i = 2, j = 5 min mengambil nilai i danoutput: Nilai minima ialah 2

Jika i = 6, j = 3 min mengambil nilai j danoutput: Nilai minima ialah 3

Page 11: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

11

Pernyataan if-else Contoh 2:

if (i < j) {min = i;max = j;

}else {

min = j;max = i;

}printf(“Min = %d, Max = %d\n”, min, max);

Jika i = 2, j = 5: output : Min = 2, Max = 5

Jika i = 6, j = 3: output : Min = 3, Max = 6

Page 12: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

12

Pernyataan if-else-if Sintaks pernyataan if-else-if:

if ( <ungkapan-1> ) <pernyataan-1>;

else if ( <ungkapan-2> ) <pernyataan-2>;

else <pernyataan-3>;

<ungkapan-1> <ungkapan-2> Perlaksanaan

Benar Tidak dinilai <pernyataan-1>

Palsu Benar <pernyataan-2>

Palsu Palsu <pernyataan-3>

Page 13: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

13

Pernyataan if-else-if#include <stdio.h>

void main( ) {char aks;

scanf(“%c”, &aks);if ( (aks >= ‘a’) && (aks <= ‘z’) )

printf(“Huruf kecil\n”);else if ( (aks >= ‘A’) && (aks <= ‘Z’) )

printf(“Huruf besar\n”);else if ( (aks >= ‘0’) && (aks <= ‘9’) )

printf(“Digit\n”);else

printf(“Aksara istimewa\n”);}

Page 14: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

14

Pernyataan if-else Dua paras Apabila melibatkan pengujian tersarang Contoh:

if (a > b) {if (a > c)

maks = a;else

maks = c;}else {

if (b > c) maks = b;

else maks = c;

}

Blok A

(Paras 2)

Blok B

(Paras 2)

Blok

If-else

luar

(Paras 1)

Page 15: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

15

Pernyataan if-else Dua paras

(a > b) (a > c) (b > c) Perlaksanaan

Benar Benar Tidak

Dinilai

maks = a;

Benar Palsu Tidak

Dinilai

maks = c;

Palsu Tidak

Dinilai

Benar maks = b;

Palsu Tidak

Dinilai

Palsu maks = c;

Page 16: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

16

Masalah else Terjuntai Berlaku apabila blok suatu pernyataan if atau else itu

tidak lengkap Contoh:

if (a < 0)if (b > 0) {:}else {:}

Blok A

Blok B

?

Page 17: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

17

Multi-pemilihan – Carta Alir

Benar

Benar

Benar

syarat1

syarat2

Syarat h

palsu

palsu

palsu

Langkah1 .. k

Langkah q .. r

Langkahk+1 .. m

Langkahn+1 .. p

::

Page 18: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

18

Multi-pemilihan – Kod Pseudojika <syarat_1 benar> mula_jika_1

langkah 1langkah 2

:langkah k

tamat_jika_1jika_tidak jika <syarat_2 benar> mula_jika_2

langkah k+1langkah k+2

:langkah m

tamat_jika_2:

jika_tidak jika <syarat_h benar> mula_jika_hlangkah n+1langkah n+2:langkah p

tamat_jika_hjika_tidak mula_jika_tidak

langkah qlangkah q+1:langkah r

tamat_jika_tidak

Page 19: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

19

Pernyataan switch dan break Digunakan untuk memilih satu sahaja dari beberapa pilihan Satu bentuk alternatif kepada pernyataan if-else-if Hanya boleh digunakan jika nilai bagi ungkapan berjenis int atau

char Sintaks pernyataan switch:

switch ( <ungkapan> ) { case <ungkapan-1> :

<pernyataan-1> ;break;

: case <ungkapan-m> :

<pernyataan-m>;break;

default :<pernyataan-n>;break;

}

Page 20: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

20

Pernyataan switch dan break Bentuk if-else-if

int nombor;scanf(“%d”, &nombor);if (nombor == 1)

printf(“Satu\n”);else if (nombor == 2)

printf(“Dua\n”);else if (nombor == 3)

printf(“Tiga\n”);else

printf(“Lain-lain\n”);

Page 21: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

21

Pernyataan switch dan break Bentuk switch-break

int nombor;scanf(“%d”, &nombor);switch (nombor) { case 1: printf(“Satu\n”);

break; case 2: printf(“Dua\n”);

break; case 3: printf(“Tiga\n”);

break; default : printf(“Lain-lain\n”);}

Page 22: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

22

Penggunaan break Diberi segmen aturcara:

int nombor;scanf(“%d”, &nombor);switch (nombor) { case 1: printf(“Satu\n”); case 2: printf(“Dua\n”); case 3: printf(“Tiga\n”); default : printf(“Lain-lain\n”);}

Output:Jika nombor = 1 Satu

DuaTigaLain-lain

jika nombor = 3 TigaLain-lain

Page 23: 1 Bab 7 Struktur Kawalan Pilihan. 2 Pemilihan Tunggal Carta-alir langkah a syarat langkah 1.. k langkah k+1 palsubenar

23

Penggunaan break#include <stdio.h>

void main( ) {

char aks;

scanf(“%c”, &aks);switch (aks) { case ‘a’ : case ‘e’ : case ‘i’ : case ‘o’: case ‘u’: printf(“huruf vokal\n”);

break; default: printf(“huruf konsonan\n”);}

}