B. J. Boltayev, A. R. Azamatov, G. A. Azamatova, B. S. Xurramov nazariya, algoritm, dastur toshkent 2013


binar amallar deb ataladi. Unar


Download 372.89 Kb.
bet27/68
Sana02.11.2023
Hajmi372.89 Kb.
#1740971
1   ...   23   24   25   26   27   28   29   30   ...   68
Bog'liq
Algoritmlash va dasturlash asoslari seriyasidan Kitob – II b. J.-fayllar.org

binar amallar deb ataladi.
Unar amallarga quyidagilar kiradi: not (mantiqiy yoki razryad bo‘yicha
inkor), + (plyus, ya’ni ishorani saqlab qolish), – (minus, ya’ni ishorani al-
mashtirish), in (biror qiymatni to‘plamga tegishliligini aniqlash), @ (ixtiyoriy op-
erandga qo‘laniladi va natija operand adresi bo‘ladi). Boshqa barcha arifmetik,
mantiqiy, taqqoslash, razryadi bo‘yicha va to‘plamlarga ta’sir amallari binar
amallardir.



37
Pascalda ifodalar (yoki operandlar) hosil qilish uchun quyidagi amallar guruhi


qo‘llaniladi:

Guruh nomi


Bajarilish tartibi
Amal
Unar
1
not, @, –
Multiplikativ
2
*, /, div, mod, and, shl , shr
Additiv
3
+, or, xor
Munosabat
4
in, =, <>, >, >=, <, <=

Agar biror amal bajarilish tartibini oldinga surish kerak bo‘lsa qavs ichiga


yozish yetarli.
Amallarni qo‘llash qoidalari quyidagi jadvalda keltirilgan:

Amal 
Vazifasi 
Operandlar turi 
Natija turi 
not
Inkor
Mantiqiy
Mantiqiy
not
Razryad bo‘yicha inkor
Ixtiyoriy butun
Operand turi
@
Adres
Ixtiyoriy
Ko‘rsatkich

Ayirish
Ixtiyoriy butun
Butun

Ayirish
Ixtiyoriy haqiqiy
Haqiqiy

To‘plamlarda ayirish
To‘plam
To‘plam
*
Ko‘paytirish
Ixtiyoriy butun
Butun
*
Ko‘paytirish
Ixtiyoriy haqiqiy
Haqiqiy
*
To‘plamlarni kesishtirish
To‘plam
To‘plam
/
Bo‘lish
Ixtiyoriy haqiqiy
Haqiqiy
div
Butun bo‘lish
Ixtiyoriy butun
Butun
mod
Bo‘lishdagi qoldiq
Ixtiyoriy butun
Butun
and
Mantiqiy VA
Mantiqiy
Mantiqiy
and
Razryad bo‘yicha VA
Ixtiyoriy butun
Butun
shl
Chapga surish
Ixtiyoriy butun
Butun
shr
O‘ngga surish
Ixtiyoriy butun
Butun
+
Qo‘shish
Ixtiyoriy butun
Butun
+
Qo‘shish
Ixtiyoriy haqiqiy
Haqiqiy
+
Satrlarni ulash
Satrli
Satrli
+
To‘plamlarni birlashtirish
To‘plam
To‘plam
or
Mantiqiy YOKI
Mantiqiy
Mantiqiy
or
Razryad bo‘yicha YOKI
Ixtiyoriy butun
Butun
xor
Mantiqiy cheklangan
YOKI
Mantiqiy
Mantiqiy
xor
Razryad bo‘yicha XOR
Ixtiyoriy butun
Butun
in
Tegishlilik
To‘plam
Mantiqiy
=
Teng
Ixtiyoriy sodda, satrli,
to‘plam
Mantiqiy



38
<>


Teng emas
Ixtiyoriy sodda, satrli,
to‘plam
Mantiqiy
<
Kichik
Ixtiyoriy sodda, satrli
Mantiqiy
<=
Kichik yoki teng
Ixtiyoriy sodda, satrli,
to‘plam
Mantiqiy
>
Katta
Ixtiyoriy sodda, satrli
Mantiqiy
>=
Katta yoki teng
Ixtiyoriy sodda, satrli,
to‘plam
Mantiqiy

Butun sonlar ustida / (bo‘lish) amali bajarish natijasi doimo haqiqiy bo‘ladi.


Masalan, 15/3= 0.5000000000E+1, 1/1= 0.1000000000E+1. Shining uchun butun
sonlar ustida div (butun bo‘lish) va mod (qoldiq) amallari qo‘llaniladi. Masalan:
25 div 4 = 6; 25 mod 4 = 1; 49 div 7 = 7; 49 mod 7 = 0.
Butun sonlar ustidagi boshqa arifmetik amallarni qo‘llaganda ham xato natija-
ga kelish mumkin. Bu xatolik natijaviy son amal bajarilayotgan turning che-
garaviy qiymatlaridan chiqib ketishi oqibatida yuzaga keladi. Masalan, byte turida
255+1= 0, 10–12= 254, 100*10=232, chunki byte turining qiymatlari 0..255
oraliqqa tegishli.
Taqqoslash amallari, agar turlar mos kelsa (sonliga sonli, …), taqqoslash shar-
ti bajarilsa True mantiqiy qiymat, aks holda False mantiqiy qiymat hosil qiladi.
Masalan, 5<6 shartning natijasi True, 5<=6 shartning natijasi True, 5=6 shartning
natijasi False, 5>=6 shartning natijasi False, 5>6 shartning natijasi False, 5<>6
shartning natijasi True.
Mantiqiy amallar butun hamda mantiqiy turlarga qo‘llanishi mumkin. Agar
operandlar butun son bo‘lsa, u holda natija ham butun bo‘ladi, bunda natijaning
bitlari (ikkilik razryadi) operandlar bitlaridan quyidagilarga asosan hosil qilinadi:

INTEGER turdagi operandlar ustidagi mantiqiy amallar (razryadi bo‘yicha)


1-operand
2-operand
not
and
or
xor
1

0



0

1



1
1

1
1
0
1
0

0
1
1
0
1

0
1
1
0
0

0
0
0

Mantiqiy turdagi operandlar ustida amallar quyidagicha amalga oshiriladi:

Mantiqiy turdagi operandlar ustidagi mantiqiy amallar
1-operand
2-operand
not
and
or
xor
True

False



False

True



True
True

True
True
False



39
True


False

False
True
True
False
True

False
True
True
False
False

False
False
False

Quyidagi misollar razryadi bo‘yicha surish amallari ishini izohlaydi (N va M


operandlar ixtiyoriy butun turda bo‘lishi mumkin):
a) N shl M – bu amal ishi N dagi ma’lumotni M razryad chapga surish, bo‘sh
qolgan kichik razryadlar 0 bilan to‘ldiriladi, masalan: 4 shl 2 = 16 (0...0100 
0…010000), 6 shl 2 = 24 (0...0110  0…011000);
b) N shr M – bu amal ishi N dagi ma’lumotni M razryad o‘ngga surish, bo‘sh
qolgan katta razryadlar 0 bilan to‘ldiriladi, masalan: 4 shr 2 =1 (0…0100 
0…01), 6 shl 2 =1 (0...0110  0…01);
d) not N – bu amal ishi N dagi ma’lumotni razryad bo‘yicha mantiqan inkor
etish, ya’ni har bir razryaddagi 1 ni 0 ga, 0 ni 1 ga almashtiradi, masalan: not 4 =
– 5 (not (0…0100)  1…1011), not 11 = –12 (not (0…01011)  1…10100).
e) N and M – bu amal N dagi ma’lumotni M dagi ma’lumot bilan razryad
bo‘yicha mantiqan ko‘paytiradi, masalan: 4 and 2 =0 ((0…0100) and (0…0010)
 0…0000), 6 and 2 = 10 ((0…0110) and (0…0010)  0…0010), 11 and 7 = 3
((0…01011) and (0…0111)  0…0011);
f) N or M – bu amal N dagi ma’lumotni M dagi ma’lumot bilan razryad
bo‘yicha mantiqan qo‘shadi, masalan: 4 or 2 = 6 ((0…0100) or (0…0010) 
0…0110), 6 or 2 = 6 ((0…0110) or (0…0010)  0…0110), 11 or 7 = 15
((0…01011) or (0…0111)  0…1111);
g) N xor M – bu amal N dagi ma’lumotni M dagi ma’lumot bilan razryad
bo‘yicha o‘xshashlikni inkor etadi, masalan: 4 xor 2 = 6 ((0…0100) xor
(0…0010)  0…0110), 6 xor 2 = 4 ((0…0110) xor (0…0010)  0…0100), 11
xor 7 = 12 ((0…01011) xor (0…0111)  0…1100).
Satrlar ustidagi amallarni quyidagicha izohlash mumkin:
A) S1+S2 – bu amal S1 va S2 satrlarni kelish tartibi bo‘yicha ulaydi, masalan:
S1=‘A‘, S2=‘da‘ bo‘lsa, natijaviy satr ‘Ada‘, S1=‘AAAA…A‘ (‘A‘ dan 250 ta),
S2=‘BB…B‘(‘B‘ dan 100 ta) bo‘lsa, natijaviy satr ‘AAAA…ABBBBB‘ (‘A‘ dan
250 ta va ‘B‘ dan 5 ta, ya’ni 255 baytdan ortgan xotiraga sig‘may qolgan ‘B‘ lar
tashlab yuboriladi);
B) S1 = S2 – satrlar teng bo‘lsa, ya’ni ular ustma-ust tushsa True, aks holda
False mantiqiy qiymat hosil qiladi, masalan: ‘AdA‘=‘AdA‘ yoki ‘ ‘=‘ ‘ yoki
‘2107‘=‘2107‘ bo‘lsa natija True, ‘ADA‘=‘AdA‘ yoki ‘000‘=‘00‘ bo‘lsa natija
False;
D) S1 <> S2 – satrlar teng bo‘lmasa, ya’ni ulardagi belgilar soni teng
bo‘lmasa yoki belgilar soni teng bo‘la turib biror teng tartib raqamli o‘rindagi bel-
gilari farqlansa True, aks holda False mantiqiy qiymat hosil qiladi, masalan:
‘AdA‘<>‘Ad‘ yoki ‘AdA‘<>‘AAd‘ yoki ‘AdA‘<>‘Adb‘ yoki ‘AdA‘<>‘Ada‘ yoki
‘001‘<>‘01‘ yoki ‘10‘<>‘01‘ bo‘lsa natija True, ‘AdA‘<>‘AdA‘ yoki



40
‘2004‘<>‘2004‘ bo‘lsa natija False;


E) S1ASCII kodi S2 ni 1-belgisi ASCII kodidan kichik bo‘lsa, yoki ikkala satrning 1-
belgilari ASCII kodi teng hamda S1 ni 2-belgisi ASCII kodi S2 ni 2-belgisi ASCII
kodidan kichik bo‘lsa, yoki ikkala satrning 1-belgilari ASCII kodi teng va 2-
belgilari ASCII kodi teng hamda S1 ni 3-belgisi ASCII kodi S2 ni 3-belgisi ASCII
kodidan kichik bo‘lsa, …, yoki biror k uchun ikkala satrning k gacha bo‘lgan, mos
ravishda, har bir o‘rindagi belgilari ASCII kodi teng hamda S1 ni (k+1)-belgisi
ASCII kodi S2 ni (k+1)-belgisi ASCII kodidan kichik bo‘lsa, u holda True, aks
holda False mantiqiy qiymat qabul qiladi, masalan: ‘A‘<‘a‘ yoki ‘Ab‘<‘a‘ yoki
‘ABCD‘<‘AC‘ yoki ‘‘<‘ ‘ yoki ‘ABCDEFGH‘<‘B‘ yoki ‘19‘<‘20‘ yoki
‘00222‘<‘010‘ amallar natijasi True, ‘A‘<‘A‘ yoki ‘Ab‘<‘A‘ yoki ‘Ab‘<‘AB‘ yo-
ki ‘ABCdDEFGH‘<‘ABCDefgh‘ yoki ‘31‘<‘2100‘ yoki ‘1‘<‘0999‘ amallar na-
tijasi False;
F) S1<=S2 – bu amal S1 satr S2 satrdan “kichik yoki teng” bo‘lsa, ya’ni S1 ni
1-belgisi ASCII kodi S2 ni 1-belgisi ASCII kodidan kichik yoki teng bo‘lsa, yoki
ikkala satrning 1-belgilari ASCII kodi teng hamda S1 ni 2-belgisi ASCII kodi S2
ni 2-belgisi ASCII kodidan kichik yoki teng bo‘lsa, yoki ikkala satrning 1-
belgilari ASCII kodi teng va 2-belgilari ASCII kodi teng hamda S1 ni 3-belgisi
ASCII kodi S2 ni 3-belgisi ASCII kodidan kichik yoki teng bo‘lsa, …, yoki biror
k uchun ikkala satrning k gacha bo‘lgan, mos ravishda, har bir o‘rindagi belgilari
ASCII kodi teng hamda S1 ni (k+1)-belgisi ASCII kodi S2 ni (k+1)-belgisi ASCII
kodidan kichik yoki teng bo‘lsa, u holda True, aks holda False mantiqiy qiymat
qabul qiladi, masalan: ‘A‘<=‘a‘ yoki ‘A‘<=‘A‘ yoki ‘Ab‘<=‘a‘ yoki
‘ABD‘<=‘AC‘ yoki ‘‘<=‘ ‘yoki ‘ ‘<=‘ ‘ yoki ‘ABCDEF‘<=‘B‘ yoki
‘ABCD‘<=‘ABCD‘ yoki ‘20‘<=‘20‘ yoki ‘19‘<=‘20‘ yoki ‘00222‘<=‘010‘ amal-
lar natijasi True, ‘a‘<=‘A‘ yoki ‘A ‘<=‘A‘ yoki ‘Ab‘<=‘AB‘ yoki
‘ABCdDEFGH‘<=‘ABCDefgh‘ yoki ‘3000‘<=‘2100‘ yoki ‘1‘<‘0999‘ amallar
natijasi False;
H) S1>S2 amali E) holda, S1>=S2 amali F) holda S1 va S2 larni o‘rnini al-
mashtirgandagi holga teng kuchli.

Download 372.89 Kb.

Do'stlaringiz bilan baham:
1   ...   23   24   25   26   27   28   29   30   ...   68




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling