ok

30/12/09

belajar c programing part 2 (looping)

Looping

Melakukan Looping dengan perintah “For”
Umum bentuk pernyataan untuk adalah
for (expression1; expression2; expression3) (
statement1;
statement2;
)
Anda lihat dari contoh ini bahwa pernyataan untuk menggunakan tiga kalimat (expression1, expression2, dan expression3) yang dipisahkan oleh titik koma.
expression1
Pada bagian ini biasa diisi dengan nilai dari batas ynag dinginkan misalkan i=3

Expression2
Pada bagian ini kita meletakkan kondisi yang diinginkan untuk menghentikan atau menjalankan looping. Contoh i<5 maka looping akan berhaenti saat i=5.

Expression3
Pada bagian ini kita bisa memasukkan increment atau decrement sehingga looping dapat berlanjut. Contohnya i++ dan i–.
Setelah perintah for tidak diikuti oleh tanda titik koma namun tanda titik koma diberikan setelah operasi lain yang ingin di looping.
Menambahkan Expression lain ke dalam For
Bahasa C memungkinkan anda untuk menambahkan ekspresi ke dalam tiga bidang ekspresi ke dalam perintah for. Kalimat dalam satu ekspresi bidang yang dipisahkan oleh koma.
Sebagai contoh:
for (i = 0, j = 10; i <10, j> 0; i + +, j -) (
/ * Pernyataan blok * /
)
Di sini, ekspresi pertama di lapangan, dua variabel integer, i dan j, yang diinisialisasi, masing-masing, dengan 0 dan 10 bila untuk pernyataan pertama yang dihadapi. Kemudian, yang kedua kondisinya i <10 dan j> 0. Jika salah satu penghubung ekspresi 0 kembali, maka looping dihentikan. Lalu I diberi increment sedangkan j diberikan perintah decrement setiap perulangan

1: / * Contoh* /
2: # include
3:
4: main ()
5: (
6: int i, j;
7:
8: for (i = 0, j = 8; i <8; i + +, j -)
9: printf ( “% d +% d =% d \ n”, i, j, i + j);
10: return 0;

OUTPUT
0 + 8 = 8
1 + 7 = 8
2 + 6 = 8
3 + 5 = 8
4 + 4 = 8
5 + 3 = 8
6 + 2 = 8
7 + 1 = 8
1: / * Contoh lain * /
2: # include
3:
4: main ()
5: (
6: int i, j;
7:
8: for (i = 0, j = 1; i <8; i + +, j + +)
9: printf ( “% d -% d =% d \ n”, j, i, j – i);
10: return 0;

OUTPUT
1 – 0 = 1
2 – 1 = 1
3 – 2 = 1
4 – 3 = 1
5 – 4 = 1
6-5 = 1
7 – 6 = 1
8 – 7 = 1
C: \ app>
Bermain dengan Infinite Loop 

Jika Anda memiliki untuk pernyataan seperti ini, 

for (;;) ( 

   / * Pernyataan blok * / 

) 

Anda menemukan sebuah infinite loop.
Perlu diketahui bahwa untuk pernyataan ini, 
tidak ada kalimat dalam tiga bidang ekspresi.
Pernyataan di dalam blok pernyataan akan dijalankan 
berulang-ulang tanpa henti. 

1:  /* 07L04.c: Conditional loop */
2:  #include 
3:
4:  main()
5:  {
6:     int c;
7:
8:     printf("Enter a character:\n(enter x to exit)\n");
9:     for ( c=' `; c != `x'; ) {
10:       c = getc(stdin);
11:       putchar(c);
12:    }
13:    printf("\nOut of the for loop. Bye!\n");
14:    return 0;
15: }

Keterangan
Perintah ini akan terus berulang walaupun kita memasukkan karakter apapun namun setelah memasukkan character x maka looping pun akan berhenti.
WHILE Loop
Pernyataan yang saat ini juga digunakan untuk looping. Berbeda dengan keadaan untuk pernyataan, hanya ada satu ungkapan dalam bidang sementara pernyataan.
Umum bentuk sementara adalah pernyataan
while (ekspresi) (
statement1;
statement2;
.
.
.
)


Contoh

1:  /* 07L05.c: Using a while loop */
2:  #include 
3:
4:  main()
5:  {
6:     int c;
7:
8:     c = ` `;
9:     printf("Enter a character:\n(enter x to exit)\n");
10:    while (c != `x') {
11:       c = getc(stdin);
12:       putchar(c);
13:    }
14:    printf("\nOut of the while loop. Bye!\n");
15:    return 0;
16:
 }
OUTPUT 

Enter a character:
(enter x to exit)
H
H
i
i
x
x
Out of the while loop. Bye!
ANALISIS
Dari contoh diatas maka kita dapat mengetahui dapalam pemakaian perintah while hanya diperlukan satu kondisi untuk menjalankan looping ini. Dan perintah yang di looping pada perintah while adalah perintah setelah kondisi. Untuk menjalankan 2 perintah maka dapat digunakan tanda kurung kurawal. Dan dari contoh diatas untuk keluar dari program maka kita harus mengetik huruf x karena kondisinya akan dilakukan pengulangan jika inputan tidak sama dengan x.

The Infinite WHILE Loop 

while (1) {
   statement1;
   statement2;
   .
   .
   .
}
Bial kita memasukkan perintah seperti contoh diatas maka kita akan mendapatkan output selalu berulang tanpa henti karena kondisi yang dimasukkan adalah 1 maka program akan terus dijalankan.

The do-while Loop

Bentuk umum 

do ( 

    statement1; 

    statement2; 

    . 

    . 

    . 

) While (ekspresi); 

Perintah Do…While merupakan salah satu perintah pengulangan yang 
dapat kita gunakan dalam pemrograman. Perintah ini akan menjalankan 
statement yang ada setelah Do dan setelah itu diperiksa dengna kondisi
yang ada setelah perintah While bila tidak sesuai, 
maka looping akan berhenti.
Contoh

1:  /* 07L06.c: Using a do-while loop */
2:  #include 
3:
4:  main()
5:  {
6:     int i;
7:
8:     i = 65;
9:     do {
10:       printf("The numeric value of %c is %d.\n", i, i);
11:       i++;
12:    } while (i<72);
13:    return 0;
14: }
     OUTPUT 

The numeric value of A is 65.
The numeric value of B is 66.
The numeric value of C is 67.
The numeric value of D is 68.
The numeric value of E is 69.
The numeric value of F is 70.
The numeric value of G is 71.

ANALISIS
Dari contoh diatas maka program yang dijalankan seperti output diatas. Program berhenti pada angka 71 karena saat itu nilai i sudah mencapai 72 sedangkan program akamn berjalan bila I <72.

Using Nested Loops

Menggunakan nested loops. 

1:  /* 07L07.c: Demonstrating nested loops */
2:  #include 
3:
4:  main()
5:  {
6:     int i, j;
7:
8:     for (i=1; i<=3; i++) {   /* outer loop */
9:        printf("The start of iteration %d of the outer loop.\n", i);
10:       for (j=1; j<=4; j++)  /* inner loop */
11:          printf("    Iteration %d of the inner loop.\n", j);
12:       printf("The end of iteration %d of the outer loop.\n", i);
13:    }
14:    return 0;
15: }
OUTPUT 

The start of iteration 1 of the outer loop.
    Iteration 1 of the inner loop.
    Iteration 2 of the inner loop.
    Iteration 3 of the inner loop.
    Iteration 4 of the inner loop.
The end of iteration 1 of the outer loop.
The start of iteration 2 of the outer loop.
    Iteration 1 of the inner loop.
    Iteration 2 of the inner loop.
    Iteration 3 of the inner loop.
    Iteration 4 of the inner loop.
The end of iteration 2 of the outer loop.
The start of iteration 3 of the outer loop.
  
 Iteration 1 of the inner loop.
    Iteration 2 of the inner loop.
    Iteration 3 of the inner loop.
    Iteration 4 of the inner loop.
The end of iteration 3 of the outer loop.
ANALISIS
Hasil yang didapat dari program diatas adalah sebagai berikut karena menggunakan Nested loop. Nested loop adalah penggunaan loop di dalam loop lain sehingga menyebabkan adanya perulangan di dalam perulangan
1.    Buatlah program untuk menampilkan gambar berikut
Masukkan karakter yang akan diulang : U
Masukkan jumlah pengulangan       : 5
Tampilan Anda :
UUUUU
#include
void main ()
{
char a;
int b,i;
printf(”Masukkan karakter yang ingin diulang = “);
scanf(”%c”,&a);
printf(”Masukkan jumlah perulangan = “);
scanf(”%d”,&b);
printf(”\n”);
for(i=1;i<=b;i++)
printf(”%c”,a);
fflush(stdin);
getchar();
}
2.    Buatlah program untuk dapat me nampilkan ganbar berikut
Masukkan tinggi pohon          : 4
Masukkan tinggi batang pohon     : 2
Pohon Anda
*
***
*****
*******
*
*
#include
void main ()
{
int a,b,c,d,i,j,k;
printf(”Masukkan tinggi pohon = “);
scanf(”%d”,&a);
printf(”Masukkan tinggi batang pohon = “);
scanf(”%d”,&b);
printf(”\n”);
d=1;
c=a-1;
for(i=1;i<=a;i++)
{
for(j=1;j<=c;j++)
printf(” “);
c=c-1;
for(k=1;k<=d;k++)
printf(”*”);
d=d+2;
printf(”\n”);
}
for(i=1;i<=b;i++)
{
for(j=0;j<=(d/2-2);j++)
printf(” “);
printf(”*\n”);
}
fflush(stdin);
getchar();
}
3.    buatlah program untuk menampilkan
Masukkan hari : Minggu
Masukkan Bulan : Maret
Masukkan Tanggal : 1
Hasil :
Hari minggu di bulan Maret akan jatuh pada tanggal : 1 8 15 22 29
Mau Lanjut  [Y/T] ? Y
Masukkan hari : Senin
Masukkan Bulan : Maret
Masukkan Tanggal : 2
Hasil :
Hari senin di bulan Maret akan jatuh pada tanggal 2 9 16 23 30
#include
#include

void main ()
{
char h[10],b[10],lnj;
int t,i;
do
{
printf(”\nMasukkan Hari = “);
scanf(”%s”,&h);
printf(”Masukkan Bulan = “);
scanf(”%s”,&b);
printf(”Masukkan Tanggal = “);
scanf(”%d”,&t);
printf(”\n”);
printf(”Hari di %s Bulan %s akan jatuh pada tanggal “,h,b);
do
{
printf(”%d “,t);
t=t+7;
}while(t<=31);
fflush(stdin);
printf(”\nMasi mau lanjut [Y/T] ? “);
scanf(”%c”,&lnj);
}while(lnj==’Y');
printf(”\n”);
getchar();
}
sekian buat looping
hheheheehh

0 comments: