Dasturlash I 5-hafta mavzu: Ichma ich joylashgan If shartli operatori. Switch tanlash operatori



Download 2,75 Mb.
Sana06.01.2022
Hajmi2,75 Mb.
#321616
Bog'liq
ma'ruza-5



DASTURLASH I
5-HAFTA


Mavzu: Ichma ich joylashgan If shartli operatori. Switch tanlash operatori.


Hafta

Mavzu

Mashg‘ulot turi

Soat

Mashg‘ulot mazmuni

5-haf-ta

Tarmoqlanuv-chi hisoblash jarayonlarini dasturlash

5-Ma’ruza

2

Ichma ich joylashgan If shartli operatori. Switch tanlash operatori.

Lab_5.1

2

Ichma ich joylashgan If shartli operatoridan foydalanib dastur tuzish

Lab_5.2

2

Switch tanlash operatoridan foydalanib dastur tuzish

Lab_5.3

2

Switch tanlash operatoridan foydalanib dastur tuzish

5-Mustaqil ish

2

Topshiriqda berilgan savollarga javob yozish

1

Test savollariga javob berish

5

Dastur tuzishga doir topshiriqlarni bajarish


5-MA’RUZA

MAVZU: ICHMA ICH JOYLASHGAN IF SHARTLI OPERATORI. SWITCH TANLASH OPERATORI.

Reja:

    1. Ichma-ich joylashgan if va ko`p tarmoqli if-else operatorlari;

    2. Amaliy qism: Tana vazn ko`rsatkichini hisoblash;

    3. Tasodifiy sonlarni hosil qilish;

    4. Amaliy qism: Kabisa yilini aniqlash;

    5. Amaliy qism: Lotoreya o`yini;

    6. Switch operatori;

    7. Shartli ifodalar.

    8. Operatorlarning bajarilish darajalari


Kalit so‘zlar:

  • algoritm

  • bo‘lish operatori

  • butun tur

  • C-stili

  • dizayn tizimi

  • haqiqiy nuqtali raqam

  • haqiqiy tur

  • identifikator

  • ifodalash

  • ifodani belgilash

  • ikkilik tur

  • increment kod va test

  • increment operator

  • KIN

  • ma’lumot turi

  • o‘zgarmas

  • o‘zgarmas kalit so‘z

  • o‘zgaruvchi

  • o‘zgaruvchi maydoni

  • o‘zgaruvchilarni e’lon qilish

  • oddiy tur

  • operandlar

  • operator

  • operatorni belgilash

  • operatorni taqsimlash

  • postdekrement

  • postinkrement

  • predekrement

  • preinkrement

  • psevdokod

  • qisqa tur

  • so‘zma-so‘z

  • talablar spesifikatsiyasi

  • tizim tahlili

  • toshish

  • toshmagan

  • UNIX davri

  • uzun tur

yashirin tur

5.1. Ichma-ich joylashgan if va ko`p tarmoqli if-else operatorlari

Key Point. Ichma-ich joylashgan if operatorini shakllantirish uchun if operatorini boshqa bir if operatori ichiga joylashtirish mumkin.

if yoki if-else operatorlari tarkibida boshqa if yoki if-else operatorlarini ishlatgan holda istalgancha C++ tiliga muvofiq ko`rsatma satrlarini yozish mumkin. Ichkarida yozilgan if operatorini tashqi if uchun ichki deb atash mumkin. Ichki if da yana boshqa ichki if operatori bo`lishi mumkin. Shu narsa aniqki, bu yerda ichki if operatorlarning soni chegaralanmagan. Misol sifatida quyidagi ichma-ich if operatorini ko`ramiz:

if(i > k)

{

if(j > k)



cout << "i va j lar k dan katta"<< endl;

}

else



cout << "i k dan kichik yoki teng"<< endl;

Bu yerda if(j > k) operatori if(i > k) operatorining ichida kelyapti. Ichma-ich if operatorlaridan ko`plab tanlovlarni qo`llash uchun foydalanish mumkin. Masalan, 5.1-rasmda grade o`zgaruvchisiga baho qiymatini ta’minlashning bir nechta holatlar uchun turli tanlovlarni qo`llash ko`rsatilgan.





5.1-rasm. (b) da ko`p tarmoqli if-else operatoridan foydalangan holda ko`p sonli tanlovlar (alternativlar) uchun maqbul format keltirilgan.

Mazkur if operatori ishga tushganda 5.2-rasmda ko`satilgani kabi jarayon sodir bo`ladi. Birinchi bo`lib (score >= 90.0) sharti tekshiriladi. Agar u true qiymatni olsa, grade A ga teng bo`ladi. Agar u false bo`lsa, ikkinchi shart (score >= 80.0) tekshiriladi. Agar u true qiymatni olsa, grade B ga teng bo`ladi. Agar u false bo`lsa, ikkinchi shart uchinchi shart tekshiriladi. Mazkur jarayon shartlar true olmaguncha shu zaylda davom etaveradi. Oxirgi qismda grade ning F ga tengligi olinadi. Buning uchun ungacha bo`lgan barcha shartlar false (yolg`on) qiymat olishi lozim.





5.2-rasm. Bahoni belgilash uchun if-else – ko`p tarmoqli operatordan foydalanish mumkin.

5.1-rasmda berilgan (a) va (b) ko`rinishdagi kodlar o`zaro ekvivalentdirlar, ammo qo`llash uchun maqbuli – (b) ko`rinish. Bu ko`rinish ko`p tarmoqli if-else operatori deb ataladi. Bu ko`rinishda yozish shart qo`yishni va kodni o`qib olishni osonlashtiradi.



Nazorat.

5.1. Faraz qilaylik, x=3 va y=2; Quyidagi kod bajarilishi natijasida konsol oynada nima chiqishini ko`rsating. Agar x=3, y=4 bo`lsachi? Agar x=2, y=2 bo`lsachi? Ushbu kodning blok-sxemasini chizing.



if(x > 2)

{

if(y > 2)

{

int z = x + y;

cout << "z = "<< z << endl;

}

}

else



cout << "x = "<< x << endl;

5.2. Faraz qilaylik, x=2 va y=3; Quyidagi kod bajarilishi natijasida konsol oynada nima chiqishini ko`rsating. Agar x=3, y=2 bo`lsachi? Agar x=3, y=3 bo`lsachi?

if(x > 2)

if(y > 2)

{

int z = x + y;

cout << "z = "<< z << endl;

}

else

cout << "x = "<< x << endl;

5.3. Quyidagi kodning qaysi joyi xato?

if(score >= 60.0)

cout << "Grade is D";



else if(score >= 70.0)

cout << Grade is C";



else if(score >= 80.0)

cout << Grade is B";



else if(score >= 90.0)

cout << "Grade is A";



else

cout << "Grade is F";


5.2. Amaliy qism: Tananing vazn ko`rsatkichini hisoblash

Key Point. Ichma-ich if operatoridan foydalanib tananing vazn ko`rsatkichi (TVK)ni hisoblovchi dastur tuzish mumkin

Insonning tana vazn ko`rsatkichi – uning vazni va bo`yining uzunliklariga asoslanib hisoblangan salomatlik koeffisientidir. Insonning salomatlik koeffisientini hisoblash uchun uning kilogramlardagi og`irligini metrlardagi bo`yi o`lchamining kvadratiga bo`lish kerak. 20 yoki undan katta yoshdagi insonning salomatligini hisoblash talqini quyidagicha:



TVK

Talqini

TVK < 18.5

Ozg‘in

18.5 TVK < 25.0

Normal holat

25.0 TVK < 30.0

Og‘ir vazn

30 TVK

Semizlik

5.1-kodli ro`yxatda foydalanuvchini inson vaznini funtlarda va bo`yining uzunligini dyumlarda kiritishga undovchi va bu qiymatlarni kilogramarda va metrlarda hisoblab, TVK ni chiqaruvchi dastur berilgan.

5.1-kodli ro`yxat. TVKniHisoblash.cpp

1 #include

2 using namespace std;

3

4 int main()



5 {

6 // Foydalanuvchini vaznni funtlarda kiritishga undash

7 cout << "Vaznni funtlarda kiriting: ";

8 double vazn;

9 cin >> vazn;

10


11 // Uzunlikni dyumlarda kiritishga undash

12 cout << "Uzunlikni dyumlarda kiriting: ";

13 double uzunlik;

14 cin >> uzunlik;

15

16 const double FUNT_KILO = 0.45359237; // o`zgarmas



17 const double DYUM_METR = 0.0254; // o`zgarmas

18


19 // TVK ni hisoblash

20 double vaznKilogramda = vazn * FUNT_KILO;

21 double uzunlikMetrda = uzunlik * DYUM_METR;

22 double tvk = vaznKilogramda /

23 (uzunlikMetrda * uzunlikMetrda);

24


25 // Natijani chiqarish

26 cout << "TVK = "<< tvk << endl;

27 if(tvk < 18.5)

28 cout << "Ozg`inlik"<< endl;

29 else if(tvk < 25)

30 cout << "Normal holat"<< endl;

31 else if(tvk < 30)

32 cout << "Og`ir vazn"<< endl;

33 else

34 cout << "Semizlik"<< endl;

35

36 return 0;



37 }


Vaznni funtlarda kiriting: 146

Uzunlikni dyumlarda kiriting: 70

TVK = 20.9486

Normal holat



Dasturda o`qishni osonlashtirish maqsadida o`zgarmaslardan foydalanilgan (16-17-satrlar).
5.3. Tasodifiy sonlarni hosil qilish

Key Point. rand () funksiyasini qo`llab tasodifiy butun son olish mumkin.

Faraz qilaylik, ayirish amalini hisoblashni baholovchi dastur tuzishni istaymiz. Dastur ikkita butun sonlar (son1, son2; )ni tasodifiy hosil qiladi va konsol oynada “9-2 nechi?” kabi savol chiqariladi. O`quvchi javobni kiritadi va dastur uning javobi to`g`ri yoki noto`g`ri ekanligini ko`rsatadi.

Tasodifiy sonni hosil qilish kutubxonasidagi rand () funksiyasini qo`llagan holda amalga oshiriladi. Bu funksiya 0 va RAND_MAX oralig`idan olingan biror tasodifiy sonni qaytaradi. RAND_MAX belgilab olingan o`zgarmas platformasi. Uning qiymati C++ da 32767 ga teng.

rand () sonlari oldindan aniqlangan tasodifiy sonlardir. Ya’ni, unda har doim bir xil tizim ishlaydi, rand () bir xil ketma-ketlikdagi sonlarni har gal chiqaraveradi. Shaxsiy kompyuterda, masalan, ushbu ko`rsatma satri har doim 130, 10982, va 1090 sonlarini hosil qiladi:

cout << rand() << endl << rand() << endl << rand() << endl;

Nima uchun? random () funksiyasi algoritmi tasodifiy sonlarni hosil qilishda saralangan deb nomlanuvchi qiymatlardan foydalanadi. Odatga ko`ra saralangan qiymat 1 ga teng. Agar saralangan qiymatni turli sonlar uchun aniqlasak, turli tasodifiy sonlar chiqadi. Saralangan sonni tanlash uchun kutubxonasidan srand(seed) funksiyasidan foydalaniladi. Shuning uchun har safar har xil saralangan qiymatlarni olish uchun time (0) funksiyasidan foydalanib, dasturni turli vaqtlar oraliqlarida ishga tushirish mumkin. 3-ma’ruzada korib chiqqanimizdek, time (0) funksiyasi kutubxonasidan olinai va GMT 1970-yil, 1-yanvarga o`tar kechasidan hozirgacha o`tgan vaqtni soniyalarda chiqarib beradi. Quyidagi kod tasodifiy saralashdan tasodifiy butun sonlarni olish imkonini beradi:

srand(time(0));

cout << rand() << endl;

0 va 9 sonlari orasidagi tasodifiy sonni olish uchun quyidagi ko`rsatma satridan foydalaniladi:

rand() % 10

Dasturning ishlash prinsipini quyidagicha sozlash mumkin:



1-qadam: son1 va son2 o`zgaruvchilari uchun ikkita butun son hosil (generatsiya) qilinadi;

2-qadam: Agar son1 < son2 bo`lsa, ularning qiymatlari o`zaro almashtiriladi;

3-qadam: O`quvchini “son1-son2”ning qiymatini kiritishga undash bajariladi;

4-qadam: O`quvchining javobi tog`ri yoki noto`g`ri ekanligi chiqariladi.

Dasturning to`liq kodi 5.2-kodli ro`yxatda keltirilgan.



5.2-kodli ro`yxat. Ayirma.cpp

1 #include

2 #include // for time function

3 #include // for rand and srand functions

4 using namespace std;

5

6 int main()



7 {

8 // ikkita butun son generatsiya qilinadi

9 srand (time(0));

10 int son1 = rand() % 10;

11 int son2 = rand() % 10;

12


13 // 2. Agar son1 < son2 bo`lsa, qiymatlari almashtiriladi

14 if(son1 < son2)

15 {

16 int temp = son1;



17 son1 = son2;

18 son2 = temp;

19 }

20


21 // 3.O`quvchini “son1-son2” qiymatini kiritishga undash

22 cout <

23 int javob;

24 cin >> javob;

25

26 // 4. Javobning bahosi va natijani chiqarish



27 if (son1 - son2 == javob)

28 cout << "To`g`ri javob!";

29 else

30 cout << "Javobingiz noto`g`ri, "<< son1 << " - "<< son2

31 << " ning qiymati "<< (son1 - son2) << endl;

32


33 return 0;

34 }



5 – 2 ning qiymati nimaga teng? 3

To`g`ri javob!






4 – 2 ning qiymati nimaga teng? 1

Javobingiz noto`g`ri, 4 – 2 ning qiymati 2





5.4. Amaliy qism: Kabisa yilini aniqlash

Key Point. Agar yil 4 ga (100 ga emas) yoki 400 ga karrali bo`lsa u kabisa yili hisoblanadi

Quyidagi mantiqiy ifoda yordamida yilning kabisa yili ekanini aniqlash mumkin:

// Kabisa yili 4 ga karrali

boolKabisaYili = (yil % 4== 0);

// Kabisa yili 4 ga karrali, ammo 100 ga emas

KabisaYili = KabisaYili && (yil % 100!= 0);

// Kabisa yili 100 ga emas 4 ga karrali yoki 400 ga karrali

KabisaYili = KabisaYili || (yil % 400== 0);

Yoki bu ifodalarning barchasini birlashtirish mumkin:

KabisaYili = (yil % 4== 0&& yil % 100!= 0) || (yil % 400== 0);

5.3-kodli ro`yxatda foydalanuvchini yilni kiritishga undash va yilning kabisa yili ekanligini yoki emasligini tekshiruvchi dastur kodi keltirilgan.

5.3-kodli ro`yxat. KabisaYili.cpp

1 #include

2 using namespace std;

3

4 int main()



5 {

6 cout << "Yilni kiriting: ";

7 int yil;

8 cin >> yil;

9

10 // Yilning Kabisa yili ekanligini tekshirish



11 bool KabisaYili =

12 (yil % 4== 0&& yil % 100!= 0) || (yil % 400== 0);

13

14 // Natijani chiqarish



15 if(KabisaYili)

16 cout << yil << " – Kabisa yili!" << endl;

17 else

18 cout << yil << " Kabisa yili emas!" << endl;

19

20 return 0;



21 }


Yilni kiriting: 2008

2008 – Kabisa yili!






Yilni kiriting: 1900

2008 Kabisa yili emas!





5.5. Amaliy qism: Lotoreya o`yini

Key Point. Lotereya dasturi tasodifiy sonlarni hosil qilish, raqamlarni taqqoslash va mantiqiy operatorlardan foydalanishni talab qiladi.

Faraz qilaylik, lotereya o`ynash uchun dastur tuzmoqchimiz. Dastur ikki xonali, tasodifiy sonni generatsiya qiladi, foydalanuvchini ikki xonali sonni kiritishga undaydi va quyida keltirilgan qoida asosida uning g`olib yoki g`olib emasligini aniqlaydi:



  1. Agar foydalanuvchi kiritgan raqamlar ketma-ketligi aynan yutuqli son bo`lsa, tartib-qoidasiga ko`ra 10.000$ yutuq pulini oladi.

  2. Agar foydalanuvchi kiritgan barcha raqamlar yutuqli son tarkibida mavjud bo`lsa, 3.000$ yutuq pulini oladi.

  3. Agar foydalanuvchi kiritgan raqamlardan faqat bittasi yutuqli son tarkibida mavjud bo`lsa, 1.000$ yutuq pulini oladi.

Eslatib o`tamiz, kiritilgan sonning tarkibida 0 raqami ham bo`lishi mumkin. Agar kiritilgan son 10 dan kichik bo`lsa, uning oldidan 0 ni qo`shib qo`yish ko`zda tutiladi. Masalan, agar 8 kiritilgan bo`lsa u 08 deb qabul qilinadi va 0 kiritilsa u dasturda 00 kabi qabul qilinadi. 5.4-kodli ro`yxatda ushbu dasturning to`liq kodi berilgan.
5.4-kodli ro`yxat. Lotereya.cpp

1 #include

2 #include <ctime> // time (0) funksiyasi uchun

3 #include <cstdlib> // rand va srand funksiyasi uchun

4 using namespace std;

5

6 int main()



7 {

8 // Yutuqli son generatsiyasi

9 srand(time(0));

10 int lotoreya = rand() % 100;

11

12 // Foydalanuvchini o`ylagan sonni kiritishga undash



13 cout << "O`zingiz o`ylagan ikki xonali sonni kiriting: ";

14 int son;

15 cin >> son;

16


17 // Get digits from lotoreya

18 int yutuqliSon1 = lotoreya / 10;

19 int yutuqliSon2 = lotoreya % 10;

20


21 // son dan raqamlarni olish

22 int sonRaqam1 = son / 10;

23 int sonRaqam2 = son % 10;

24


25 cout << "Lotoreya soni "<< lotoreya << endl;

26


27 // son ni tekshirish

28 if (son == lotoreya)

29 cout << "Bexato urinish: 10.000$ yutdingiz!"<< endl;

30 else if(sonRaqam2 == yutuqliSon1

31 && sonRaqam1 == yutuqliSon2)

32 cout << "Barcha raqamlar topildi: 3.000$ yutdingiz!"<< endl;

33 else if (sonRaqam1 == yutuqliSon1

34 || sonRaqam1 == yutuqliSon2

35 || sonRaqam2 == yutuqliSon1

36 || sonRaqam2 == yutuqliSon2)

37 cout << "Bitta raqam topildi: 1.000$ yutdingiz!"<< endl;

38 else

39 cout << "Uzr, yutuq yo`q"<< endl;

40


41 return 0;

42 }



O`zingiz o`ylagan ikki xonali sonni kiriting: 00

Lotoreya soni 0

Bexato urinish: 10.000$ yutdingiz!





O`zingiz o`ylagan ikki xonali sonni kiriting: 45

Lotoreya soni 54

Barcha raqamlar topildi: 3.000$ yutdingiz!





O`zingiz o`ylagan ikki xonali sonni kiriting: 23

Lotoreya soni 34

Bitta raqam topildi: 1.000$ yutdingiz!





O`zingiz o`ylagan ikki xonali sonni kiriting: 23

Lotoreya soni 14

Uzr, yutuq yo`q


Dastur rand() funksiyasi yordamida yutuqli sonni generatsiya qiladi (10-satr) va foydalanuvchini o`ylagan sonini kiritishga undaydi (15-satr). O`ylangan sonni 10 bo`lib qoldiqni olish (son % 10) orqali sonning oxirgi raqami, uni 10 ga bo`lib (son/10), butun qismini olish orqali sondagi raqamlar aniqlanadi.
5.6. Switch operatori

Key Point. Switch operatori o`zgaruvchi yoki ifoda qiymatiga asoslangan ko`rsatmani bajarish uchun ishlatiladi.

if operatori o`qishda qiyinchilik tug`diradi. C++ ko`p sonli tanlashlarni oddiy usul bilan hal qiluvchi switch operatorini taqdim etadi. Quyidagi switch operatorini ichma-ich if operatorining o`rnida qo`llash mumkin:

switch(status)

{

case 0: yagona filtrlar uchun soliqni hisoblash;



break;

case 1: turmushga chiqqan yoki turmush qurmagan ayollar uchun soliqni hisoblash;

break;

case 2: turmush qurganlik uchun soliqni hisoblash;

break;

case 3: uy xo`jaligi boshlig`i uchun soliqni hisoblash;

break;

default: cout << "Xatolik: noto`g`ri status"<< endl;

}
5.3-rasmda yuqoridagi switch operatorining blok-sxemasi keltirilgan.





5.3-rasm. Switch operatori barcha holatlarni tekshiradi va ma’qul holatdagi ko`rsatmani bajaradi

Bu operator status (holat)ning shunday tartibda 0, 1, 2 yoki 3 qiymatlariga mos kelish-kelmasligini tekshiradi. Agar moslik mavjud bo`lsa, unga tegishli soliq hisoblanadi, agar aksi bo`lsa, shu haqda xabar chiqariladi. Quyida switch ning yozilish qoidasi to`liq ko`rsatilgan:



switch (switch-ifoda)

{

case qiymat1: ko`rsatma satri 1;



break;

case qiymat2: ko`rsatma satri 2;

break;

...


case qiymatN: ko`rsatma satri N;

break;

default: dastlabki holat uchun ko`rsatma satri;

}

switch operatorida quyidagi qoidalar kuzatiladi:



  • switch ifodasi integral qiymat berishi kerak va har doim qavslar orasiga olinadi;

  • qiymat1, qiymat1, … qiymatN lar integral o`zgarmas ifodalar bo`lib, o`zgaruvchilardan iborat bo`lishi ko`zda tutilmaydi (xuddi 1+x kabi). Bu qiymatlar butun turdagi sonlar va ular suzuvchi-nuqtali sonlar bo`la olmaydi.

  • case (moslik qatori) operatoridagi qiymat switch-ifoda qiymatiga mos kelganda, o`sha case ga tegishli ko`rsatmalar bajarilishni boshlaydi va bu jarayon break (to`xtatish) operatori bajarilganda yoki switch operatorining so`nggi qismi bo`lgan holatda to`xtaydi;

  • default case – shunday xususiyatga egaki, yuqoridagi case lardan birortasining qiymati switch-ifoda qiymatiga mos kelmaganda bajariluvchi amalni belgilaydi;

  • break operatorini qo`llash majburiy emas. U switch operatorining ishini darhol to`xtatish uchun ishlatiladi.


Ogohlantirish. Zaruriy hollarda break operatoridan foydalanishni unutmang! Bitta case qiymati mos kelsa, unga tegishli ko`rsatma bajarilishi boshlanadi va u break operatoriga qadar bajariladi yoki switch operatorining so`nggi qismiga qadar bajarilishda davom etib ketadi. Bu quyi harakatlar deb ataladi. Masalan, quyidagi kod 1 va 5 hafta kunlarini, 0 va 6 esa dam olish kunlarini chiqaradi:

switch (kun)

{

case 1: // Navbatdagi case ga o`tish



case 2: // Navbatdagi case ga o`tish

case 3: // Navbatdagi case ga o`tish

case 4: // Navbatdagi case ga o`tish

case 5: cout << "Hafta kuni"; break;

case 0: // Navbatdagi case ga o`tish

case 6: cout << "Dam olish kuni";

}

Maslahat. Agar case dagi Dasturda xatoliklarning oldini olish kodning moslashuvchanligini sozlash uchun



5.7. Operatorlarning bajarilish darajalari

Key Point. Operatorning operatsiya bajarilishidagi darajasi uning qaysi bosqichda ishlatilishini belgilaydi.

Avvali mavzularda arifmetik ifodalardagi operatorlarning bajarilish darajalari haqida fikr yuritgan edik. Bu ma’ruzada operatorlarning bajarilish darajalarini aniqlashni batafsil ko`rib chiqamiz. Faraz qilaylik, bizga quyidagi ifoda berilgan:

3+ 4* 4> 5* (4+ 3) – 1 && (4– 3 > 5)

Uning qiymati nimaga teng? Bunda qaysi operatorlar qaysi bosqichda bajariladi?

Bunda qavslarga olingan operatorlar birinchi bajariladi. Bir narsaga ahamiyat berish kerakki, qavslar ham o`z navbatida ichki qavslarga ega bo`lishlari mumkin. Bunday vaziyatda eng ichki qavsdagi operator birinchi bo`lib bajariladi. Qavslar bo`lmaganda operatorlar bajarilishdagi darajalariga muvofiq o`z o`rnida ishlatiladi.

Biz hozirgacha o`rgangan operatorlardan iborat operatorlarning bajarilish darajalari 5.1-jadvalda keltirilgan. Unda operatorlarning bajarilish darajalari kamayish tartibi tasvirlangan. Mantiqiy operatorlarning bajarilish darajasi taqqoslash operatorlarinikidan, taqqoslash operatorlarining bajarilish darajalari esa arifmetik operatorlarnikidan pastroq bo`ladi. Bir guruhga tegishli operatorlarning darajalari tengdir!



5.1-jadval. Operatorlarning bajarilish darajalari


Agar ifoda bir xil darajali hisoblash operatorlardan iborat bo`lsa, ularning bajarilishi chap qo`l qoidasi ga ko`ra amalga oshiriladi. Masalan, bajariluvchi ifoda faqat + va – operatorlaridan iborat bo`lsa, ular o`zaro teng kuchli (assotsiativ) hisoblanadi va bu operatorlarning bajarilish ketma-ketligi chap qo`l qoidasiga amal qiladi:

Ta’minlash operatorlari esa o`ng qo`l qoidasiga bo`ysunadi:



Faraz qilaylik, a, b, va c o`zgaruvchilari berilgan va ularning dastlabki qiymatlari 1 ga teng. Qandaydir ifoda bajarilgandan so`ng a va b lar 6 qiymatga, c esa 5 qiymatga ega bo`ldi. Bunday vaziyatda ta’minlash operatori uchun chap qo`l qoidasi o`rinli bo`lmaydi.



Maslahat. Bajarilish ketma-ketligini oson o`qib olish uchun ifoda tarkibidagi bir xil darajali operatorlarni qavslar orasiga olib yozish mumkin. Ifodadagi ortiqcha qavslar operatsiyaning bajarilish tezligini pasaytirmaydi.

Nazorat.

5.1. Mantiqiy operatorlarning bajarilish ketma-ketligini belgilash. Quyidagi ifodani hisoblang:



true || true && false

true && true || false

5.2. Rost yoki yolg`on? = dan boshqa barcha operatorlar chap qo`l qoidasiga bo`ysunadi.



5.3. Quyidagi ifodani hisoblang:

2 * 2 - 3 > 2 && 4 – 2 > 5

2 * 2 - 3 > 2 || 4 – 2 > 5

5.4. (x > 0 && x < 10) ifoda ((x > 0) && (x < 10)) ifoda bilan bir xilmi? (x > 0 || x < 10) ifoda ((x > 0) || (x < 10)) ifoda bilan bir xilmi? (x > 0 || x < 10 && y < 0) ifoda (x > 0 || (x < 10 && y < 0)) ifoda bilan bir xilmi?
Download 2,75 Mb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish