Inkrement va dekrement operatorlari
Inkrement (QQ) va dekrement (--) operatorlari xaQida 1-bo’limda to’xtalib o’tilgan edi. Bu operatorlarning o’ziga xos xususiyati algoritmga pereminon siklini o’zgartirish vazifasi yuklatilganda ularni axamiyatini oshadi. Inkrement va dekrement operatorlarini Qanday ishlashini Quyida ko’rib chiQamiz. Inkrement operatori o’zining operandasiga birlik Qo’shsa, dekrement operatori esa o’zining operandasidan birlik ayirib tashlaydi. O’z navbatida
x-xq1 operatori xuddi shu kabi funksiyani bajaradi.
va xQ operatori esa
xQxq1 xuddi mazkur funksiyaga o’xshash vazifani bajaradi
Bu ikki operatorlar prefiks siftida opreandagacha yoki postfiks sifatida opreandadan keyin xam ko’rsatilishi mumkin. Masalan
G’ y-2 operatorini Quyidagicha yozish mumkin.
-x operator operandagacha ko’rsatiladi yoki
x-G’G’ operator operandadan keyin ko’rsatiladi.
Mazkur namunada inkrement operatori ikki usul bilan ko’rsatilgan bo’lib, ular orasida farQ yo’Q. Agar inkrement va dekrement operatorlari ifodaning asosiy Qismi sifatida Qo’llanilsa, operatorlar operandaga nisbatan joylashuviga nisbatan blok kod algoritmini bajarilishiga bog’liQ. Agar operator operandaga nisbatan oldinda joylashsa S# aralashma mazmunini kattalashtiradi. Agar operator operandadan so’ng ko’rsatilsa, C# aralashma ifodasini kattalashtiradi va buni Quyidagi misolda ko’rishimiz mumkin.
x 0
Q u
Inkrement va dekrement operatorlarining mazkur xususiyatlari algoritmlar tuzishda Qo’llaniladi.
Tenglovchi va mantiQiy operatorlar
Tenglovchi operator atamasidagi tenglovchi so’zining ma’nosi bir amalni ikkinchisiga solishtirgan xoldagi berilgan baxo sifatida va mantiQiy so’zi esa ifodadagi amallarni bog’lash usuli deb Qarash mumkin. Tenglovchi operatorlar natijali amal bajarishi bulevo moxiyatli deb xisoblash mumkin va bu operatorlar ko’p xollarda mantiQiy operatorlar bilan birgalikda ishlaydi. Shuning uchun ularni birgalikda ko’rib chiQish mumkin.
Quyida tenglovchi operatorlar keltirilgan.
Opreator
|
Mazmuni
|
--
|
Teng
|
-_
|
Teng emas
|
>
|
Dan katta
|
<
|
Dan kichik
|
>-
|
Katta yoki teng
|
|
Kichik yoki teng
|
Quyida esa mantiQiy operatorlar keltirilgan
Operator
|
Mazmuni
|
&
|
AND (va)
|
!
|
OR (yoki)
|
^
|
XOR (yoki dan mustasno)
|
&&
|
Short circuit AND (va tez operatori)
|
!!
|
Short circuit OR ( yoki tez operatori)
|
1
|
NOT (yo’Q)
|
Tenglovchi va mantiQiy operatorlar amallarni bajarish natijasi mazmun tipi xisoblanadi.
S# da operatorlar barcha ob’ektlar uchun ularni teng va teng bo’lmagan predmet bilan solishtirish uchun xam Qo’llanilishi mumkin. Shuningdek barcha tenglovchi operatorlar barcha turdagi sonli ma’lumotlar uchun Qo’llaniladi. BiroQ bool tipidagi ifodalar faQatgina tenglik va tenglik bo’lmagan predmetlar uchun solishtirilishi mumkin bo’lsada, true va false ifodalari tartiblanmagan. Masalan true > false ifodasi S# da mazmunga ega emas. MantiQiy operatorlar uchun esa operanda bool tipida bo’lishi zarur. &, !,^, 1 operatorlari o’z navbatida AND, OR, XOR, NOT kabi mantiQiy operatsiyalar asoslari Qullab-Quvvatlaydi va u Quyidagi tablitsada tasvirlangan.
p
|
q
|
p&q
|
p
|
q
|
p^q
|
false
|
false
|
false
|
false
|
false
|
true
|
true
|
false
|
false
|
true
|
true
|
false
|
false
|
|
false
|
true
|
true
|
true
|
true
|
true
|
true
|
true
|
false
|
false
|
Tablitsadan ko’rinib turibdiki, amal natijasiga ko’ra XOR operatorining faQatgina bitta operandasi true mazmuniga ega bo’lsa, XOR operatori true mazmuniga ega bo’ladi.
Quyida tenglovchi va mantiQiy operatorlar tomonidan bajarilgan dasturni ko’rib chiQamiz.
G’G’ Dastur faQat mantiQiy va tenglovchi operatorlar yordamida G’G’Qilingan.
using system
class Rel.Log.Ops {
public static void Main () {
int i, j;
bool bl, b2;
1-10;
j-11;
if (1if (1if (1 !-j) Console.WriteLine (“1!-j”);
if (1--j) Console.WriteLine (“Mazkur Qator kiritilmaydi.”) ;
if (1>-j) Console.WriteLine (“Mazkur Qator kiritilmaydi.”) ;
if (1>j) Console.WriteLine (“Mazkur Qator kiritilmaydi.”) ;
b1-true
b2-false
if (b1 & b2) Console.WriteLine (“Mazkur Qator kiritilmaydi.”) ;
if (b1 & b2) Console.WriteLine (“b1 & b2 ifodasini xisoblash natijasi true Qiymatiga ega bo’ladi.”)
if (b1 ! b2) Console.WriteLine (“(b1 & b2) ifodasini xisoblash natijasi true Qiymatiga ega bo’ladi.”)
if (b1 ^ b2) Console.WriteLine (“b1 ^ b2 ifodasini xisoblash natijasi true Qiymatiga ega bo’ladi.”)
Dasturni bajarilishi Quyidagicha bo’ladi:
< j
<-j
1 !-j
Do'stlaringiz bilan baham: |