Vi fəsil. C++ dilində proqramlaşdırma


Məsələ, int_min=-32768; long_max=2147483647 və s. Son şərtli dövr operatoru



Yüklə 1,02 Mb.
səhifə16/74
tarix04.01.2023
ölçüsü1,02 Mb.
#121980
1   ...   12   13   14   15   16   17   18   19   ...   74
Alqoritmik dillər(C kitab) (10)

Məsələ,
int_min=-32768; long_max=2147483647 və s.

Son şərtli dövr operatoru
Operatorun formatı aşağıdaki kimidir:
do operator while(ifadə);
While operatorunda yazılam ifadə “doğru” qiymət (sıfırdan fərqli qiymət) aldıqda operatorun yerinə yetirilməsi təkrarlanır. İfadə sıfıra bərabər qiymət aldıqda (yəni “yalan” qiymət) dövrdən çıxma əməliyyatı baş verir. Bu operatorda da dövrün gövdəsində şərtə təsir edən operator olmalıdır. Əks halda dövr sonsuz dövr ola bilər. Son şərtli dövr operatorundan bu operatorun fərqi odur ki, son şərtli dövr operatorunda do-sözündən sonra yazılan operator heç olmazsa bir dəfə yerinə yetirilir.
Yuxarıda göstərilən y=n!-funksiyasının proqramını son şərtli dövr operatorundan istifadə etməklə yazaq:
//Faktorialın hesablanması proqramı
#include
Using namespace std;
void main ( ) {
long int f;
int i,n;


cout<<”n=”; cin>>n;
f=i=1;
do f*=i++;
while(i<=n);
cout<<”/n”<

6.12.Parametrlə olan dövr operatoru
Parametrlə olan dövr operatorunun formatı aşağıdaki kimidir
for(ifadə_1; ifadə_2; ifadə_3) operator;
ifadə_1 dövr başladıqda ancaq bir dəfə yerinə yetirilir. Adətən ifadə_1 dövrün parametrinin başlanğıc qiymətini müəyyən edir. ifadə_2 dövrün yerinə yetirilmə şərtidir. ifadə_3 dövrün parametrinin dəyişməsi qaydasını müəyyən edir. Operator isə dövrün gövdəsini təşkil edir. Operator sadə və mürəkkəb operator ola bilər. Mürəkkəb operator fiqurlu mötərizələrin arasında yazılır.
For operatorunun yerinə yetirilməsi alqoritmini aşağıdaki kimi göstərmək olar:

for dövr operatoru vasitəsi ilə n!-ın hesablanmasını aşağıdaki kimi təyin etmək olar:
f=1;
for(i=1;i<=n;i++) f=f*i;
Inisalizasiya hissəsini for operatorundan əvvəl də yazmaq olar. Bu halda onun yerinə; (nöqtə-vergül) işarəsi qoymaq lazımdır. Məsələ:
f=1;
i=1;
for(; i<=n; i++) f=f*i;
n!-ın hesablanmasını aşağıda göstərilən variantlarda da yazmaq olar.
“Vergül” əməlindən istifadə etməklə bir neşə operatoru ifadə_1-ın (insalizasiya hissəsində) yerində yazmaq olar:
for (f=1, i=1; i<=n; i++)f=f*i;
və ya dövrün gövdəsində boş operator yazılır, dövrün gövdəsi isə ifadə_3-ün yerində yazılır:
for (f=1, i=1; i<=n; f=f*i; i++);
və ya
for (f=1, i=1; i<=n; f*=i++);
C++ dilində for operatoru dövrləri təşkil etmək üçün universal vasitədir. Onun köməyi ilə iterasiyalı dövrlərin proqramını yazmaq olar. Pascal dilində for operatorunun köməyi ilə iterasiyalı dövrlərin proqramlarını (dövrlərin sayı məlum olmayan hal) for operatorunun köməyi ilə yazmaq mümkün deyildir.
Məsələ,
y=1+ +…+ +…
harmonik sıranın cəminin dəqiqliklə hesablanmasına baxaq:
for(n=1,s=0;1.0/n>esp && n
və ya dövrün gövdəsini kənarda yazmaq olar:
for(n=1,s=0;1.0/n>esp && n
Aşağıdaki proqram fraqmentində bir-birinə daxil olan iki dövr operatorundan istifadə edilmişdir. Proqramın yerinə yetirilməsi nəticəsində ekranda vurma cədvəli alınır:
for(x=2;x<=9;x++)
for(y=2;y<=9;y++)
cout<<”\n<
Ekranda aşağıdaki nəticələr alınacaq:
2*2=4
2*3=6
- - - - -
9*8=72
9*9=81

Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   12   13   14   15   16   17   18   19   ...   74




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin