Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Muasir proq dil C++.doc
Скачиваний:
15
Добавлен:
01.05.2025
Размер:
7 Мб
Скачать
☆

3.4. Konstantlar (Sabitlər)

Proqramlaşdırma dillərində verilənlər sabitlər şəklində də gös­­tərilə bilər. Onlar

const int intVal=17;

kimi elan olunurlar.

Misal 3.1. ifadəsini hesablayan proqram.

#include <stdio.h>

main()

{

const float b=3.14;

float x, a;

scanf(“%f”,&x);

a= b*x*x;

printf(“a = %f”, a);

return 0;

}

Simvol sabitlər apostrof daxilində yazılmış bir simvoldan ibarət olurlar: “q” , “2”, “.” Və s.

Const char sym=”m” ;

Xüsusi simvollar da simvol konstantlar bölməsinə daxil­dir­­lər.

Literal sabitlər (literallar) – bilavasitə proq­ra­mın mətnin­də­ daxil edilən qiymətlərdir. Belə ki, proqramın kom­pil­ya­si­­­ya­­sın­­dan sonra literalların qiymətini dəyişmək mümkün ol­ma­dı­ğın­dan onları sabitlər də adlandırırlar.

İstənilən sabitin emalı üçün kompilyator minimal diapa­zon­lu qiymətə malik mümkün verilənlər tipindən istifadə edir, yəni verilən sabitin saxlanması üçün yaddaşın müm­kün minimal həcmini tutur.

Məsələn, 1257 və ya -251 ədədlərinin daxil edilməsi üçün int­ tip istifadə olunacaq. Lakin əgər sabitə elan olunduğu qə­dər yaddaş ayrılması (faktiki olaraq tutduğu qədər yox) tə­ləb olu­nur­sa, onun uzunluğunu aşkar olaraq göstərmək la­zım­­dır. Bunun üçün L hərfi istifadə olunur. Ədəddən sonra U hərfinin gös­tərilməsi isə onun işarəsiz olduğunu göstərir. Double tip sabitlərə f və ya F hərflərinin əlavəsi zamanı on­lar float tip, l və ya L hərfi əlavə olunduqda isə long double tip olurlar.

C/C++ dilində ədədi və simvol tiplərdən savayı sətir sa­bit­ləri də istifadə olunur.

Sətir sabitlər – dırnaq işarəsi daxilində yerləşən ASCII ko­du­nun simvollarından ibarətdir.

Qeyd edək ki, C/C++ dilində əsasən aşağıdakı standart sabitlərdən istifadə olunur:

e ədədi

M_E

π ədədi

M_Pİ

π/2 ədədi

M_Pİ_2

π/4 ədədi

M_Pİ_4

lge

M_LOG10E

ln2

M_LN2

3.5. İfadələr

Ifadə - qiymətə malik olan proqram fraqmentidir: adətən, bu proqram buraxılan zaman hesablanmalı olan qiymətdir. Məsələn, . Bu halda ifadə literallardan(ədədlərdən), operatorlardan (/ və +) və kiçik mötərizədən ibarətdir. Mürəkkəb ifadələrdə mötərizələr iç-içə ola bilərlər (bu o deməkdir ki, bir alt ifadə digər altifadənin daxilində yerləşir). Məsələn, .

Dəyişən = ifadə dəyişənə ifadənin qiymətini mənimsətmək deməkdir. Bu za­man­ əvvəlcə ifadənin qiyməti hesablanır və bu qiymət sol tə­­rəf­dəki dəyişənin qiyməti olur.

Yadda saxlamaq lazımdır ki, “=” işarəsi mənim­sət­mə işa­rəsidir, bərabərlik işarəsi deyil. Mənimsətmə ifadə olur­. Bu qaydaya görə i=(j=k) da ifadə olur, belə ki, j=k ifa­­dədir və kon­kret qiymətə malikdir. Mötərizəni yazmamaq olar, onda i=j=k ifadəsi k qiymətini i və j dəyişənlərinə mənimsədir, i=j=k=12 ifadəsi isə 12 qiymətini hər üç dəyişənə mənimsədir.

3.6. Əməllər

İfadələr qurularkən tətbiq edilən əməllərin növləri bunlardır:

  • Hesabi,

  • Münasibət,

  • Məntiqi və mərtəbə,

  • Inkrement və dekrement,

  • Mənimsətmə.

1) Hesabi əməllər:

*- vurma;

/ - bölmə;

+- toplama;

- - çıxma;

%- tam bölmədə qalığı götürmə.

Bölmədən başqa bütün əməllər ənənəvi qaydada yerinə ye­ti­­­rilir. Bölmə əməlinin xüsusiyyəti ondadır ki, əgər hər iki­­ ope­rand tamdırsa, onda nəticə tam qiymət olur. Həqiqi qiy­­­mət al­maq üçün heç olmazsa bir operand həqiqi tipə ma­lik olma­lı­dır. Belə ki, 9/5=1; 9/5.0=1.8; 9%5=4.

Hesabi operatorların üstünlük dərəcəsi belədir:

a) yüksək: - (unar minus),

b) orta: *, /, % (vurma, bölmə, qalığı götürmə),

c) aşağı: +, - (toplama, çıxma).

Yadda saxlamaq lazımdır ki, proqramlaşdırma dili­n­də bü­­tün əməl­ləri aşkar şəkildə göstərmək lazımdır. Bu, əsa­sən vur­ma əmə­l­inə aiddir, belə ki, riyaziyyatda onu yaz­ma­maq olar, proq­ram­laşdırmada isə yox! Məsələn, ab yazılışı proqramlaşdırmada iden­tfi­ka­tor ki­mi başa dü­şü­lür. Hesabi operatorlar binar opera­tor­lar­dır, çünki onlar iki operand üzərində əməliyyatı yerinə yetirirlər.

Aşağıda riyazi ifadənin C/C++ dilində yazılışına aid nü­mu­nə verilmişdir:

Riyazi ifadə: ;

C/C++ dilində yazılışı:

2) Münasibət əməlləri müqayisə üçün istifadə olunur:

< - kiçik;

<= - kiçik və ya bərabər;

> - böyük;

>= - böyük və ya bərabər;

= = - bərabər;

!= - bərabər deyil.

Məsələn,

#include <stdio.h>

#include <conio.h>

main(){

int b;

b=5>2; // b doğru qiymət alır;

printf("b=%i\n",b);

b=7<4; // b yalan qiymət alır;

printf("b=%i\n",b);

getch();

}

Nəticədə

alınır.

Münasibət, məntiqi və bitlər (mərtəbə) üzərində əməl­lə­rin nə­ti­­cəsi məntiqi tip olur. Lakin C/C++ dilində true ­və false qiymətləri alan standart məntiqi tip yoxdur. Burada mən­­tiqi qiy­mətlər olaraq tamqiymətli qiymətlər istifadə olu­nur, belə ki, sı­fır yalan kimi, sıfırdan fərqli istənilən qiymət isə - doğru ki­mi başa düşülür.

Qeyd edək ki, “= =” münasibət işarəsini “=” mənimsətmə işarəsi ilə qarışdırmaq olmaz, belə ki, bu səhvə gətirib çıxara bilər.

3) Məntiqi əməllərə aşağıdakılar daxildir:

məntiqi “və” (&&),

məntiqi “ və ya” (||),

məntiqi inkar (!) .

Məntiqi əməllər bir neçə şərti ifadələri birləşdirdikdə isti­fadə olunur.

Məntiqi əməllər aşağıdakı xassələrə malikdirlər;

U1 və U2 – iki şərti ifadələrdirsə, onda:

  • əgər hər iki ifadə eyni zamanda doğrudursa, U1&&U2 - doğ­ru­dur;

6>2 && 7>5 - doğrudur;

6>2 && 7<5 - yalandır;

  • əgər ifadələrdən heç olmasa biri doğ­ru­dur­sa, U1 || U2 -doğrudur;

6>2 || 7>5 - doğrudur;

6>2 || 7<5 - doğrudur;

6<2 || 7<5 - yalandır;

  • U1- yalan olduqda, !U1 - doğrudur;

  • U1 - doğru olduqda, !U1 - yalandır;

! (6>2)- yalandır;

! (6<2)- doğrudur.

Mərtəbələr (bitlər) üzərində əməllər float və double tip­ dəyişənlərə tətbiq oluna bilməz. Belə əməllərə aşağıdakılar aiddir:

“ və” (&),

“ və ya “ (|),

mərtəbəli inversiya (-),

“ yoxetmə və ya “ (^),

sola yerdəyişmə (<<),

sağa yerdəyişmə (>>).

Misal 3.2.

C/C++ dilində riyaziyyatda rast gəlinməyən iki əməl var:

inkrement (++) və dekrement (--). İnkrement əməliyyatı ope­ran­da 1 əlavə edir, dekrement isə operanddan 1 çıxır:

i++  i=i+1;

i - -  i=i-1.

j=i++

yazısı

j=i; i++

yazısına ekvivalentdir;

j=++i

yazısı isə

i=i+1; j=i;

yazısına ekvivalentdir.

Məsələn, S=a + b ++; yazısı o deməkdir ki, a+b- ni tapıb nə­ti­cə­ni S-ə mənimsətməli və onu 1 vahid artırmalı.

S=a+++b; yazısı o deməkdir ki, b-ni 1 vahid artırmalı, a və b – ni toplamalı, nəticəni S - ə mənimsətməli.

C/C++ dilində mənimsətmə əməli adi haldan əlavə qey­­ri ənə­nə­vi göstərilişə malikdir. Məsələn, x=x+15 əməlinin yeri­nə ye­ti­rilməsi x dəyişəninin ünvanının 2 dəfə hesablanmasına gətirir: il­kin qiymətin tapılması üçün və alınan nəticənin köçürülməsi üçün.

Bu çatışmazlığı x+=15 yazmaqla aradan qaldırmaq olar.

“+ =” simvolu da mənimsətmə əməli adlanır və o, kom­pil­ya­­­­tora x - ə 15 qiymətini əlavə edib nəticəni x-də yadda sax­la­maq göstərişi verir.

Mənimsətmə əməlinin tam yığımı:

*=, /=, +=, -=, %=, <<=, >>=, &=, ^=, \=.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]