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



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

Ranq

Əməllər

Assosiativlik

1

( ) [ ]



2

! ~ + - ++ - - & * (tip) size of



3

* / % (multiplikativ binar)



4

+ - (additiv binar)



5

< <= >= > (müqayisə)



6

= = != (müqayisə)



7

& (mərtəbəli və)



8

^ (mərtəbəli istisna edən və ya)



9

| (mərtəbəli və ya)



10

&& (konyuksiya və)



11

| | (dizyunksiya və ya)



12

? : (şərt)



13

= *= /= % = + = - = &= ^= | =



14

, (vergül)




Məsələlər.
1. Sabitlər tipini müəyyən edin:
a) 315; b) -32.4; c) 102408; d) 0315; e) 0x24; g) 2.6L; k) 70700U; m) `5`; n) `\121`.
2. Proqramda int n=10; dəyişəni təsvir edilmişdir. Aşağıdaki ifadələrin qiymətlərini hesablayın:
a) n++; b) ++n; c) n%2; d) n/3.; e) ++n+5; k) 5+n+1; g) (float)n/4; m) size of(n); n) size of(1.*n).
3. Müstəvi üzərində nöqtənin XY koordinatları verilmişdir. Aşağıdaki şərtləri məntiqi ifadə şəklində yazın:
a) nöqtə koordinat müstəvisinin 1-ci rübündə yerləşir;
b) nöqtə X-oxunun üzərində yerləşir;
c) nöqtə koordinat oxlarından birinin üzərində yerləşir;
d) nöqtə vahid dairəsi daxilində 1-ci və 2-ci rübdə yerləşir;
e) nöqtə daxili radiusu 1, xarici radiusu 2 olan halqanın daxilində 2-ci və 4-cü rübdə yerləşir;
4. Proqramda float x=2; dəyişəni təsvir edilmişdir. Aşağıdaki ifadələrin hesablanmasında X-dəyişəni hansı qiymətlər olar?
a) x += 2; b) x/=10; c) x*=(x+1); d) x += x+=x+=1;

5. Aşağıdaki ifadələrin qiymətlərini X-dəyişənin üç variantda təsviri üçün hesablayın:
1) float x=1.; 2) float x=10.; int x=1;
a) x >1? 2*x:x; b) x/5 = = 2? 5:x/10; c) x>0 && x<=1? 1:0;

6.9. Budaqlanan proqramlar. Şə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;
Misal 1. x-dəyişənin işarəsini təyin edən sign(x) – funksiyasının hesablanmasına baxaq:

if-operatorunun tam formasından istifadə etməklə məsələnin alqoritmini aşağıdaki kimi yazmaq olar:

Alqoritmə uyğun olan proqram fraqmentini aşağıdaki kimi yazmaq olar:
if(x<=0)
if(x=0)y=0;
else y=-1;
else y=1;
Natamam şərti keçid operatorundan istifadə etməkdə bu məsələnin alqoritmini və proqram hissəsini aşağıdaki kimi yazmaq olar:

y=1;
if(x 0)
if(x= =0)y=0;
else y=-1;
Misal 2. a və b – dəyişənlərini onların qiymətlərinin artma sırasına görə nizamlamalı

if (a>b)
{c=a; a=b; b=c;}
cout <<”a=” <
Bu proqramda fiqurlu mötərizənin içərisində bir neşə operatorlar ardıcıllığı yazılıb. Bu mötərizələr operator mötərizələr adlanır və Pascal dilindəki begin və end-in oxşarıdır (mürəkkəb operator).
Üç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”);
}


Yüklə 1,02 Mb.

Dostları ilə paylaş:
1   ...   9   10   11   12   13   14   15   16   ...   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