Sizeof əməli. Bu əməl iki formada yazıla bilər: sizeof(tip) və sizeof(ifadə). Əməlin nəticəsi “tip”-in və ya ifadənin hesablanmasından alınan qiymətin yaddaşda tutduğu baytların sayı olur. Sizeof(ifadə) əməlində ifadənin qiymətinin tipinə görə baytların sayı hesablanır. Bu əməlin üstünlük dərəcəsi binar hesabi əməllərin, məntiq və müqayisə əməllərinin üstünlük dərəcəsindən böyükdür. Əməlin istifadə olunmasına aid misallar:
Sizeof(int) nəticə 2 bayt
Sizeof(1) nəticə 2 bayt
Sizeof(0.1) nəticə 8 bayt
Sizeof(1L) nəticə 4 bayt
Sizeof(char) nəticə 1 bayt
Sizeof (`a`) nəticə 2 bayt
“vergül” əməli.Bu qeyri-adi əməldən bir necə ifadəni əlaqələndirmək üçün istifadə olunur. Bu ifadələr bir-birindən vergüllə ayrılır və soldan sağa doğru ardıcıl olaraq hesablanır. Nəticə olaraq ən sağdaki ifadənin qiyməti götürülür. Məsələ, əgər x-dəyişəni tam tipə malikdirsə, onda (x=3, 5*x)-ifadəsinin qiyməti 15-ə, x-dəyişəninin qiyməti isə 3-ə bərabər olacaq.
34.”şərt ?” əməli
<<şərt?: >> - əməli.Bu yeganə əməldir ki, 3 operandı var. Əməlin formatı: ifadə 1? ifadə 2: ifadə 3;
Bu əməl budaqlanmanın alqoritmik strukturunu müəyyən edir. Əməlin yerinə yetirilməsinin alqoritmi aşağıdaki kimidir: əvvəlcə ifadə 1-hesablanır, ifadə 1-müəyyən şərti ifadə edir. Əgər bu şərt doğrudursa ifadə 2 yerinə yetirilir və alınan qiymət nəticə kimi qəbul edilir. Əks halda ifadə 3 hesablanır və alınan qiymət nəticə kimi qəbul edilir.
Misal 1. |x|-in hesablanması bir əməl vasitəsi ilə vermək olar:
x<0 ? – x : x;
Misal 2. a və b-dəyişənlərindən ən böyüyünün qiymətini tapmaq üçün yazmaq olar:
max=(a< =b)? b : a;
Misal 3. a və b dəyişənlərindən ən böyüyünün qiymətini vahidlə əvəz etmək üçün yazmaq olar:
(a>b)? a=1 : b=1;
Dilin qaydası imkan verir ki, bərabərsizlikdən sol tərəfdə “şərt?” əməli yazılsın.
35.Şərti keçid operatoru
Budaqlanan alqoritmlərin proqramlarını yazmaq üçün C++ dilində bir neçə vasitə vardır. Bunlar aşağıdakilardır.
? : - şərt əməli;
if - şərti keçid operator;
switch - seçmə operatoru.
Şərti keçid operatorunun formatı:
if (ifadə) operator 1; else operator 2;
Bu şərti keçid operatorunun tam formasıdır. Burada (ifadə) müqayisə və məntiq əməlləri iştirak edən hər hansı bir şərtdir. İfadənin qiyməti tam ədədə çevrilir və aşağıdaki kimi interpretasiya olunur: sıfra bərabərdirsə - yalan, sıfırdan fərqlidirsə - doğru. İfadənin qiyməti doğrudursa operator 1, yalandırsa operator 2 yerinə yetirilir.
Şərti keçid operatorunun sintaksisində aşağıdaki xüsusiyyətlərə fikir vermək lazımdır:
ifadə dairəvi mötərizə içərisində yazılır;
operator 1 – dən sonra nöqtə-vergül işarəsi qoyulur.
Şərti keçid operatorunun tam olmayan formasından da istifadə etmək olar:
if (ifadə) operator;
Məsələ, iki a və b dəyişənlərindən ən böyüyün tapmaq üçün if – operatorunu aşağıdaki kimi yazmaq olar:
if (a>b) max=a; else max=b;
Bu məsələni tam olmayan if – operatorundan istifadə etməklə həll etmək olar:
max=a; if (b>a) max=b;
“Şərt” əməlindən istifadə etməklə aşağıdaki kimi yazmaq olar:
max=(a<=b)? b:a;
Üçbucağın sahəsinin hesablanması proqramını yenidən yazaq. a,b,c-üçbucağın tərəfləridir və müsbət ədədlərdir. Yuxarıdaki proqrama üçbucağın tərəflərinin düzgünlüyünü yoxlayan şərti də əlavə edək:
//üçbucağın sahəsi
#include #include void main ( )
{float a,b,c,s,p;
cout << ”\na=”; cin >> a;
cout <<”\nb=”; cin >> b;
cout <<”\nc=”; cin >> c;
if (a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a)
{p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
cout << “\sahə=” << s;
}
else cout (“\n ilkin verilənlər düz deyil”);
}
36.Seçim operatoru
Operatorun formatı aşağıdaki kimidir:
Switch(tamqiymətli ifadə) {
case sabit1: operatorların siyahısı;
case sabit2: operatorların siyahısı;
. . .
default: operatorların siyahısı;
}
Axrıncı default operatoru iştirak etməyə bilər. Operatorun yerinə yetirilmə qaydası aşağıdaki kimidir:
İfadə hesablanır.
Alınan qiymət case işci sözündən sonra yazılan sabitlərlə ardıcıl olaraq müqayisə edilir. Birinci üst-üstə düşmə halında iki nöqtədən sonra gələn operatorlar yerinə yetirilir.
Əgər ifadənin qiyməti sabitlərin heç biri ilə üst-üstə düşmürsə onda default-dan sonra gələn operatorlar yerinə yetirilir.
Növbəti operatorların yerinə yetirilməsinin üzərindən keçmək üçün çıxış və ya keçid operatorlarından istifadə etmək lazımdır.
Tələbənin biliyinin ədədi qiymətini ona ekvivalenti olan sözlərlə əvəz edən proqram fraqmentinə baxaq. Məsələ, 5-“əla”, 4-“yaxşı”, 3-“kafi”, 2-“qeyri-kafi”. Proqram aşağıdaki kimi olar:
#include using name namespace std;
void main ( ) {int bol;
cout <<”\n qiyməti daxil edin:”; Cin>>bol;
switch(bol) {
case 2: cout<<”\t bu qeyri-kafidir!\n”;
break;
case 3: cout<<”\t bu kafidir!\n”;
break;
case 4: cout<<”\t bu yaxşıdır!\n”;
break;
case 5: cout<<”\t bu əladır!\n”;
break;
default: cout<<”\t belə qiymət yoxdur!\n;
}
}
Break operatoru seçmə operatorunun yekunlaşdığını bildirir, yəni digər budaqlara keçid baş vermir. Əgər bütün budaqlardan break operatorunu götürsək düzgün nəticə alınmaz.
37.Ön şərtli dövr operatoru
C və Pascal dillərində olduğu kimi C++ dilində də üç dövr operatoru vardır:
ön şərtli dövr operatoru;
son şərtli dövr operatoru;
parametrlə olan dövr operatoru.
Bu operatorlardan dövrü alqoritmlərin proqramlarını yazmaq üçün istifadə olunur.
0>