Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Soal-soal.

Presentasi serupa


Presentasi berjudul: "Soal-soal."— Transcript presentasi:

1 Soal-soal

2 Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } Apa yang tercetak : ?

3 #include<stdio.h> void main() { int I, N; N = 45; I = 1;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } Tercetak : 45 50 55 60 65 nilai I Kondisi I <= 5 Tercetak oleh printf(“\n%i”,N) Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 45 50 55 60 65 70 1 2 3 4 5 6 True False 45 50 55 60 65 50 55 60 65 70 2 3 4 5 6 Keluar dari loop

4 Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Apa yang tercetak : ?

5 Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } #include<stdio.h> void main() { int I, N; N = 45; I = 1; while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Tercetak : 45 50 55 60 65 Apa yang tercetak : ?

6 Apa yang tercetak : ? #include<stdio.h> void main() { int I, N;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); #include<stdio.h> void main() { int I, N; N = 45; I = 1; while(I <= 5) { printf(“\n%i”,N); N = N + 5; I++; } 45 50 55 60 65 Apa yang tercetak : ? nilai I Kondisi I <= 5 Tercetak oleh printf(“\n%i”,N) Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 45 50 55 60 65 50 55 60 65 70 2 3 4 5 6 45 50 55 60 65 70 1 2 3 4 5 6 True False Keluar dari loop

7 #include<stdio.h> void main() { int I, N; N = 45; I = 1;
while(I <= 5) { N = N + 5; I++; } printf(“\n%i”,N); Tercetak : 70 nilai I Kondisi I <= 5 Oleh N=N+5 nilai N menjadi: Oleh I=I+1 nilai I menjadi: N 50 55 60 65 70 2 3 4 5 6 45 50 55 60 65 70 1 2 3 4 5 6 True False Keluar dari loop

8

9 Apa yang tercetak : ? #include<stdio.h> void main() { int X, N;
while(N <= 100) { N = N + X; printf(“\n%i”,N); X = X + 5; } Apa yang tercetak : ? 263 Soal-01e Program-1

10 N = 35; X = 0; 35 while(N <= 100) { N = N + X; printf(“\n%i”,N);
X = X + 5; } Tercetak : 35 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 35 5 True 35 35 263 Soal-01e Program-1

11 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; printf(“\n%i”,N);
X = X + 5; } Tercetak : 35 40 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 35 40 5 10 True 35 40 35 40 263 Soal-01e Program-1

12 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 35 40 50 5 10 15 True 35 40 50 35 40 50 263 Soal-01e Program-1

13 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 35 40 50 65 5 10 15 20 True 35 40 50 65 35 40 50 65 263 Soal-01e Program-1

14 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 85 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 35 40 50 65 85 5 10 15 20 25 True 35 40 50 65 85 35 40 50 65 85 263 Soal-01e Program-1

15 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 85 110 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 30 35 40 50 65 85 110 5 10 15 20 25 30 True 35 40 50 65 85 110 35 40 50 65 85 110 263 Soal-01e Program-1

16 N = 35; X = 0; 35 while(N <= 100) 40 { N = N + X; 50
printf(“\n%i”,N); X = X + 5; } Tercetak : 35 40 50 65 80 110 N=N+X nilai N menjadi: Tercetak oleh printf(,N) X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N 5 10 15 20 25 30 35 40 50 65 85 110 5 10 15 20 25 30 True False 35 40 50 65 85 110 35 40 50 65 85 110 263 Soal-01e Program-1 Keluar dari loop

17

18 Apa yang tercetak : ? N = 35; T = 0; X = 0; while(T <= 100)
{ T = T + N; printf(“\n%i”, T ); N = N + X; X = X + 5; } Apa yang tercetak : ? 263 Soal-01f Program-2

19 35 70 110 N = 35; T = 0; X = 0; while(T <= 100) { T = T + N;
printf(“\n%i”, T ); N = N + X; X = X + 5; } Tercetak : 35 70 110 Oleh T=T+N nilai T menjadi: Oleh N=N+X nilai N menjadi: Tercetak oleh printf(,T) X=X+5 nilai X menjadi: X Kondisi T <= 100 N T 35 40 50 35 70 110 5 10 15 True False 35 70 110 35 70 110 35 40 50 5 10 15 Keluar dari loop

20

21 Apa yang tercetak : ? #include<stdio.h> void main() { int X, N;
while(N <= 100) { X = X + 5; N = N + X; printf(“\n%i”,N); } Apa yang tercetak : ?

22 #include<stdio.h> void main() { int X, N; X = 5; N = 45;
while(N <= 100) { X = X + 5; N = N + X; printf(“\n%i”,N); } Tercetak : 55 70 90 115 Oleh N=N+X nilai N menjadi: X=X+5 nilai X menjadi: Tercetak oleh printf(,N) nilai X Kondisi N <= 100 N 10 15 20 25 5 10 15 20 25 45 55 70 90 115 True False 55 70 90 115 55 70 90 115 Keluar dari loop

23

24 Apa yang tercetak : ? #include<stdio.h> void main()
{ int X, N, T; X = 10; N = 20; T = 0; while(T <= 100) { X = X + 5; N = N + X; T = T + N } printf(“%i”, T); Apa yang tercetak : ?

25 X = 10; N = 20; T = 0; 170 while(T <= 100) { X = X + 5; N = N + X;
T = T + N } printf(“%i”, T); Tercetak : 170 Oleh N=N+X nilai N menjadi: Oleh T=T+N nilai T menjadi: X=X+5 nilai X menjadi: nilai X Kondisi N <= 100 N T 10 15 20 25 20 35 55 80 35 90 170 True False 15 20 25 35 55 80 35 90 170 Keluar dari loop

26

27 Apa yang tercetak : ? #include<stdio.h> #include<stdio.h>
for() while() #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } Apa yang tercetak : ? 214

28 Tercetak : 2 3 4 5 6 #include<stdio.h> #include<stdio.h>
for() while() #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 214

29 Perkembangan nilai I while() I = 1 nilai I I<=5 I=I+1 printf for()
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 I<=5 I = 1 I=I+1 printf I false true Perkembangan nilai I nilai I Kondisi I <= 5 Oleh I=I+1 nilai I menjadi: Tercetak oleh printf(“\n%i”, I) 1 2 3 4 5 6 True False 2 3 4 5 6 2 3 4 5 6 Keluar dari loop 214

30

31 Perkembangan nilai I while() I = 1 nilai I I<=5 I=I+1 printf for()
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) { I++; printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { I++; printf(“\n%i”,I); } Tercetak : 2 3 4 5 6 I<=5 I = 1 I=I+1 printf I false true Perkembangan nilai I nilai I Kondisi I <= 5 Oleh I=I+1 nilai I menjadi: Tercetak oleh printf(“\n%i”, I) 1 2 3 4 5 6 True False 2 3 4 5 6 2 3 4 5 6 Keluar dari loop 214

32 dapat ditulis menjadi : printf(“\n%i”, ++I );
#include<stdio.h> void main() { int I; for(I=1; I<=5 ; ) {printf(“\n%i”,++I ); } } #include<stdio.h> void main() { int I; I = 1; while(I<=5) { printf(“\n%i”,++I ); } } dua instruksi : I++; printf(“\n%i”, I); dapat ditulis menjadi : printf(“\n%i”, ++I ); 214

33 Aapa yang tercetak : ? do while() (halaman 215)
#include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I); } while ( I<=5 ); I++ printf I I<=5 true false Aapa yang tercetak : ? 215

34 #include<stdio.h> main() { int I; I=1; do { I++;
do while() (halaman 215) I=1 #include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I ); } while ( I<=5 ); I++ printf I I<=5 true false Tercetak : 2 3 4 5 6 215

35 #include<stdio.h> main() { int I; I=1; do { I++;
do while() (halaman 215) I=1 #include<stdio.h> main() { int I; I=1; do { I++; printf(“\n %i”,I ); } while ( I<=5 ); I++ printf I I<=5 true false Tercetak : 2 3 4 5 6 Perkembangan nilai I Oleh I++ nilai I menjadi: Tercetak oleh printf (“\n %i”, I ) nilai I Kondisi I <= 5 1 2 3 4 5 2 3 4 5 6 2 3 4 5 6 True, lanjutkan False, keluar dari loop 215

36 #include<stdio.h> main() { int I; I=1; do { printf(“\n %i”,++I);
} while ( I<=5 ); #include<stdio.h> main() { int I; I=1; do printf(“\n %i”,++I); while ( I<=5 ); } printf(“\n %i”, ++I ); I ditambah 1 lebih dulu, kemudian baru dicetak 215

37 Apa yang tercetak : ? Nilai awal condition tidak mesti selalu = 1.
CONTOH-3 Nilai awal condition tidak mesti selalu = 1. Perubahan nilai condition juga tidak mesti selalu +1 Halaman : 216 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n%i”, I); } #include<stdio.h> main() { int I; I = 3; while( I<=10 ) { printf(“\n%i”, I); I=I+2; } Apa yang tercetak : ? 216

38 Tercetak : 3 5 7 9 Tercetak : 3 5 7 9 #include<stdio.h>
main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n%i”, I); } #include<stdio.h> main() { int I; I = 3; while( I<=10 ) { printf(“\n%i”, I); I=I+2; } Tercetak : 3 5 7 9 Tercetak : 3 5 7 9 216

39 CONTOH-4 Sebaiknya merubah nilai condition hanya ada pada satu instruksi yang sesuai bentuk umum Halaman : 216 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n %i”, I); I = I+1; } Apa yang tercetak : ? 216

40 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 )
{ printf(“\n %i”, I); I = I+1; } Merubah nilai condition. di sembarang tempat mungkin tidak menyebabkan error. Tapi dapat membingungkan Pada penggunaan for( ), hindari menulis algoritma seperi ini. Tercetak : 3 6 9 printf I 3 6 9 I=I+1 4 7 10 I=I+2 6 9 12 I 3 6 9 12 I<=10 True False Keluar dari loop 216

41 Apa yang tercetak : ? #include<stdio.h> main() { int I;
for ( I=3 ; I<=10 ; I=I+2 ) { printf(“\n %i”, I); I = I-1; } Apa yang tercetak : ? 216

42 #include<stdio.h> main() { int I; for ( I=3 ; I<=10 ; I=I+2 )
{ printf(“\n %i”, I); I = I-1; } printf I 3 4 5 6 7 8 9 10 I 3 4 5 6 7 8 9 10 11 I<=10 True False I=I-1 2 3 4 5 6 7 8 9 I=I+2 4 5 6 7 8 9 10 11 Tercetak : 3 4 5 6 7 8 9 10 Keluar dari loop 216

43 for() while() Apa yang tercetak : ? Halaman 217
CONTOH-5 Halaman 217 for() while() #include<stdio.h> void main() { int I; for( I=1; I >=5; I++ ) { printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I=1; while( I >= 5 ) { printf(“\n%i”,I); I++; } Apa yang tercetak : ? 217

44 for() while() Kemungkinan suatu loop tidak pernah dikerjakan.
CONTOH-5 for() while() #include<stdio.h> void main() { int I; for( I=1; I >=5; I++ ) { printf(“\n%i”,I); } #include<stdio.h> void main() { int I; I=1; while( I >= 5 ) { printf(“\n%i”,I); I++; } TIDAK ADA YANG TERCETAK printf I I++ I 1 I>=5 False Keluar dari loop 217

45 Apa yang tercetak : ? do while() #include<stdio.h> void main()
{ int I; I=1; do { printf(“\n%i”,I); I++; } while( I >= 5 ); Apa yang tercetak : ? 217

46 #include<stdio.h> void main() { int I; I=1;
do while() #include<stdio.h> void main() { int I; I=1; do { printf(“\n%i”,I); I++; } while( I >= 5 ); Tercetak : 1 printf I 1 I 1 I++ 2 I>=5 False Keluar dari loop 217

47

48 10. 48

49 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ )
10. 49 CONTOH-6 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ ) { printf(“\n%i”,I); } Apa yang tercetak : ? 217

50 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ )
10. 50 CONTOH-6 #include<stdio.h> main() { int I; for( I=10; I>=5; I++ ) { printf(“\n%i”,I); } Suatu loop kemungkinan dilaksanakan terus menerus Kondisi I >= 5 selalu bernilai TRUE sehingga akan mencetak nilai I terus menerus sampai nilai batas tertinggi bilangan integer yaitu 32767 terlampaui dan nilai I menjadi baru nilai( I >= 5 ) bernilai False, dan keluar dari loop. Tercetak: 10 11 12 . 32767 Setelah nilai I = maka kondisi (I >= 5) bernilai FALSE dan keluar dari loop 217

51 10. 51

52 for() Apa yang tercetak : ? #include<stdio.h> main() { int I;
10. 52 CONTOH-7 for() #include<stdio.h> main() { int I; for ( I=3; I<=5; I=I+0.5 ) { printf(“\n %i”, I); } Apa yang tercetak : ? 218

53 for() #include<stdio.h> main() { int I;
CONTOH-7 Karena I bertipa int, maka 0.5 dianggap 0. Sehingga I = I + 0.5 dianggap sebagai I = I + 0 Sehingga program disebelah akan selalu mencetak 3 terus menerus sampai dihentikan dengan ‘break’ oleh operator, yaitu dengan cara menekan tombol <Ctrl> dan <C> atau tombol <Ctrl> dan <Break> for() #include<stdio.h> main() { int I; for ( I=3; I<=5; I=I+0.5 ) { printf(“\n %i”, I); } Tercetak : 3 3 dst 218

54 for() CONTOH-8 #include<stdio.h> main() { float F;
10. 54 CONTOH-8 for() for() #include<stdio.h> main() { int I; for(I=3; I<=5; I=I+1.5 ) { printf(“\n%i”,I); } #include<stdio.h> main() { float F; for( F=3.0; F<=5.5; F=F+0.5 ) { printf(“\n%10.8f”, F); } Tercetak : 3 4 5 Tercetak : I bertipe int, sehingga I = I dianggap I = I + 1 sehingga bila program disamping dijalankan, akan tercetak : 218

55 #include<stdio.h> main() { float F;
10. 55 for() #include<stdio.h> main() { float F; for( F=3.0; F<=3.5; F=F+0.1 ) { printf(“\n%10.8f”, F); } Tercetak : Menyimpan nilai fraction belum tentu tepat. Oleh karena itu bilangan fraction hanya tersimpan mendekati nilai sebenarnya sehingga ada istilah “Single Precision” (ketelitian tunggal) dan “Double Precision” (ketelitian ganda) Tipe float, adalah tipe ketelitian tunggal 218

56 10. 56 218

57

58

59

60

61 10. 61

62 10. 62

63 10. 63

64

65 65 6565 6565 6.03 Perhatikan kembali Contoh-1 sebelumnya
sebagai berikut : Contoh-1A #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I=I+1 ) printf(“\n %i”, I); } I=I+1, dapat ditulis menjadi : I++ atau ++I sehingga menjadi: for (I=1; I<=5; I++) atau for(I=1; I<=5; ++I) Untuk menyingkat program, instruksi untuk clear screen dibuang, tapi bila akan ditest dikomputer clrscr() disertakan lagi. Beberapa Cara penulisan Contoh-1 diatas, yang menghasilkan effek yang sama : Contoh-1C #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I++ ) printf(“\n %i”, I); } Contoh-1B #include<stdio.h> main() { int I; for ( I=1 ; I<=5 ; I++ ) printf(“\n %i”, I); } Bahkan instruksi print dapat ditulis pada baris yang sama dengan instruksi for………… Karena instruksi dalam loop hanya ada 1 instruksi, maka tanda kurung { dan } boleh tidak dipakai. Contoh-1E #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) { printf(“\n %i”, I); I++; } Contoh-1D #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; I++ ) printf(“\n %i”, I); } Initialization, pemberian nilai awal I dapat dilakukan sebelum instruksi for…… Perhatikan : sebelum dan sesudah I<=5 ada tanda ; (titik koma) Perhatikan : sebelum I<=5 ada tanda ; (titik koma) Perubahan nilai I dilakukan dalam loop (sesudah instruksi for….) Initialization, dilakukan sebelum instruksi for…… Karena dalam loop ada lebih dari satu instruksi, maka digunakan { dan } 6565

66 66 6666 6666 6.04 Masih melanjutkan Contoh-1 sebelumnya: Contoh-1F
#include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) printf(“\n %i”, I++); } Lihat lagi: Contoh-1E #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) { printf(“\n %i”, I); I++; } Akan tercetak : 1 2 3 4 5 Penambahan nilai I dengan I++ dilakukan jadi satu dalam instruksi printf Catatan : dengan I++, maka mencetak I dulu, baru I ditambah satu. Contoh-1G #include<stdio.h> main() { int I; I=1; for ( ; I<=5 ; ) printf(“\n %i”, ++I); } Contoh-1H #include<stdio.h> main() { int I; I=1; for ( ;; ) printf(“\n %i”, ++I); if (I>=5) break; } Penambahan nilai I bukan I++, tapi ++I maka akan tecetak : 2 3 4 5 Bila nilai I >= 5 maka keluar dari loop sehingga tercetak : Catatan : dengan ++I, maka I ditambah satu dulu baru dicetak. 2 3 4 5 6666

67 67 67 6767 ? 6767 6.06 CONTOH-3 Mana hasil cetakannya???
Program disebelah tidak mengerjakan loop jadi tidak mencetak sesuatu. Karena : Nilai awal I = 10. Sehingga begitu memeriksa kondisi I<= 5 langsung nilainya FALSE dan tidak mengerjakan loop. Contoh-3A #include<stdio.h> main() { int I; for ( I=10 ; I<=5 ; I=I-2 ) printf(“\n %i”, I); } Mana hasil cetakannya??? Contoh-3B #include<stdio.h> main() { int I; for ( I=10 ; I>=5 ; I=I-2 ) printf(“\n %i”, I); } Nilai I dapat dibuat turun Bila program Contoh-3B dijalankan, akan tercetak : 10 8 6 Catatan: Untuk mengurangkan I dengan 1 dapat ditulis dengan : I-- atau --I Contoh-3C Kondisi I >= 5 selalu bernilai TRUE sehingga akan mencetak nilai I terus menerus sampai nilai batas tertinggi bilangan integer yaitu 32767 terlampaui dan nilai I menjadi baru nilai( I >= 5 ) bernilai False, dan keluar dari loop. Bila program disamping dijalankan, akan tercetak : #include<stdio.h> main() { int I; for ( I=10 ; I>=5 ; I++ ) printf(“\n %i”, I); } 10 11 12 13 . 32767 ? 6767

68 68 6868 6868 6.07 CONTOH-4 Untuk data dengan tipe integer (int),
pecahan selalu tidak diperhatikan. Jadi dianggap 0. Sehingga I = I + 0.5 dianggap sebagai I = I + 0 Sehingga program disebelah akan selalu mencetak 3 terus menerus sampai dihentikan dengan ‘break’ oleh operator, yaitu dengan cara menekan tombol <Ctrl> dan <C> atau tombol <Ctrl> dan <Break> Hasil yang tercetak : Contoh-4A #include<stdio.h> main() { int I; for ( I=3 ; I<=5 ; I=I+0.5 ) printf(“\n %i”, I); } 3 dst Contoh-4B #include<stdio.h> main() { int I; for ( I=3 ; I<=5 ; I=I+1.5 ) printf(“\n %i”, I); } I = I + 1.5 dianggap I = I + 1 sehingga bila program disamping dijalankan, akan tercetak : 3 4 5 Contoh-4C #include<stdio.h> main() { float I; for ( I=3 ; I<=5 ; I=I+0.5 ) printf(“\n %f”, I); } Untuk bekerja dengan nilai yang mengandung pecahan, digunaka data tipe float, dan dicetak dengan format %f Bila program disamping dijalankan, akan tercetak : 6868

69 69 6969 6969 6.08 CONTOH-5 Contoh-5B Contoh-5A #include<stdio.h>
main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); } Mudah dipahami bahwa program disebelah bila dijalankan akan mencetak: 1 3 5 7 9 Karena awalnya 1, naik 2 selama <=10 setelah nilai I =11, keluar dari loop, tidak mencetak nilai I lagi. Contoh-5B Nilai A dirobah tidak akan mempengaruhi loo. Tapi bila nilai C dan B yang dirobah akan mempengaruhi loop. sehingga bila program disebelah dijalankan, akan tercetak : #include<stdio.h> main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); C=C+1; } 1 4 8 Karena pada loop pertama nilai I ditambah 3 tapi pada loop kedua nilai I ditambah 4. Perhatikan perkembangan nilai I dan nilai B Contoh-5C Bila program disamping dijalankan, akan tercetak : B naik jadi I naik jadi #include<stdio.h> main() { int I,A,B,C; A=1; B=10; C=2; for ( I=A ; I<=B ; I=I+C ) printf(“\n %i”, I); B=B+1; } I B kondisi cetak 1 3 5 7 9 11 13 15 17 19 1 3 5 7 9 11 13 15 17 19 21 10 11 12 13 14 15 16 17 18 19 20 True FALSE 1 3 5 7 9 11 13 15 17 19 11 12 13 14 15 16 17 18 19 20 3 5 7 9 11 13 15 17 19 21 Keluar dari loop Nilai I = 21, tidak dicetak, karena kondisi FALSE, keluar dari loop. 6969

70 7070 7070 6.09 CONTOH-6 Contoh-6A #include<stdio.h> main() {
int I; for ( ; I<=5 ;I++ ) printf(“\n %i”, I); } Bila I tidak dinyatakan nilai awalnya tapi langsung digunakan (ditest atau dicetak) maka nilai awalnya dinyatakan = 0 sehingga program akan mencetak : 1 2 3 4 5 Contoh-6B #include<stdio.h> main() { int I; for ( ; I ; ) printf(“\n %i”,I); } for (;I;) maksudnya : - kerjakan loop bila I != 0 - keluar dari loop bila I = 0 karena nilai awal I tidak dinyatakan sehingga dinyatakan = 0, maka : program tidak mengerjakan loop, yang artinya tidak mencetak sesuat. Contoh-6C Tercetak : #include<stdio.h> main() { int I; I=1; for ( ; I ; ) printf(“\n %i”,I); } for (;I;) maksudnya : - kerjakan loop bila I != 0 - keluar dari loop bila I = 0 karena nilai awal I = 1 dan tidak pernah ditambah atau dikurang, maka : program akan mencetak nilai I yaitu mencetak angka 1 terus menerus sampai dihentikan dengan ‘break’ 1 dst sampai dihentikan dengan ^C 7070

71 7171 7171 6.10 Contoh-6D #include<stdio.h> main() { int I;
for ( ; I ;I++ ) printf(“\n %i”, I); } for (;I;I++) maksudnya : - akan mengerjakan loop bila I != 0 baru kemudian I ditambah 1. - keluar dari loop bila I = 0 karena nilai awal I tidak dinyatakan sehingga dinyatakan = 0, maka : program tidak mengerjakan loop, yang artinya tidak mencetak sesuatu. Contoh-6E #include<stdio.h> main() { int I; for ( ; I ;I-- ) printf(“\n %i”,I); } Sama dengan atas tidak mencetak sesuatu. Walaupun ada instruksi I-- atau I dikurangi 1, tapi instruksi I dikurang 1 ini belum sempat dikerjakan karena langsung keluar dari loop. Contoh-6F #include<stdio.h> main() { int I; for ( ; ; ) printf(“\n Jakarta”); } Akan mencetak “Jakarta” terus menerus sampai dihentikan dengan menekan tombol break ^C karena nilai kondisi selalu tidak sama dg 0 (nol) Tercetak: Jakarta dst. 7171

72 7272 7272 6.11 CONTOH-7. Logika penulisan program seperti diatas,
Contoh-7A #include<stdio.h> main() { int I; I = 1; for ( ; I<10 ; ) printf(“Jakarta”); } Sama kasusnya dengan Contoh 6-C yang akan mengerjakan loop terus menerus, karena kondisi selalu bernilai TRUE. Jadi program akan mencetak “Jakarta” terus menerus sampai dihentikan dengan ^C. Akan tercetak: Jakarta . Dan seterusnya Logika penulisan program seperti diatas, dapat dimanfaatkan untuk memeriksa apakah data yang diinput sesuai dengan batas nilai yang diinginkan Contoh-7B #include<stdio.h> main() { int Nilai; Nilai = -1; for (; Nilai <0 || Nilai > 100 ; ) printf(“Masukkan Nilai Ujian (0-100) : “); scanf(“%i”, &Nilai ); } Program ini meminta operator untuk menginput sebuah nilai integer. Apabila nilai yang diinput < 0 atau > 100, maka program kembali meminta operator untuk memasukkan nilai Demikianseterusnya sampai nilai yang diinput berada dalam batas 7272

73 7373 7373 6.12 6.2 Penggunaan break dan continue CONTOH-8. atau I=1
Statement break didalam loop menyebabkan control keluar dari loop langsung ke next-instruction #include<stdio.h> main() { int I, N, T; T=0; I=1; for(I=1; I<=10; I++ ) { scanf(“%i”, &N); T = T + N; if(T> 1000) break; } printf(“%i”, T) Walaupun data yang akan diinput ada 10 buah, tapi bila totalnya sudah lebih dari 1000, maka proses input harus dihentikan dengan cara keluar dari loop. atau I=1 T=0 I=1 T=0 I<=10 false I++ true T>1000 break scanf N T=T+N T=T+N T>1000 true scanf N break I<=10 I++ true false printf T printf T 7373

74 7474 7474 6.13 14 I=1 I++ I<=3 scanf N T=T+N T=T+N scanf N I<=3
Contoh-8B statement continue didalam loop yang dibuat oleh control statement for() pada contoh 8B, menyebabkan control langsung menuju ke pengubahan nilai I (dalam contoh I++ yang ada pada instruksi for() ). Untuk contoh ini, ingin dinputkan 5 buah nilai, tapi data yang nilainya lebih kecil dari 1 atau diatas 10 tidak diproses. #include<stdio.h> main() { int I, T; T=0; for ( I=1; I<=5; I++ ) { scanf(“%i” , &N); if (N<1 || N>10) continue T = T + N } printf(“\n %i”, T); Bila data yang diinput misalnya : 5, -2, 12, 9, 17 maka akan tercetak : 14 (yaitu total dari 5+9) I = 1 I=1 I<=3 I++ Perhatikan : tetap melewati I++ Bandingkan dengan algoritma berikut ini : scanf N T=T+N for ( I=1; I<=3; I++ ) { scanf(“%i” , &N); if (N >= 1 && N <= 10) { T = T + N; } } N<1 || N>10 true N<1 || N>10 continue continue true T=T+N scanf N Perhatikan instruksi : if(N >= 1 && N <= 10) Perhatikan : tetap melewati I++ I<=3 I++ true false Bila nilai N berada dalam batas maka tambahkan ke T printf Bandingkan dengan pemakaian continue pada loop yang dibentuk dengan for( )bentuk lain pada halaman lain dan while() T printf T 7474

75 7575 7575 6.14 15 I<=3 I++ scanf N T=T+N continue T=T+N scanf N I++
Contoh-8C statement continue didalam loop yang ditulis dengan for cara pada cintoh-8C, menyebabkan control langsung menuju ke pengeckan nilai I <= 3 sehingga nilai N tidak ditambahkan ke T, dan nilai I tdak ditambah 1. Untuk contoh ini, yang akan ditambahkan ke T hanyalah 3 buah data yang nilainya tidak lebih kecil dari 1 dan tidak lebih besar dari 10, dari sekian banyak data yang diinput. #include<stdio.h> main() { int I, T; T=0; for ( I=1; I<=3; ) { scanf(“%i” , &N); if (N<1 || N>10) continue; T = T + N; I++; } printf(“\n %i”, T); Bila data yang diinput misalnya : 5, -2, 12, 8, 17, 2 maka akan tercetak : 15 (yaitu total dari 5+8+2) I = 1 I = 1 I<=3 false I++ true Bandingkan dengan algoritma berikut ini : scanf N for ( I=1; I<=3; ) { scanf(“%i” , &N); if (N >= 1 && N <= 10) { T = T + N; I++; } T=T+N true N<1 || N>10 continue N<1 || N>10 continue true T=T+N scanf N Perhatikan instruksi : if(N >= 1 && N <= 10) I++ I<=3 true Bila nilai N berada dalam batas maka tambahkan ke T dan I ditambah 1 Tapi bila N < 1 atau N > 10 maka tidak ditambah ke T dan I juga tidak ditambah 1 printf printf T T Bandingkan dengan pemakaian continue pada loop yang dibentuk dengan while( ) 7575


Download ppt "Soal-soal."

Presentasi serupa


Iklan oleh Google