Fortran - Operatorlar

Fortranda Operatorlar

Operator, istifadəçiyə spesifik riyazi və ya məntiqi əməliyyatlar etməyi bildirən simvoldur. Fortran aşağıdakı operator növlərini təqdim edir:

  • Riyazi Operatorlar
  • Əlaqə Operatorları
  • Məntiqi Operatorlar

Gəlin bu operator növlərinə bir-bir nəzər salaq.

Riyazi Operatorlar

Aşağıdakı cədvəl, Fortran tərəfindən dəstəklənən bütün riyazi operatorları göstərir. Tutaq ki, A dəyişəni 5, B dəyişəni isə 3 saxlayır, beləliklə:

OperatorTəsvirNümunə
+Cəm Operatoru, iki operandı(toplananları) cəmləyir.A + B 8 nəticəsini verir
-Çıxma Operatoru, ikinci operandı(çıxanı) birini operanddan(çıxılandan) çıxarır.A - B 2 nəticəsini verir
*Vurma Operatoru, iki operandı(vuruğu) bir-birinə vurur.A * B 15 nəticəsini verir
/Bölmə Operatoru, birinci operandı(bölünəni) ikinci operanda(bölənə) bölür.A / B 1 nəticəsini verir
**Qüvvətə Qaldırma Operatoru, bir operandı digərinin qüvvətinə qaldırır.A ** B 125 nəticəsini verir

Əlaqə Operatorları

Aşağıdakı cədvəl, Fortran tərəfindən dəstəklənən bütün əlaqə operatorlarını göstərir. Tutaq ki, A dəyişəni 10, B dəyişəni isə 20 saxlayır, beləliklə:

OperatorEkvivalentTəsvirNümunə
==.eq.İki operandın dəyərlərinin bərabər olub-olmamasını yoxlayır. Əgər bərabərsə, şərt doğru olur.(A == B) doğru deyil.
/=.ne.İki operandın dəyərlərinin bərabər olub-olmamasını yoxlayır. Əgər bərabər deyilsə, şərt doğru olur.(A != B) doğrudur.
>.gt.Sol operandın dəyərinin sağ operandın dəyərindən böyük olub-olmamasını yoxlayır. Əgər böyüksə, şərt doğru olur.(A > B) doğru deyil.
<.lt.Sol operandın dəyərinin sağ operandın dəyərindən kiçik olub-olmamasını yoxlayır. Əgər kiçikdirsə, şərt doğru olur.(A < B) doğrudur.
>=.ge.Sol operandın dəyərinin sağ operandın dəyərindən böyük və ya bərabər olub-olmamasını yoxlayır. Əgər böyüksə və ya bərabərsə, şərt doğru olur.(A >= B) doğru deyil.
<=.le.Sol operandın dəyərinin sağ operandın dəyərindən kiçik və ya bərabər olub-olmamasını yoxlayır. Əgər kiçikdirsə və ya bərabərdirsə, şərt doğru olur.(A <= B) doğrudur.

Məntiqi Operatorlar

Fortranda məntiqi operatorlar yalnız .true..false. məntiqi dəyərlər üzərində işləyir.

Aşağıdakı cədvəl, Fortran tərəfindən dəstəklənən bütün məntiqi operatorları göstərir. Tutaq ki, A dəyişəni .true. saxlayır, B dəyişəni isə .false. saxlayır, beləliklə:

OperatorTəsvirNümunə
.and.Məntiqi VƏ operatoru olaraq çağırılır. Əgər hər iki operand sıfırdan fərqli olarsa, şərt doğru olur.(A .and. B) yanlışdır.
.or.Məntiqi VƏYA operatoru olaraq çağırılır. Əgər hər hansı bir operand sıfırdan fərqli olarsa, şərt doğru olur.(A .or. B) doğrudur.
.not.Məntiqi TƏRS operatoru olaraq çağırılır. Operandının məntiqi vəziyyətini əksinə çevirir. Əgər şərt doğru olsa, Məntiqi TƏRS operatoru onu yalnışa çevirir.!(A .and. B) doğrudur.
.eqv.Məntiqi BƏRABƏRDİR operatoru olaraq çağırılır. İki məntiqi dəyərin bərabərliyini yoxlayır.(A .eqv. B) yanlışdır.
.neqv.Məntiqi BƏRABƏRSİZDİR operatoru olaraq çağırılır. İki məntiqi dəyərin bərabərsizliyini yoxlayır.(A .neqv. B) doğrudur.

Fortranda Operatorların Üstünlük Dərəcəsi

Operatorların üstünlük dərəcəsi ifadədəki terminlərin qruplaşdırılmasını müəyyən edir. Bu, ifadənin necə qiymətləndirildiyini təsir edir. Bəzi operatorların üstünlük dərəcəsi digərlərindən yüksəkdir; məsələn, vurma operatorunun üstünlük dərəcəsi toplama operatorundan yüksəkdir.

Məsələn, x = 7 + 3 * 2 ifadəsində, burada x 13-ə təyin olunur, 20-yə yox, çünki * operatorunun üstünlük dərəcəsi +-dan yüksəkdir. Buna görə, əvvəlcə 3 * 2 vurulur, sonra isə 7-yə əlavə edilir.

Burada, ən yüksək üstünlük dərəcəsinə malik operatorlar cədvəlin yuxarısında göstərilir, ən aşağı üstünlük dərəcəsinə malik olanlar isə aşağıda. Bir ifadə daxilində, yüksək üstünlük dərəcəsinə malik operatorlar əvvəlcə qiymətləndirilir.

KateqoriyaOperatorAssosiativlik
Məntiqi TƏRS və mənfi işarə.not., (-)Soldan sağa
Qüvvətə qaldırma**Soldan sağa
Vurma və bölmə*, /Soldan sağa
Cəm və çıxma+, -Soldan sağa
Əlaqə Operatorları<, <=, >, >=Soldan sağa
Bərabərlik==, /=Soldan sağa
Məntiqi VƏ.and.Soldan sağa
Məntiqi VƏYA.or.Soldan sağa
Təyin etmə=Sağdan sola