Bu operatorlardan dövrü alqoritmlərin proqramlarını yazmaq üçün istifadə olunur.
1. Ön şərtli dövr operatoru.Operatorun formatı aşağıdaki kimidir:
while(ifadə) operator; Nə qədər ki, ifadənin qiyməti sıfırdan fərqlidir (yəni “doğrudur”) operator yerinə yetirilir. İfadənin qiymət sıfra bərabər olduqda (yəni “yalan” olduqda) operatorun yerinə yetirilməsi dayanır və dövrün gövdəsindən sonra gələn operator yerinə yetirilir. Dövrün gövdəsində ifadənin qiymətinə təsir edən bir əlamət olmalıdır. Əks halda dövr sonsuz dövr ola bilər. Müsbət tam n-ədədi üçün n!-ın hesablanması proqramına baxaq.
//Faktorialın hesablanması proqramı
#include using namespace std; void main( ) {long int f; int i,n;
cout<<”n=”; cin>>n; while (i<=n){f=f*i; i=i+1}; //və ya f=f*i++; və ya f*=i++; cout <<”\n”< } Dövrün gövdəsində olan f=f*i+1; operatorunu daha lakonik şəkildə yaza bilərik: f*=i++;
Məlumdur ki, faktorial funksiyası çox sürətlə artan funksiyadır. Ona görə də n-in müəyyən qiymətindən sonra funksiyanın qiyməti onun üçün ayrılmış yaddaş sahəsinə (long int tipi ilə müəyyən olunur) yerləşməyə bilər. Funksiyanın qiymətlər diaqnozununu artırmaq üçün unsiqned long int tipindən istifadə etmək olar. Sonsuz dövrə misal:
a=10; while(a<100) x=1; və ya while(1); While operatoruna aid daha bir misala baxaq. Verilmiş dəqiqliyi ilə harmonik sıranın hesablanması proqramına baxaq:
S=1+ + +. . .+ +…
/* Harmonik sıranın cəminin hesablanması */ #include #include void main ( ) {int n=1; double S=0, eps; cout<<”dəqiqlik=”; cin>>eps; while(1.0/n>eps && n< int_max) S+=1./n++; Summ a=”< } Prosessor önünə qoşulan limits.h faylında tam tipli verilənlərin ən böyük və ən kiçik qiymətləri yerləşir. int_max-adlı sabitin maksimal qiyməti int tipi ilə müəyyən olunur. Əgər int tipi 2 baytlıq təsvirə malikdirsə (16 mərtəbəli əməliyyat sistemləri üçün), onda int_max=32767. Bu faylda həmçinin digər sabitlərin də qiymətləri saxlanılar.