Dec 22 2009

C-də şərt operatoru və dövrlər

Bu gün C-də if, for, while və do-while haqqında yazacam.
Başqa proqramlaşdırma dillərində olduğu kimi C-də də if operatoru, şərt operatoru kimi istifadə olunur. Ümumi forması

if ( )
{
; //ingiliscə statement ,azərbaycanca fikir bəyanat deməkdir
}
else
{
;
}

Məsələn:

#include <stdio.h>
int main()
{
char simvol;
simvol=getchar();/*getchar() bir simvolu oxumaq ucun istifade edilir.*/
if (simvol='a')
printf("Siz a herfin yazdiz \n"); /*eger statement bir emirden ibaretdirse, onda {} blokundan istifade etmemek olar */
else
printf("Siz basqa herf yazdiz \n");
return 0;
}

if operatoru necə işləyir. if açar sözündən sonra mötərizə içərisində biz şərt qoyuruq, əgər şərt doğru olarsa, onda if bloquna məxsus kodlar həyata keçiririlr, əgər yanlış olarsa, onda ifdən sonrakı (yuxarıdakı misalda else bloqundakı) kodlar yerinə yetirilir.
İf operatorunda birdən çox ifadə (şərt ) qoymaq olar. Məsələn:

if (simvol='a' || simvol='A')
printf ("Siz klavyaturadan a herfin daxil etdiniz \n");

Operatorlar bölməsinəd dediyim məntiqi operatorları, şərtdə istifadə etmək olar. Bu halda mən və ya (||) operatorundan istifadə etdim.

if ()
{
...
}
else if ()
{
...
}
else
{
...
}

else if isə bu şəkildə istifadə olunur. Yəni birinci şərt doğru deyilsə, əks halda ikinci şərti yoxlanılır. Bu doğrudursa, bu şərtə məxsus bəyanatlar yerinə yetirilir. Doğru deyilsə onda else bloquna məxsus bəyanatlar yerinə yetirilir.
Proqramlaşdırmada çox vaxt bizim müəyyən dövrdən istifadə etməyimizə ehtiyac yaranır. Əslində dövrdə də şərt qoyursan və burda fərq bir hadisəni birdəfədən çox edirsən. C dilində 3 dövr operatoru var. for, while və do-while dövrləri.
for dövr operatorunun istifadəsi bizə bəlli olan sayda (fiksə olunmuş) dövr olduqda məsləhətdir.Cümlə biraz çətin oldu.Qoy misalda izah edək asan olsun.

#include <stdio.h>
main()
{
int i;
printf("1-den 100-e kimi ededler \n");
for (i=1;i<=100;i++)
printf ("%d\n",i);
}

Hə,burda göründüyü kimi bilirik neçədə başlayıb neçədə qurtaracayıq.Yəni birininci i dəyişəninə 1 mənimsədirik, sonra hər dəfə yoxluyuruq, əgər 100-dən kiçik bərabərdirsə,onda for içindəkilər yerinə yetirilir.100-dən böyük olsa, onda fordan sonrakı əmrlər yerinə yetiriləcək.(indi ki halda proqram sona çatacaq).Ümumi şəkli

for (;;)
{}

Yadıma nə düşdü, dövr operatorunda hər dəfə görəndə ki, i,j bu hərfləri istifadə edirlər mənə maraqlı gəldi.Internetdən oxudum ki, o vaxt Fortran dilində proqram yazanda proqramistlər dövrdə i,j,k kimi dəyişənlərdən istifadə ediblər. Sonradan bu adət halın alıb. i,j,k bunların adı da qalıb dövr dəyişənləri. Sözümüz burda deyil. İndi görək bu while operatoru necə işləyir. Yuxarıdakı kod while üçün bu formada olacaq.

#include <stdio>
main()
{
int i;
printf("1-den 100-e kimi ededler \n");
i=1;
while (i<=1oo)
{
 printf ("%d\n",i);
 i++;
}
}

Burda fikir verdinizsə, i dəyişənin ilkin qiymətini dövrdən əvvəl mənimsətmək lazımdır. while dövrü necə işləyir. Yoxluyur əgər şərt doğrudursa, onda keçir dövrün içinə , şərt yanlışdırsa, dövrdən sonraya. Gördüyünüz kimi çox sadədir. Qaldı do-while.
do-while dövrü while dövrünün xüsusi halıdır.Bu dövr əsasən o vaxt işlədilir ki, dövrün içindəkiləri yerinə yetirmək ən azı bir dəfə vacib olsun. 1-dən 10-a kimi ədədlərin cəmin do-while ilə yazaq.

#include <stdio.h>
int main()
{
int say, cem;
say=0;
cem=0;
do
{
 say=say+1;
 cem=cem+say;
 printf("say=%d,\t, cem=%d \n",say, cem);
}  while (say<10);
 return 0;
}

do-while dövrünün gördüyümüz kimi 2 açar sözü var. do və while. do açar sözü bildirir ki, dövr başladı.while açar sözü isə dövrün sonunda olur və dövrün yerinə yetirilmə şərtlərin müəyyən edir.Yuxarıdakı kodda say=10 olana kimi dövr yerinə yetirilir. Yəni say=10 qiymətin alır. Çünki şərt sonda yoxlanılır. Əgər bunu təkcə while dövrü ilə yazsaydıq, onda while (say<10) bu halda say 10 qiymətin almayacaqdı.Bu dərsdə aşağıdakıları öyrəndik.

  1. if operatoru
  2. for operatoru
  3. while operatoru
  4. do-while operatoru
  5. while və do-while operatorunun fərqi
Bookmark and Share

Leave a Reply


CAPTCHA Image Başqasını göstər

Alibi3col theme by Themocracy