.


:




:

































 

 

 

 


For operatoruna aid qeydlər




Qeyd 1. Elə etmək olar ki, hər hansı bir parametrin qiyməti ədədi yox, həndəsi silsilə ilə artsın, məsələn,

for (d=1; d<15; d=d*2)

printf ( d=%. 2f.\n, d);

Qeyd 2. for dövründə bir və ya daha çox ifadəni yazmamaq olar (lakin bu zaman ; işarəsini buraxmaq olmaz). Ancaq bu vaxt dövrün gövdəsində onun işini sona çatdıracaq bir neçə operatoru yazmaq zəruridir. Məsələn,

a=2;

for (n=3; a<=25;) a=a*n;

//dövrün gövdəsi

for (;;)

printf ( biz sonsuz dövr yazdiq \n);

sonsuz sayda yerinə yetiriləcək, çünki boş şərt həmişə doğru hesab olunur.

Qeyd 3. Əgər dövrdə hər üç komponent boşdursa, onda belə dövr açıq dövr adlanır.

Qeyd 4. for dövr operatorunda cəbri ifadələrdən də istifadə etmək olar. Məsələn, fərz edək ki, x=2 və y=10. Əgər x və y dövr daxilində dəyişmirsə, onda

for ( int j=x; j<=4*x*y; j+=y / x)

operatoru

for (int j=2; j<=80; j+=5)

operatoru ilə ekvivalentdir.

for operatorununblok-sxemi while operatorunun blok-sxemi ilə eynidir. Məsələn,

for (int counter=1; counter<=10; counter++)

cout <<counter<<endl;

operatoru üçün blok-sxem

Şəkil 5.3.-də verilmişdir.

counter=1
counter<=100

 


false

 

true

cout<<counter<<endl;  

counter++


Şəkil 5.3. for dövr operatorunun blok-sxemi

Misal 5.1. Y=x sinx funksiyasının qiymətini [ 0, pi ] parçasında pi/20 addımı ilə hesablamalı.

 

#include <stdio.h>

#include <math.h>

#include <conio.h>

main() {

double x, dx = M_PI/20;

printf ("y=x*sin(x)\n x y\n --------------\n");

for (x=0; x<=M_PI; x+=dx)

printf("\n%7.3f | %7.3f ",x, x*sin(x));

getch();

return 0;

}

Programın icrasından sonra aşağıdakı nəticələr alınır:

 

Misal 5.2. A dan Z-ə qədər dəyişən simvol parametrinin qiymətini çap etməli.

#include <stdio.h>

main()

{ char simvol;

printf ("elifbani cap etmeli\n");

simvol ='A';

while(simvol <='Z')

{ printf ("%c ", simvol);

simvol ++; }

getch();

return 0;

}

 

 

Misal 5.3. Yuxarıdakı misalı sonşərtli dövr opratoru ilə yazaq:

#include <stdio.h>

main()

{ char simvol;

printf("elifba\n ");

simvol='A';

do{

simvol++; printf("%c ",simvol- 1 );

} while(simvol<='Z');

getch();

return 0;

}

Misal 5.4. Vurma cədvəli (iç - içə dövrlər).

#include<stdio.h>

void main()

{ int i, j;

for (i=1; i<=10; i++) {

for (j =1; j<=10; j++)

printf ("%4.0d",i*j);

printf("\n");

}

getch();

}

Break operatoru

 

Switch operatorunun bir atributu olan break operatoru proqramı dayandırmaq üçün müstəqil də işləyə bilər. break operatoru cari dövr qurtardıqdan sonra proqramın işinin davam etdirilməsinə xidmət edir və əgər dövrdən çıxdıqdan sonra proqramın qalan hisəsini yerinə yetirmək zəruridirsə, onda istifadə edilir.

Məsələn:

for (;;) {

if (ifadə)

break }

Idarəedici ifadələr olmadıqda for operatoru `addımla yerinə yetirilir, ancaq dövrü olduqda if operatorundakı ifadə break operatorunu yerinə yetirilməyə məcbur edir və o dövrün sonsuz icrasını dayandırır.

break açar sözü C++ dilinin bir hissəsi olsa da onu ehtiyatla istifadə etmək lazımdır. Belə ki, şərt yalan olduqda for dövrü bir çıxışa malik olur. Lakin bir və ya bir neçə break operatoru istifadə etdikdə, for dövrünün bir neçə çıxışı olur. Bu isə kodu daha qarışıq edir və məntiqi səhvlərə gətirə bilər.

Continue operatoru

for dövründə continue açar sözü istifadə etmək olar. continue dövrün cari iterasiyasını qurtarmaq və dövrün növbəti iterasiyasına keçid üçün təyin olunub.

continue açar sözünün C++ dilinin bir hissəsi olmasına baxmayaraq, onu da break kimi ehtiyatla istifadə etmək lazımdır. Adətən for dövrünün hər iterasiyası bir çıxışa malik olur. Lakin continue operatorundan istifadə etdikdə hər iterasiya bir neçə mümkün çıxışa malik olacaq. Bu isə kodu daha qarışıq edir və məntiqi səhvlərə gətirib çıxara bilər.

Məsələn: 10 müsbət elementin cəminin hesablanması

continue ilə continue olmadan

..................................

int s= 0, i, a; int s= 0, i, a;

........................

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

{ scanf ( % d, & a); { scanf ( % d, & a);

if (a<=0) continue; s+=a >0? a: 0;

s+=a; }

}

Misal 5.5. breakcontinue operatorlarından birgə istifadə olunması:

#include<stdio.h>

void main()

{ int i;

for(i = 1; i < 10; i++)

{

if (i == 5)

break;

printf ("%d\n", i);

}

for(i = 1; i < 10; i++)

{

if (i == 5)

continue;

printf("%d ", i);

}getch();

}

Misal 5.6. 1-dən100-ə qədər ədədlər içərisində cüt ədədləri çapa verən proqram.

#include <stdio.h>

main()

{

int x;

for (x=0; x<=100; x++) {

if (x%2) continue;

printf("%4d", x);

}getch();

}





:


: 2017-01-21; !; : 642 |


:

:

- , 20 40 . - .
==> ...

1769 - | 1725 -


© 2015-2024 lektsii.org - -

: 0.015 .