Информатика



Yüklə 195,31 Kb.
səhifə6/11
tarix04.04.2023
ölçüsü195,31 Kb.
#93332
1   2   3   4   5   6   7   8   9   10   11
Dasturlash tillari va uni o\'qitish mtodikasi kurs ishi 0076777

5.5-jadval. Amallar.



Arifmetik amallar



Razryadli
amallar

Nisbat amallari



Mantiqiy amallar



[+] qo`shish

[&] va

[==] teng

[&&] va

[-] ayirish

[|] yoki

[!=] teng emas

[||] yoki

[*] ko`paytirish

[^] inkor

[>] katta

[!] inkor




[/] bo`lish

[<<]
surish

chapga




[>=] katta yoki teng




[%] modul olish




[-] unar minus




[+] unar plyus

[>>]
surish

o`ngga




[<] kichik




[++] birga oshirish

[<=] kichik yoki teng




[--]

birga kamaytirish

[~] inkor




Imlo amallar



Qiymat berish va
shartli amallar

Tipli amallar



Manzilli amallar

[ () ] – doirali
qavs

[=] - oddiy qiymat
berish

[(tip)] –
o`zgartirish

tipni

[&]
aniqlash

-

manzilni

[ [] ] – kvadrat
qavs

[op=] - murakkab
qiymat berish

sizeof- hisoblash

hajmni

[*] - manzil bo`yicha qiymat
aniqlash yoki joylash

[,] - vergul

[?] – shartli amal

C++ da arifmetik amallar. Ko`p dasturlar bajarilishi davomida arifmetik amallarni bajaradi.
5.6-jadval. Arifmetik amal.



Arifmetik amal

Arifmetik operator

Algebraik ifoda

C++ dagi ifodasi

Qo`shish

+

A+B

A+B

Ayirish

-

A-B

A-B

Ko`paytirish

*

AB

A*B

Bo`lish

/

A/B

A/B

Modul olish

%

A MOD B

A % B

Ba`zi bir xususiyatlar. Butun sonli bo`lishda, yani bo`luvchi ham, bo`linuvchi ham butun son bo`lganda, javob butun son bo`ladi. Javob yaxlitlanmaydi, kasr qismi tashlab yuborilib, butun qismining o`zi qoladi.
Modul operatori [%] butun songa bo`lishdan kelib сhiqadigan qoldiqni beradi. x%y ifodasi x ni y ga bo`lgandan keyin chiqadigan qoldiqni beradi. [%]

operatori faqat butun sonlar bilan ishlaydi. Haqiqiy sonlar bilan ishlash uchun "math.h" kutubxonasidagi fmod funksiyasini qo`llash kerak.


Qavslar. C++ da qavslarning ma`nosi xuddi algebradagidekdir. Undan tashqari boshqa boshqa algebraik ifodalarning ketma-ketligi ham odatdagidek. Oldin ko`paytirish, bo`lish va modul olish operatorlari ijro qilinadi. Agar bir necha operator ketma-ket kelsa, ular chapdan o`nga qarab ishlanadi. Bu operatorlardan keyin esa qo`shish va ayirish ijro etiladi. Masalan, k = m * 5 + 7 % n / (9 + x); Birinchi bo`lib m * 5 hisoblanadi. Keyin 7 % n topiladi va qoldiq (9 + x) ga bo`linadi. Chiqqan javob esa m * 5 ning javobiga qo`shiladi. Lekin biz o`qishni osonlashtirish uchun va xato qilish ehtimolini kamaytirish maqsadida qavslarni kengroq ishlatishimiz mumkin. Yuqoridagi misolimiz quyidagi ko`rinishga ega bo`ladi.

k = ( m * 5 ) + ( ( 7 % n ) / ( 9 + x ) );

Amallar odatda unar ya`ni bitta operandga qo`llaniladigan amallarga va
binar ya`ni ikki operandga qo`llaniladigan amallarga ajratiladi.
Binar amallar additiv ya`ni qo`shuv [+] va ayirish [–] amallariga , hamda multiplikativ ya`ni ko`paytirish [*], bo`lish [/] va modul olish[%] amallariga ajratiladi. Additiv amallarining ustuvorligi multiplikativ amallarining ustuvorligidan pastroqdir. Butun sonni butun songa bo`lganda natija butun songacha yaxlitlanadi. Masalan, 10/3=3, (-10)/3=-3, 10/(-3) =-3.
Modul amali butun sonni butun songa bo`lishdan hosil bo`ladigan qoldiqqa tengdir. Agar modul amali musbat operandlarga qo`llanilsa, natija ham musbat bo`ladi, aks holda natija ishorasi kompilyatorga bog`liqdir.
Binar arifmetik amallar bajarilganda tiplarni keltirish quyidagi qoidalar asosida amalga oshiriladi:

    • short va char tiplari int tipiga keltiriladi;

    • agar operandlardan biri long tipiga tegishli bo`lsa ikkinchi operand ham long tipiga keltiriladi va natija ham long tipiga tegishli bo`ladi;

    • agar operandlardan biri float tipiga tegishli bo`lsa ikkinchi operand ham float tipiga keltiriladi va natija ham float tipiga tegishli bo`ladi;

    • agar operandlardan biri double tipiga tegishli bo`lsa ikkinchi operand ham double tipiga keltiriladi va natija ham double tipiga tegishli bo`ladi;

    • agar operandlardan biri long double tipiga tegishli bo`lsa ikkinchi operand ham long double tipiga keltiriladi va natija ham long double tipiga tegishli bo`ladi;

Unar amallarga ishorani o`zgartiruvchi unar minus [–] va unar plus [+] amallari kiradi. Bundan tashqari [++] va [--] amallari ham unar amallarga kiradi.
[++] unar amali qiymatni 1 ga oshirishni ko`rsatadi. Amalni prefiks ya`ni
++i ko`rinishda ishlatish oldin o`zgaruvchi qiymatini oshirib so`ngra foydalanish lozimligini, postfiks ya`ni i++ ko`rinishda ishlatishdan oldin o`zgaruvchi qiymatidan foydalanib, so`ngra oshirish kerakligini ko`rsatadi. Masalan, i qiymati 2 ga teng bo`lsin, u holda 3+(++i) ifoda qiymati 6 ga, 3+i++ ifoda qiymati 5 ga teng bo`ladi. Ikkala holda ham i qiymati 3 ga teng bo`ladi.
[--] unar amali qiymatni 1 ga kamaytirishni ko`rsatadi. Bu amal ham prefiks va postfiks ko`rinishda ishlatilishi mumkin. Masalan, i qiymati 2 ga teng bo`lsin, u holda --i ifoda qiymati 1 ga, i-- ifoda qiymati 2 ga teng bo`ladi. Ikkala holda ham i qiymati 1 ga teng bo`ladi.
Bu ikki amalni faqat o`zgaruvchilarga qo`llash mumkindir. Unar amallarning ustivorligi binar amallardan yuqoridir.
Razryadli amallar. Razryadli amallar natijasi butun sonlarni ikkilik ko`rinishlarining har bir razryadiga mos mantiqiy amallarni qo`llashdan hosil bo`ladi. Masalan, 5 kodi 101 ga teng va 6 kodi 110 ga teng.

6&5 qiyjmati 4 ga ya`ni 100 ga teng. 6|5 qiyjmati 7 ga ya`ni 111 ga teng. 6^5 qiymati 3 ga ya`ni 011 ga teng.
~6 qiyjmati 2 ga ya`ni 010 ga teng.

Bu misollarda amallar ustivorligi oshib borishi tartibida berilgandir.
Bu amallardan tashqari M<>N o`ngga razryadli siljitish amallari qo`llaniladi. Siljitish M butun sonning razryadli
ko`rinishiga qo`llaniladi. N nechta pozitsiyaga siljitish kerakligini ko`rsatadi. Chapga N pozitsiyaga surish, ya`ni 5<<0=5 , 5<<1 =10, 5<<2=20 mos keladi.
Agar operand musbat bo`lsa N pozitsiyaga o`ngga surish chap operandni ikkining N chi darajasiga bo`lib kasr qismini tashlab yuborishga mosdir. Misol uchun 5>>2=1. Bu amalning bitli ko`rinishi 101>>2=001=1. Agarda operand qiymati manfiy bo`lsa ikki variant mavjuddir: arifmetik siljitishda bo`shatilayotgan razryadlar ishora razryadi qiymati bilan to`ldiriladi, mantiqiy siljitishda bo`shatilayotgan razryadlar nollar bilan to`ldiriladi.
Razryadli surish amallarining ustivorligi o`zaro teng, razryadli inkor amalidan past, qolgan razryadli amallardan yuqoridir. Razryadli inkor amali unar qolgan amallar binar amallarga kiradi.
Nisbat amallari. Nisbat amallari qiymatlari 1 ga teng agar nisbat bajarilsa va aksincha 0 ga tengdir. Nisbat amallari arifmetik tipdagi operandlarga yoki ko`rsatkichlarga qo`llaniladi. Masalan,

1!=0 qiymati 1 ga teng;
1==0 qiymati 0 ga teng;
3>=3 qiymati 1 ga teng;
3>3 qiymati 0 ga teng;
2<=2 qiymati 1 ga teng;
2<2 qiymati 0 ga teng;

Katta [>], kichik [<], katta yoki teng [>=], kichik yoki teng [<=] amallarining ustivorligi bir xildir.
Teng [== ]va teng emas [!=] amallarining ustivorligi o`zaro teng va qolgan amallardan pastdir.
Mantiqiy amallar. Mantiqiy amallar asosan butun sonlarga qo`llanadi. Bu amallarning natijalari qo`yidagicha aniqlanadi:
x||y amali 1 ga teng agar x>0 yoki y>0 bo`lsa, aksincha 0 ga teng x&&y amali 1 ga teng agar x>0 va y>0 bo`lsa, aksincha 0 ga teng
!x amali 1 ga teng agar x>0 bo`lsa, aksincha 0 ga teng
Bu misollarda amallar ustivorligi oshib borish tartibida berilgandir. Inkor [!] amali unar qolganlari binar amallardir.
Qiymat berish amali. Qiymat berish amali [=] binar amal bo`lib chap operandni odatda o`zgaruvchi o`ng operandi odatda ifodaga teng bo`ladi. Masalan, Z=4.7+3.34;
Bitta ifodada bir necha qiymat berish amallari qo`llanilishi mumkin.
Masalan, C=y=f=4.2+2.8;.
Bundan tashqari C ++ tili da murakkab qiymat berish amali mavjud bo`lib, umumiy ko`rinishi quyidagichadir:
O`zgaruvchi_nomi amal= ifoda;
Bu yerda amal quyidagi amallardan biri bo`lishi mumkin: *,/,%,+,-, &,^,|, <<,>>. Masalan,
X+=4 ifoda x=x+4 ifodaga teng kuchlidir; X*=a ifoda x=x*a ifodaga teng kuchlidir; X/=a+b ifoda x=x/(a+b) ifodaga teng kuchlidir; X>>=4 ifoda x=x>>4 ifodaga teng kuchlidir;
Imlo belgilari amal sifatida. C ++ tilida ba`zi bir imlo belgilari ham amal sifatida ishlatilishi mumkin. Bu belgilardan oddiy () va kvadrat [] qavslardir. Oddiy qavslar binar amal deb qaralib ifodalarda yoki funksiyaga murojat qilishda foydalaniladi. Funksiyaga murojat qilish qo`yidagi shaklda amalga oshiriladi:
(). Masalan, sin(x) yoki max(a,b).
Kvadrat qavslardan massivlarga murojaat qilishda foydalaniladi. Bu murojaat quyidagicha amalga oshiriladi: []. Masalan, a[5] yoki b[n][m].
Vergul simvolini ajratuvchi belgi deb ham qarash mumkin amal sifatida ham qarash mumkin. Vergul bilan ajratilgan amallar ketma-ketligi bir amal deb qaralib, chapdan o`ngga hisoblanadi va oxirgi ifoda qiymati natija deb qaraladi. Masalan, d=4,d+2 amali natijasi 8 ga teng.
Shartli amal. Shartli amal ternar amal deyiladi va uchta operanddan iborat bo`ladi: <1-ifoda>?<2-ifoda>:<3-ifoda>. Shartli amal bajarilganda avval 1- ifoda
hisoblanadi. Agar 1-ifoda qiymati 0 dan farqli bo`lsa 2- ifoda hisoblanadi va qiymati natija sifatida qabul qilinadi, aks holda 3-ifoda hisoblanadi va qiymati natija sifatida qabul qilinadi. Masalan, modulni hisoblash: x<0?-x:x yoki ikkita son kichigini hisoblash aShuni aytish lozimki shartli ifodadan har qanday ifoda sifatida foydalanish mumkin. Agar F FLOAT tipga, N – INT tipga tegishli bo`lsa, (N > 0) ? F : N
ifoda N musbat yoki manfiyligidan qat`iy nazar DOUBLE tipiga tegishli bo`ladi. Shartli ifodada birinchi ifodani qavsga olish shart emas.

Yüklə 195,31 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin