logo

Tanlash operatorlaridan foydalanib misol va masalalar yechish

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

90.9296875 KB
Tanlash operatorlaridan foydalanib misol va masalalar yechish
MUNDARIJA
KIRISH..............................................................................................................01
I BOB. TANLASH OPERATORLARI HAMDA ULARNING MUHIM 
FUNKSIYALARI
1.1. Tanlash operatorlari haqida ......................................................................06
1.2. If-else iborasi va uning ishlash prinsplari.................................................16
II BOB. C++ TILIDA  SWITCH TANLASH  OPERATORI VA UNING 
ISHLASH PRINSPI
2.1. Switch bayonoti hamda uning sintakssisi.................................................21
2.2. Switch operatorida case,deafult,break tushunchalari...............................28
2.3. Break va cuntune operatorlari...................................................................31
XULOSA............................................................................................................38
FOYDALANILGAN ADABIYOTLAR..........................................................40
1 KIRISH
C++ tilida tanlash operatorlari, bir shartni tekshirish va mos kelgan 
ifodalarni bajarish uchun ishlatiladigan operatorlardir. Quyidagi xulosalar 
tanlash operatorlari haqida asosiy ma'lumotlarni beradi:
Tanlash operatori sintaksisi: Tanlash operatori ’?’: belgisi bilan 
ifodalangan. U quyidagi sintaksisga ega:
(shart) ? ifoda1 : ifoda2
Bu yerda ‘shart’ shartni ifodalaydigan bo'lish, ‘ifoda1’ shart rost bo'lsa 
bajariladigan ifoda, va ‘ifoda2’ shart yolg'on bo'lsa bajariladigan ifoda sifatida 
ko'rsatiladi.
Qisqa ifoda bajarish: Tanlash operatori if-else iborasiga nisbatan qisqa va 
oddiy sintaksisga ega bo'lib, kodni o'qimaslik va yozmaslik xatolarini 
kamaytiradi va kodni qisqartiradi.
Shartlarni tekshirish: Tanlash operatori bir shartni tekshirish uchun 
ishlatiladi. Shart rost bo'lsa ‘ifoda1’ bajariladi, aks holda esa ‘ifoda2’ bajariladi.
Qiymat qaytarish: Tanlash operatori tanlov holatida bajarilgan ifoda 
natijasini qiymat sifatida qaytaradi. Bu esa o'zgaruvchilarga qiymat berish va 
o'zgaruvchi qiymatini boshqarishda qulaylik yaratadi.
Ichki ifodalar: Tanlash operatori ichida ifodalar yozishga imkon beradi. 
Bu ifodalar, bir nechta amalni biriktirish, funksiyalar chaqirish, matematik 
amallar va boshqa amaliyotlarni o'z ichiga olishga imkon beradi.
2 Tanlash operatori, kodni o'rganishni osonlashtiradi, qisqa va to'g'ridan-
to'g'ri natijalarga olib keladi va if-else iborasidan farkli ravishda ishlatiladi. 
Shartlarni tekshirish va mos kelgan ifodalarni bajarish uchun qulay va qisqa bir 
vosita sifatida foydalanishga imkon beradi.
Umuman olganda, tanlash operatori C++ tilida ob'ektlar bilan ishlash 
uchun bir qancha qulayliklarni ta'minlovchi kuchli vositadir. Bu ob'ektga 
yo'naltirilgan dasturlashda muhim tushuncha bo'lib, C++ tilida mustahkam va 
samarali kod yaratish uchun keng qo'llaniladi.
3 I BOB. TANLASH OPERATORLARI HAMDA ULARNING MUHIM
FUNKSIYALARI 
Tanlash operatorlari, dasturlash tillarida turli maqsadlar uchun 
ishlatiladigan operatorlar. Ular dastur o'zgaruvchilarini belgilash, qiymat 
berish,obyektlarni yaratish, turli toifalarga qarab ko'p qismlarni to'grilash va 
boshqa ko'p yo'nalishlarda foydalanilishi mumkin. Tanlash operatorlari hamda 
ularning muhim funksiyalari va ulardan foydalanish, dastur tuzishda amaliy 
muhim bandligi ko'rsatadi.
Tanlash operatorlari dasturlashda muayyan shartlar asosida qaror qabul 
qilish uchun ishlatiladi. Mana bir nechta muhim tanlash operatorlari va ularning 
vazifalari:
1. If bayonoti: Agar ma'lum bir shart rost bo'lsa, kod blokini bajarish 
uchun ishlatiladi.
2. Else operatori: if operatoridagi shart noto'g'ri bo'lsa, u kod blokini 
bajarish uchun ishlatiladi.
3. Else if operatori: if operatoridagi birinchi shart noto'g'ri, lekin boshqa 
shart rost bo'lsa, u kod blokini bajarish uchun ishlatiladi.
4. Switch operatori: U o zgaruvchining turli mumkin bo lgan qiymatlari ʻ ʻ
asosida turli kod bloklarini bajarish uchun ishlatiladi.
Ushbu tanlov operatorlari muhim ahamiyatga ega, chunki ular 
dasturchilarga turli shartlar asosida qarorlar qabul qila oladigan kod yozish 
imkonini beradi va dasturlarni ko p qirrali va foydali qiladi.	
ʻ
4 Qiymat qaytarish: Tanlash operatori, tanlov holatida bajarilgan ifoda 
natijasini qiymat sifatida qaytaradi. Shart rost bo'lsa, bir ifoda bajariladi va u 
natija tanlash operatori tomonidan qaytariladi. Bunda qiymat sifatida 
foydalanish, o'zgaruvchilarni qiymat bilan to'ldirish va natijalarni qaytarish 
uchun qulaylik yaratadi.
Kodni qisqartirish: Tanlash operatori, if-else iborasiga nisbatan qisqa va 
oddiy sintaksisga ega. Uning qisqa sintaksi va bir qatorda ishlatilishi kodni 
qisqartiradi va o'qimaslik xatolarini kamaytiradi. Bu esa kodning osonlashishi 
va yorqinlashishi uchun muhimdir.
Ichki ifodalarni bajarish: Tanlash operatori ichida ifoda yozish imkonini 
beradi. Bu, bir nechta amalni biriktirish, funksiyalar chaqirish, matematik 
amallar va boshqa amaliyotlarni o'z ichiga olishga imkon beradi. Ichki ifodalar 
orqali kodni qisqartirish va osonlashtirish mumkin.
Tanlash operatorlarining bu funktsiyalari, shartlarni tekshirish, qiymat 
qaytarish, kodni qisqartirish va osonlashitirishning muhim aspektlarini 
ta'minlayadi. Ularning yordami bilan kodning aniqligi, osonligi va 
boshqarishining muhim qismlari yengillashtiriladi. Tanlash operatorini to'g'ri va
samarali foydalanish, kodning qisqartirilishi va o'qimaslik xatolarining 
kamaytirilishi uchun muhimdir.
1.1.   Tanlash operatorlari haqida
Shart operatorining yana bir ko rinishi switch tarmoqlanishʻ
operatori bo lib, uning sintaksisi quyidagicha:	
ʻ
switch (<ifoda>) {
case <o zgarmas ifoda1> : <operatorlar guruhi1>; break;
ʻ
5 case <o zgarmas ifoda2> : <operatorlar guruhi2>; break;ʻ
case <o zgarmas ifodan> : <operatorlar guruhin>; break;
ʻ
default : <operatorlar guruhin+1>;
}
Birinchi navbatda switch kalit so zini va undan keyin tekshiriluvchi	
ʻ
ifodani yozamiz. Odatda bu ifoda faqat bitta o zgaruvchini aks ettiradi,   	
ʻ
lekin
u murakkabroq bo lishi mumkin, masalan, nX + 2 yoki nX – nY	
ʻ
ko rinishida. Ushbu ifodaning yagona cheklovi shundaki, u bir turdagi	
ʻ
ma’lumotlar turi bo lishi kerak (ya’ni, char, short, int, long, long long).	
ʻ
Haqiqiy sonlardan yoki bir turda bo lmagan ma’lumot turidagi	
ʻ
o zgaruvchilaridan foydalanish mumkin emas.	
ʻ
Switch bayonotidan keyin blok e'lon qilamiz. Blok ichida ifoda bo yicha	
ʻ
tekshirmoqchi bo lgan barcha qiymatlarni aniqlash uchun nishonlardan	
ʻ
foydalanamiz.
Birinchi turdagi nishon bu case kalit so zi yordamida e'lon qilingan va	
ʻ
doimiy ifodaga ega bo lgan case (yoki shunchaki "keys").	
ʻ
Case kalit so zidan keyingi doimiy ifoda switch kalit so zi yonidagi ifoda	
ʻ ʻ
bilan tengligi tekshiriladi. Agar ular mos keladigan bo lsa, unda tegishli	
ʻ
holatdagi kod bajariladi.
6 Shunisi e'tiborga loyiqki, barcha ifodalar noyob qiymatlarni qabul
qilishi kerak. Ya’ni quyidagicha kod yoz olmaymiz:
switch(a)
{
case 1: cout<<a;
case 1: cout<<a+1; //1 qiymati allaqachon tekshirilgan
}
Nishonning ikkinchi turi default kalit so z yordamida e'lon qilinganʻ
jimlik bo yicha yorliq („default case" deb nomlanadi). Ushbu nishon 	
ʻ
ostidagi
kod bajarilgan bo lsa, agar biron-bir holat switch ifodasiga mos kelmasa	
ʻ
bundagi operatorlar bajariladi. Bitta kalitda bitta default bo lishi mumkin.	
ʻ
Odatda bu kalit blokida eng oxirgisi deb e'lon qilinadi.
Umuman olganda, switch operatorida break va default kalit so zlarini	
ʻ
ishlatish majburiy emas. Lekin bu holatda operator mazmuni buzilishi
mumkin. Masalan, default qismi bo lmagan holda, agar <ifoda> birorta	
ʻ
<o zgarmas ifodai> bilan ustma-ust tushmasa, operator hech qanday amal	
ʻ
bajarmasdan boshqaruv switch operatordan keyingi operatorga o tadi.	
ʻ
Agar break bo lmasa, <ifoda> birorta <o zgarmas ifodai> bilan ustma-ust	
ʻ ʻ
tushgan holda, unga mos keluvchi operatorlar guruhini bajaradi va
7 «to xtamasdan» keyingi qatordagi operatorlar guruhini ham bajarishdaʻ
davom etadi.
case nishonlari tarkibida bir nechta operatorlar guruhini bir vaqtda
bajarish mumkin.
#include <iostream>
using namespace std;
int main()
{
 int a;
 a=1;
 switch(a)
 {
 case 1:
 cout<<a<<endl;
 cout<<2*a<<endl;
 cout<<3*a<<endl;
 break;
 case 2:
 cout<<a<<endl;
8  cout<<a+2<<endl;
 cout<<a+3<<endl;
 break;
 default : cout<<"Boshqa son";
 }
 return 0;
}
case tarkibida o zgaruvchini e’lon qilish va uniʻ
initsializatsiyalash. case nishoni tarkibida o zgaruvchini e’lon qilish	
ʻ
mumkin, lekin o zgaruvchiga boshlang ich qiymat berish	
ʻ ʻ
(initsializatsiyalash) mumkin emas.
Bunday qiymat berish taqiqlanadi.
#include <iostream>
9 using namespace std;
int main()
{
 int a;
 a=1;
 switch(x)
 {
 case 1:
 int z; //Mumkin
 z=5; //Mumkin
 break;
 case 2:
 z=6; //z tepada e'lon qilingan
 break;
 case 3:
 int c=4; //Mumkin emas
 break;
 default:
 cout<<"default case"<<endl;
10  break;
 }
 return 0;
}
Misol. Uchburchakning uch xil holati berilgan. 1-holat: uchta tomon.
2-holat: ikkita tomon va ular orasidagi burchak. 3-holat: asos va 
balandlik.
Foydalanuvchi kiritgan holatga qarab uchburchak yuzini topish dasturini
tuzing.
#include <iostream>
using namespace std;
int main()
{
float a, b, c, h, alfa;
float p;
float S;
int k;
cout << "Holatni kiriting: ";
cin >> k;
switch (k)
11 {
case 1: {
cout << "Uchburchakning uchta tomonini
kiriting:" << endl;
cout <<
"===============================" << endl;
cout << "a="; cin >> a;
cout << "b="; cin >> b;
cout << "c="; cin >> c;
if ((a + b > c) && (a + c > b) && (b + c > a))
{
p = (a + b + c) / 2;
S = sqrt(p * (p - a) * (p - b) * (p - c));
cout << "Uchburchak yuzasi: S=" << S;
}
else
cout << "Bunday tomonli uchburchak
mavjud emas!" << endl;
}
12 break;
case 2: {
cout << "Uchburchakning ikki tomoni va ular
orasidagi burchakni kiriting:" << endl;
cout <<
"===============================" << endl;
cout << "a="; cin >> a;
cout << "b="; cin >> b;
cout << "alfa="; cin >> alfa;
if ((a > 0) && (b > 0) && (alfa != 0))
{
S = a * b * sin(alfa * 3.14 / 180) / 2;
cout << "Uchburchak yuzasi: S=" << S;
}
else
cout << "Uchburchak tomonlari va ular
orasidagi burchak bunday qiymatga ega bo lmaydi";ʻ
}
break;
13 case 3: {
cout << "Uchburchakning asosi va balandligini
kiriting:" << endl;
cout <<
"===============================" << endl;
cout << "a="; cin >> a;
cout << "h="; cin >> h;
if ((a > 0) && (h > 0))
{
S = a * h / 2;
cout << "Uchburchak yuzasi: S=" << S;
}
else
cout << "Uchburchak asosi va balandligi
bunday qiymatga ega bo lmaydi!";ʻ
}
break;
default:
{
14 cout << "Siz boshqa raqam kiritdingiz. 1,2,3-
raqamlarini kiriting";
}
break;
}
return 0;
}
1.2.   If-else iborasi va uning ishlash prinsplari
  If else operatori  C++ tilidagi eng keng tarqalgan tanlash operatoridir. Agar 
shart rost bo'lsa, bitta kod blokini, agar shart noto'g'ri bo'lsa, boshqa blokni 
bajarishga imkon beradi. Bu bitta shart asosida qaror qabul qilishingiz kerak 
bo‘lganda foydalidir .
If-else operatori, C++ dasturlash tilida shartlarni tekshirish uchun ishlatiladigan 
bir kontrol strukturasi hisoblanadi. Bu operator yordamida shart rost bo'lsa bir 
bo'lim (if bo'limi) bajariladi, aks holda esa boshqa bir bo'lim (else bo'limi) 
bajariladi .
If-else operatori quyidagicha ko'rinishga ega:
15 "shart" ifodasida bir shartni belgilash uchun shart operatorlari (masalan, ==, >, 
<, >=, <=, !=) yoki boshqa booleanskiruvchi ifodalardan foydalaniladi. Shart 
rost bo'lsa if bo'limi bajariladi, aks holda else bo'limi bajariladi.
If-else operatorining ishlash tartibi quyidagicha:
1.Shartni tekshirish.
2.Shart rost bo'lsa ifoda bajariladi, keyin if-else operatoridan tashqari kod 
bajariladi.
3.Shart yolg'on bo'lsa else bo'limidagi ifoda bajariladi, keyin if-else 
operatoridan tashqari kod bajariladi.
If-else operatori, boshqa if-else operatorlari bilan ham birlashtirilishi mumkin, 
bu esa nested (ichki if-else operatorlari) if-else strukturasi hisoblanadi.
Misol uchun:
int x = 10;
if (x > 0) {
    cout << "x musbat son";
} else if (x < 0) {
    cout << "x manfiy son";
} else {
    cout << "x nolga teng";
16 }
Yuqoridagi misolda, x ning qiymati tekshiriladi va natijada mos bo'lgan yoki 
mos bo'lmagan xabar chiqariladi.
int x;
std::cout << "Sonni kiriting: ";
std::cin >> x;
if (x > 0) {
    std::cout << "Musbat" << std::endl;
} else if (x < 0) {
    std::cout << "Manfiy" << std::endl;
} else {
    std::cout << "Nol" << std::endl;
}
Ushbu misolda, agar x musbat bo'lsa "Musbat", manfiy bo'lsa "Manfiy", aks 
holda esa "Nol" chiqadi.
3.If-else operatorini ichki if-else iboralari bilan ham birlashtirish mumkin 
(nesting). Bu, turli shartlar va belgilangan amallarga asoslangan bir nechta 
variantlarni tekshirishda foydali bo'ladi. Quyidagi misol nesting (ichki if-else 
iboralari) orqali if-else operatorini qo'llab-quvvatlayadi:
 #include<iostream>
17 #include<math.h>
using namespace std;
int main(){
int x,y;
     cout<<"x=";   cin>>x;
     cout<<"y=";  cin>>y;
if (x > y)
    {
    if (x > 0) {
        std::cout << "x musbat va y dan katta.\n";
    } else {
        std::cout << "x manfiy va y dan katta.\n";
    }
} else {
    std::cout << "x y dan kichik yoki teng.\n";
}
return 0;
18 }
Yuqoridagi misolda, ikkita nesting if-else iborasi bor. Birinchi if-else iborasi x 
ni y dan katta bo'lishini tekshiradi, ikkinchi if-else iborasi esa x ni musbat yoki 
manfiyligini tekshiradi.
If-else operatori, dasturchilarga shartlarni tekshirish va belgilangan amallarni 
bajarish imkonini beradi.
If-else operatori, dasturlarda shartlarni tekshirish va qaror qabul qilishni imkon 
qiladi va bunga asoslangan boshqa ko'p qatorli algoritmalarni amalga oshirishda
keng ishlatiladi.
II BOB. C++ TILIDA  SWITCH TANLASH  OPERATORI VA UNING
ISHLASH PRINSPI
C++ tilida switch tanlash operatori shartlar bo'yicha tanlangan bloklarni 
bajarishda ishlatiladi. Bunday operator quyidagi prinsip asosida ishlaydi:
19 switch kalit so'zi bilan boshlanadi, keyin qavs ichida bir qiymatni olish uchun 
ifoda yoziladi.
Tanlangan qiymatning taqqoslashi case kalit so'zi bilan belgilanadi.
Har bir casening qiymati tanlangan qiymat bilan solishtiriladi. Agar qiymatlar 
mos kelishsa, shu case dagi ishlar bajariladi.
casening ichida yozilgan kodlar bajarilgandan so'ng avvalgi caselarni o'tkazib 
ketadi. Shuning uchun har bir casening oxiriga break; kalit so'zi yozilishi 
tavsiya etiladi. break; kalit so'zi bajarilganda switch operatori to'xtaydi.
Tanlangan qiymatga mos keluvchi hech qanday case topilmagan holda, default 
blok ishga tushadi (agar mavjud bo'lsa). default blok tanlanmagan qiymat uchun
standart holatni aniqlashda ishlatiladi.
2.1.   Switch bayonoti hamda uning sintakssisi
Swichga
Switch operatori o'zgaruvchining qiymatiga qarab turli xil kod bloklarini 
bajarishga imkon beradi. Bu, ayniqsa, ko'rib chiqilishi kerak bo'lgan bir nechta 
holatlar mavjud bo'lganda foydalidir.Switch  kalit bo’yicha tanlash operatori 
hisoblanib.   Tanlash operatoridan foydalanishimiz uchun   switch   kalit so'zidan 
foydalanamiz. Ushbu operatorni qo'llamasdan shart operatoridan foydalansangiz
ham bo'ladi, ammo   switch   ancha ishingiz yengillashadi.
      Switch tanlash operatorining sintaksis ko'rinishi.
#include <iostream>
using namespace std;
20 int main()
{
switch(qiymat) {
  case x:
            // code block
    break;
  case y:
           // code block
    break;
  default:
            // code block
}
return 0;
}
 C++ tilida bu operator quyidagicha amal qiladi: birinchi navbatda 
qiymati hisoblanadi, keyin bu qiymat case kalit so‘zi bilan ajratilgan bilan 
solishtiriladi. Agar ular ustma-ust tushsa, shu qatordagi ‘:’ belgisidan boshlab, 
toki break kalit so‘zigacha bo‘lgan bajariladi va boshqaruv tarmoqlanuvchi 
operatordan keyingi joylashgan operatorga O‘tadi. Agar birorta ham bilan mos 
kelmasa, qurilmaning default qismidagi bajariladi. Shuni qayd etish kerakki, 
qurilmada default kalit so‘zi faqat bir marta uchrashi mumkin.
21 Tanlash operatorini qo‘llashga doir misolni qarab chiqaylik. 
Klaviaturadan kiritilgan “Jarayon davom etilsinmi?” so‘roviga foydalanuvchi 
tomonidan javob olinadi. Agar ijobiy javob olinsa, ekranga “Jarayon davom 
etadi!” xabari chop etiladi va dastur O‘z ishini tarmoqlanuvchi operatordan 
keyingi operatorlarni bajarish bilan davom ettiradi, aks holda “Jarayon tugadi!” 
javobi beriladi va dastur O‘z ishini tugatsin. Bu masala uchun tuziladigan dastur
foydalanuvchining ‘y’ yoki ‘Y’ javoblari jarayonni davom ettirishni bildiradi, 
boshqa belgilar esa tugatishni anglatadi.
#include <iostream.h>
int main()
 {
          char javob=’ ‘;
            cout<<”jarayon davom etsinmi?(‘y’,’Y’):”;
            cin>>javob;
            switch(javob)
      {
             case ‘y’:
             case ‘Y’: 
                                            cout<< “”jarayon davom etadi!\n”;    
                         break;
              default:
                                            cout<< ’’jarayon tugadi!\n‘’;
22                return 0;
                  }                                   //jarayon
 return 0;
}
Tanlash operatorining C++ tilidagi ko‘rinishida break va default kalit 
so‘zlarini ishlatmasa ham bo’ladi. Ammo bu holda operatorning mazmuni 
buzilishi mumkin. Masalan, default qismi bo‘lmagan holda, agar< ifoda> birorta
<o’zgarmas ifoda> bilan ustma-ust tushmasa, operator hech qanday amal 
bajarmasdan boshqaruv tanlash operatordan keyingi operatorga O‘tadi. Agar 
break bo‘lmasa, <ifoda> birorta <o’zgarmas ifoda> bilan ustma-ust tushgan 
holda, unga mos keluvchi operatorlar guruhini bajaradi va «to‘xtamasdan» 
keyingi qatordagi operatorlar guruhini bajarishga O‘tib ketadi. Masalan, 
yuqoridagi misolda break operatori bo‘lmasa va jarayonni davom ettirishni 
tasdiqlovchi (‘Y’) javob bo‘lgan taqdirda ekranga
 Jarayon davom etadi! 
Jarayon tugadi! 
xabarlari chiqadi va dastur O‘z ishini tugatadi (return operatorining bajarilishi 
natijasida).
 Tanlash operatori sanab O‘tiluvchi turdagi O‘zgarmaslar bilan birgalikda 
ishlatilganda samara beradi. Quyidagi dasturda ranglar gammasini toifalash 
masalasi yechilgan.
#include<iostream>
 int main() 
23 {
 enum Ranglar{qizil, tuq_sariq,sariq,yashil,kuk,zangori,binafsha};
 Ranglar rang;                                                   //... 
 switch(rang)
 {
 case qizil: 
case tuq_sariq:
 case sariq; 
                         cout<<”issiq gamma tanlanadi.\n”;
                        break;
         default:
                          cout<<”kamalak bunday ranga ega emas.\n;
}
return 0;
         }
Dastur bajarilishida boshqaruv tanlash operatorga kelganda, rang qiymati qizil 
yoki tuq_sariq yoki sariq bo‘lsa, “Issiq gamma tanlandi’’ xabari, agar rang 
qiymati yashil yoki kuk yoki zangori yoki binafsha bo‘lsa, ekranga “Sovuq 
gamma tanlandi” xabari, agar rang qiymati sanab O‘tilgan qiymatlardan farqli 
bo‘lsa, ekranga “Kamalak bunday rangga ega emas “ xabari chop etiladi va 
dastur O‘z ishini tugatadi. 
24 C++ tilidagi tanlash operatorida e’lon operatorlari ham uchrashi mumkin. Lekin
switch operatori bajarilishida «Sakrab O‘tish» holatlari bo‘lishi hisobiga blok 
ichidagi ayrim e’lonlar bajarilmasligi va buning oqibatida dastur ishida xatolik 
ro‘y berishi mumkin:
int k=0,n=0; 
cin>>n;
 switch (n) 
{
 int=10;                    //xato,bu operator hech qachon bajarilmaydi
 case 1:
                        int j=20;             //agar n=2 bo‘lsa,bu e’lon bajarilmaydi
 case 2:
                       k+=i+j;                 //xato, chunki i,j O‘zgaruvchilar noma’lum 
}
 cout<<k;
Tanlash operatorini qo‘llashga doir yana bir masalani qarab chiqamiz.
Masala. Quyida, sanab O‘tiluvchi turlar va shu turdagi O‘zgaruvchilar e’lon 
qilingan: 
enum Birlik{detsimetr, kilometr, metr, millimetr, santimetr}
 float y; Birlik r;
 Birlikda berilgan x O‘zgaruvchisining qiymat metrlarda chop qilinsin.
25 #include <iostream.h>
int main()
{
enum Birlik {detsimetr, kilometr, metr, millimetr, santimetr};
float x,y;
Birlik r;
cout<<’’uzunlikni kiriting: x=’’;
cin>>x;
cout<<’’ uzunlik birliklari\n’’;
cout<<’’ 0-detsimetr\n’’;
cout<<’’1-kilometr\n’’;
cout<<’’2-metr\n’’;
cout<<’’3-millimetr\n’’;
cout<<’’4-santimetr\n’’;
cout<<’’uzunlikni birligini tanlang; r=’’;
cin>>r;
         switch(r)
   {
case detsimetr:y=x/10; break;
26 case kilometr: y=x*1000; break;
case metr: y=x; break;
case millimetr: y=x/1000; break;
case santimetr: y=x/100; break;
               default:
       cout<<’’uzunlik birligi noto’g’ri kiritildi!’’;
return 0;
      }
cout<<y<<’’metr’’;
return 0;
}
2.2.    Switch operatorida case,deafult,break tushunchalari
Switch operatorida "case", "default" va "break" tushunchalari dastur yozishda 
foydalaniladigan belgilardir. Bu belgilar bir to'plamdagi ifodalarni boshqarish 
uchun ishlatiladi. Quyidagi tushunchalarni taqqoslash va ulardan foydalanish 
usullari haqida bilib oling:
1."case": Switch operatorida berilgan qiymatni tekshirish uchun ishlatiladi. 
Qiymat switch operatori ichidagi biror "case" ifodasiga teng bo'lishi kerak, agar 
teng bo'lsa, ushbu "case" ifodasi ichidagi kod qatordan boshlab ishga tushadi. 
Misol uchun:
int day = 2;
27 switch (day) {
    case 1:
        printf("Dushanba");
        break;
    case 2:
        printf("Seshanba");
        break;
    case 3:
        printf("Chorshanba");
        break;
    default:
        printf("Hafta kunlari");
}
Natija:  Seshanba .
2."default": Agar switch operatorida birorta ham "case" ifodasi berilmagan 
bo'lsa, u holda "default" tushunchasi ishga tushadi. "default" ifodasi o'rtacha 
holatni ifodalash uchun ishlatiladi. Misol uchun:
int day = 7;
switch (day) {
28     case 1:
        printf("Dushanba");
        break;
    case 2:
        printf("Seshanba");
        break;
    case 3:
        printf("Chorshanba");
        break;
    default:
        printf("Hafta kunlari");
}
Natija:Hafta kunlari
3."break": Har bir "case" ifodasining ohiriga "break" operatorini qo'yish tavsiya 
etiladi. "break" operatori, switch operatorining bajarilishini to'xtatadi va boshqa 
"case" ifodalariga o'tishni oldini olib tashlaydi. "break" tushunchasini 
ishlatmasangiz, switch operatori bajarilishini to'xtatmaydi va keyingi "case" 
ifodalarini ham tekshirib o'tiradi. Misol uchun:
int day = 2;
switch (day) {
    case 1:
29         printf("Dushanba");
    case 2:
        printf("Seshanba");
    case 3:
        printf("Chorshanba");
    default:
        printf("Hafta kunlari");
}
Natija:
Seshanba
Chorshanba
Hafta kunlari
Yuqoridagi misolda, "day" ning qiymati 2 bo'lganligi sababli, switch operatori 
boshqaruvining har bir qismi ifodalarni tekshiradi va bir-birini kuzatib 
chiqaradi, chunki "break" operatori foydalanilmagan.
2.3.   Break va cuntinu operatorlari
Takrorlash operatorlarining bajarilishida shunday holatlar yuzaga kelishi 
mumkinki, unda qaysidir qadamda, takrorlashni yakuniga yetkazmasdan 
takrorlashdan chiqish zarurati bo‘lishi mumkin.  Boshqacha aytganda 
takrorlashni «uzish» kerak bo‘lishi mumkin. Bunda break operatoridan 54 
foydalaniladi. Break operatorini takrorlash operatori tanasining ixtiyoriy (zarur) 
joylariga qo‘yish orqali shu joylardan takrorlashdan chiqishni amalga oshirish 
30 mumkin. E’tibor beradigan bo’lsak switch-case operatorining tub mohiyatiga 
ham break operatorini qo’llash orqali erishilgan. Ichma – ich joylashgan 
takrorlash va switch operatorlarida break operatori faqat O‘zi joylashgan 
blokdan chiqish imkoniyatini beradi. Quyidagi dasturda ikkita ichma-ich 
joylashgan takrorlash operatoridan foydalangan holda foydalanuvchi tomonidan
kiritilgan qandaydir sonni 3 va 7 sonlariga nisbatan qanday oraliqqa tushishi 
aniqlanadi .Tashqi takrorlashda ‘’son kiriting (0-to’xtash):_’’ so‘rovi beriladi va
javob javob_son O‘zgaruvchisiga O‘qiladi. Agar son noldan farqli bo‘lsa, ichki 
takrorlash operatorida bu sonning qandaydir tushishi aniqlanib, shu haqida 
xabar beriladi va ichki operatoridan chiqiladi. Tashqi takrorlashdagi so‘rovga 
javob tariqasida 0 kiritilsa, dastur O‘z ishini tugatadi.
#include <iostream.h>
int main(){
int javob_son=0;
do{
while (javob_son){
if (javob_son<3){
cout<<’’3 kichik !’’; 
break;
}
if(3<=javob_son&& javob_son<=7){
cout<<’’3 va 7 oralig’da !’’; 
break;
31 }
if (javob_son>7){
cout<<”7 dan katta !”; 
55
break;
}
}
cout<<”\nSon kiriting (0-to’xtash):_”;
cin>>javob_son;
} 
while(javob_son !=0)
return 0
}
Amaliyotda break operatoridan cheksiz takrorlashdan chiqishda 
Foydalaniladi
For (;;){ // 1-shart
if (…){
break ;
}
32 if (…)
{ // 2- shart
break;
}
        }
Bu misolda cheksiz for takrorlashidan 1 yoki 2- shart bajarilganda 
chiqiladi,
Masala. Ishorasiz butun sonlar ketma-ketligi 0 qiymati bilan tugaydi. Bu 
yerda 0 ketma-ketlik hadi hisoblanmaydi. Ketma-ketlikni kamaymaydigan 
holda 
tartiblangan yoki yo‘qdigi aniqlansin.
#include <iostream.h>
int main(){
unsigned int Ai_1=0,Ai;
cout<<’’ sonlar ketma-ketligini kiriting’’
cout<<(0-tugash alomati):\n’’;
cin>>Ai; // ketma-ketlikning birinchi hadi
while(Ai){
Ai_1>Ai;
cin>>Ai; // navbatdagi had 
33 if (Ai_1>Ai) break;
}
if (Ai_1)
{
cout<<’’ketma-ketlik kamaymaydigan holda tartiblangan’’;
if(!Ai)cout<<’’emas!’’;
else cout<<’’!’’;
}
   }
else cout<<’’ketma-ketlik bo’sh!’’;
return 0;
}
Dastur ishga tushganda, boshida ketma-ketlikning birinchi hadi alohida 
o‘qib olinadi (Ai O‘zgaruvchisiga). Keyin Ai qiymati nolga teng bo’lmaguncha 
takrorlash operatori amal qiladi. Takrorlash tanasida Ai qiymati oldingi qiymat 
sifatida Ai_1 O‘zgaruvchisida eslab qolinadi va navbatdagi had Ai 
O‘zgaruvchisiga 
o‘qiladi. Agar oldingi had navbatdagi haddan katta bo‘lsa, break operatori 
yordamida takrorlash jarayoni uziladi va boshqaruv takrorlashdan keyingi shart 
34 operatoriga O‘tadi. Bu yerdagi shart operatorlari mazmuni quyidagicha agar 
Ai_1
noldan farqli bo‘lsa, ketma-ketlikning kamida bitta hadi kiritilgan bo’ladi
(ketma-ketlik mavjud) va oxirgi kiritilgan had tekshiriladi. O’z navbatida agar 
Ai
57
noldan farqli bo‘lsa, bu holat had1ar o’rtasida kamaymaslik sharti 
bajarilmaganligi sababli hadlarni kiritish jarayoni uzilganligini bildiradi va bu 
haqda xabar chop etiladi. Aks holda ketma-ketlikni kamaymaydigan holda 
tartiblangan bo’ladi.
Continue operatori xuddi break operatoridek takrorlash operatori 
tanasini bajarishni to‘xtatadi, lekin takrorlashdan chiqib ketmasdan 
keyingi qadamiga «sakrab» O‘tishini ta’minlaydi.
Continue operatorini qo‘llanishiga misol tariqasida 2 va 50 sonlar 
oralig‘idagi tub sonlarni topadigan dastur matnini keltiramiz.
#include <iostream.h>
int main(){
bool bulinadi=false;
for (int i=2; i<50; i++){
for (int j=2; j<i/2; j++){
35 if (i%j) continue;
else {
bulinadi=true; 
break;
}
} // break bajarilganda boshqaruv o’tadigan joy
if (!bulinadi ) cout <<i<<” “;
bulinadi=false;
}
return 0;
}
Keltirilgan dasturda qo‘yilgan masala ichma-ich joylashgan ikkita 
takrorlash operatorlari yordamida yechilgan. Birinchi takrorlash operatori 2 dan 
50 gacha sonlarni hosil qilishga xizmat qiladi. Ichki takrorlash esa har bir hosil 
qilinayotgan sonni 2 sonidan toki shu sonning yarmigacha bo‘lgan sonlarga 
bo‘lib, qoldig‘ini tekshiradi, agar qoldiq 0 sonidan farqli bo‘lsa, navbatdagi 
songa 
bo‘lish davom etadi, aks holda bo‘linadi O‘zgaruvchisiga true qiymat berib, 
ichki 
takrorlash uziladi (son O‘zining yarmigacha bo‘lgan qandaydir songa bo‘linar 
36 ekan, demak u tub emas va keyingi sonlarga bo‘lib tekshirishga hojat yo‘q). 
Ichki 
takrorlashdan chiqqandan keyin bo‘linadi qiymati false bo‘lsa (bo`linadi), son 
tub bo’ladi va u chop qilinadi.
XULOSA
C++ tilida tanlash operatorlari, bir shartni tekshirish va mos kelgan ifodalarni 
bajarish uchun ishlatiladigan operatorlardir. Quyidagi xulosalar tanlash 
operatorlari haqida asosiy ma'lumotlarni beradi:
Tanlash operatori sintaksisi: Tanlash operatori ?: belgisi bilan ifodalangan. U 
quyidagi sintaksisga ega:
(shart) ? ifoda1 : ifoda2
Bu yerda shart shartni ifodalaydigan bo'lish, ifoda1 shart rost bo'lsa 
bajariladigan ifoda, va ifoda2 shart yolg'on bo'lsa bajariladigan ifoda sifatida 
ko'rsatiladi.
Qisqa ifoda bajarish: Tanlash operatori if-else iborasiga nisbatan qisqa va oddiy 
sintaksisga ega bo'lib, kodni o'qimaslik va yozmaslik xatolarini kamaytiradi va 
kodni qisqartiradi.
37 Shartlarni tekshirish: Tanlash operatori bir shartni tekshirish uchun ishlatiladi. 
Shart rost bo'lsa ifoda1 bajariladi, aks holda esa ifoda2 bajariladi.
Qiymat qaytarish: Tanlash operatori tanlov holatida bajarilgan ifoda natijasini 
qiymat sifatida qaytaradi. Bu esa o'zgaruvchilarga qiymat berish va o'zgaruvchi 
qiymatini boshqarishda qulaylik yaratadi.
Ichki ifodalar: Tanlash operatori ichida ifodalar yozishga imkon beradi. Bu 
ifodalar, bir nechta amalni biriktirish, funksiyalar chaqirish, matematik amallar 
va boshqa amaliyotlarni o'z ichiga olishga imkon beradi.
Tanlash operatori, kodni o'rganishni osonlashtiradi, qisqa va to'g'ridan-to'g'ri 
natijalarga olib keladi va if-else iborasidan farkli ravishda ishlatiladi. 
38 FOYDALANILGAN ADABIYOTLAR
1.S.Eshtemirov, F.M.Nazarov “ ALGORITMLASH VA DASTURLASH 
ASOSLARI” Samarqand Davlat Unversiteti. 2018
2.O. R. Yusupov,  F. F. Meliyev,  E. Sh. Eshonqulov  “ DASTURLASH 
ASOSLARI”  Samarqand Davlat Unversiteti .2021
3. Aripov M.M. Programmalashga kirish. – T.: 0 ‘zMU, 2008.
4. Aripov M.M. C++ tiliga kirish. – T.: 0 ‘zMU, 2007. -172-b.
5. Aripov M.M. Otaxanov N.A. Dasturlash asoslari bo‘yicha masalalar 
to‘plami. – Namangan: “Ibrat”, 2014. -168-b.
6. Eondapee B.M. IlporpaMMHpoBaHHe Ha C++. -XapbKOB: “KoMnaHHH 
Cmht”, 2005. -284 c.
7. Madrahimov Sh.F., G’aynazarov S.M. C++ tilida programmalash asoslari. – 
T.: O’zMU, 2009. -196-b.
ww.dasturchi.uz .
39

Tanlash operatorlaridan foydalanib misol va masalalar yechish MUNDARIJA KIRISH..............................................................................................................01 I BOB. TANLASH OPERATORLARI HAMDA ULARNING MUHIM FUNKSIYALARI 1.1. Tanlash operatorlari haqida ......................................................................06 1.2. If-else iborasi va uning ishlash prinsplari.................................................16 II BOB. C++ TILIDA SWITCH TANLASH OPERATORI VA UNING ISHLASH PRINSPI 2.1. Switch bayonoti hamda uning sintakssisi.................................................21 2.2. Switch operatorida case,deafult,break tushunchalari...............................28 2.3. Break va cuntune operatorlari...................................................................31 XULOSA............................................................................................................38 FOYDALANILGAN ADABIYOTLAR..........................................................40 1

KIRISH C++ tilida tanlash operatorlari, bir shartni tekshirish va mos kelgan ifodalarni bajarish uchun ishlatiladigan operatorlardir. Quyidagi xulosalar tanlash operatorlari haqida asosiy ma'lumotlarni beradi: Tanlash operatori sintaksisi: Tanlash operatori ’?’: belgisi bilan ifodalangan. U quyidagi sintaksisga ega: (shart) ? ifoda1 : ifoda2 Bu yerda ‘shart’ shartni ifodalaydigan bo'lish, ‘ifoda1’ shart rost bo'lsa bajariladigan ifoda, va ‘ifoda2’ shart yolg'on bo'lsa bajariladigan ifoda sifatida ko'rsatiladi. Qisqa ifoda bajarish: Tanlash operatori if-else iborasiga nisbatan qisqa va oddiy sintaksisga ega bo'lib, kodni o'qimaslik va yozmaslik xatolarini kamaytiradi va kodni qisqartiradi. Shartlarni tekshirish: Tanlash operatori bir shartni tekshirish uchun ishlatiladi. Shart rost bo'lsa ‘ifoda1’ bajariladi, aks holda esa ‘ifoda2’ bajariladi. Qiymat qaytarish: Tanlash operatori tanlov holatida bajarilgan ifoda natijasini qiymat sifatida qaytaradi. Bu esa o'zgaruvchilarga qiymat berish va o'zgaruvchi qiymatini boshqarishda qulaylik yaratadi. Ichki ifodalar: Tanlash operatori ichida ifodalar yozishga imkon beradi. Bu ifodalar, bir nechta amalni biriktirish, funksiyalar chaqirish, matematik amallar va boshqa amaliyotlarni o'z ichiga olishga imkon beradi. 2

Tanlash operatori, kodni o'rganishni osonlashtiradi, qisqa va to'g'ridan- to'g'ri natijalarga olib keladi va if-else iborasidan farkli ravishda ishlatiladi. Shartlarni tekshirish va mos kelgan ifodalarni bajarish uchun qulay va qisqa bir vosita sifatida foydalanishga imkon beradi. Umuman olganda, tanlash operatori C++ tilida ob'ektlar bilan ishlash uchun bir qancha qulayliklarni ta'minlovchi kuchli vositadir. Bu ob'ektga yo'naltirilgan dasturlashda muhim tushuncha bo'lib, C++ tilida mustahkam va samarali kod yaratish uchun keng qo'llaniladi. 3

I BOB. TANLASH OPERATORLARI HAMDA ULARNING MUHIM FUNKSIYALARI Tanlash operatorlari, dasturlash tillarida turli maqsadlar uchun ishlatiladigan operatorlar. Ular dastur o'zgaruvchilarini belgilash, qiymat berish,obyektlarni yaratish, turli toifalarga qarab ko'p qismlarni to'grilash va boshqa ko'p yo'nalishlarda foydalanilishi mumkin. Tanlash operatorlari hamda ularning muhim funksiyalari va ulardan foydalanish, dastur tuzishda amaliy muhim bandligi ko'rsatadi. Tanlash operatorlari dasturlashda muayyan shartlar asosida qaror qabul qilish uchun ishlatiladi. Mana bir nechta muhim tanlash operatorlari va ularning vazifalari: 1. If bayonoti: Agar ma'lum bir shart rost bo'lsa, kod blokini bajarish uchun ishlatiladi. 2. Else operatori: if operatoridagi shart noto'g'ri bo'lsa, u kod blokini bajarish uchun ishlatiladi. 3. Else if operatori: if operatoridagi birinchi shart noto'g'ri, lekin boshqa shart rost bo'lsa, u kod blokini bajarish uchun ishlatiladi. 4. Switch operatori: U o zgaruvchining turli mumkin bo lgan qiymatlari ʻ ʻ asosida turli kod bloklarini bajarish uchun ishlatiladi. Ushbu tanlov operatorlari muhim ahamiyatga ega, chunki ular dasturchilarga turli shartlar asosida qarorlar qabul qila oladigan kod yozish imkonini beradi va dasturlarni ko p qirrali va foydali qiladi. ʻ 4

Qiymat qaytarish: Tanlash operatori, tanlov holatida bajarilgan ifoda natijasini qiymat sifatida qaytaradi. Shart rost bo'lsa, bir ifoda bajariladi va u natija tanlash operatori tomonidan qaytariladi. Bunda qiymat sifatida foydalanish, o'zgaruvchilarni qiymat bilan to'ldirish va natijalarni qaytarish uchun qulaylik yaratadi. Kodni qisqartirish: Tanlash operatori, if-else iborasiga nisbatan qisqa va oddiy sintaksisga ega. Uning qisqa sintaksi va bir qatorda ishlatilishi kodni qisqartiradi va o'qimaslik xatolarini kamaytiradi. Bu esa kodning osonlashishi va yorqinlashishi uchun muhimdir. Ichki ifodalarni bajarish: Tanlash operatori ichida ifoda yozish imkonini beradi. Bu, bir nechta amalni biriktirish, funksiyalar chaqirish, matematik amallar va boshqa amaliyotlarni o'z ichiga olishga imkon beradi. Ichki ifodalar orqali kodni qisqartirish va osonlashtirish mumkin. Tanlash operatorlarining bu funktsiyalari, shartlarni tekshirish, qiymat qaytarish, kodni qisqartirish va osonlashitirishning muhim aspektlarini ta'minlayadi. Ularning yordami bilan kodning aniqligi, osonligi va boshqarishining muhim qismlari yengillashtiriladi. Tanlash operatorini to'g'ri va samarali foydalanish, kodning qisqartirilishi va o'qimaslik xatolarining kamaytirilishi uchun muhimdir. 1.1. Tanlash operatorlari haqida Shart operatorining yana bir ko rinishi switch tarmoqlanishʻ operatori bo lib, uning sintaksisi quyidagicha: ʻ switch (<ifoda>) { case <o zgarmas ifoda1> : <operatorlar guruhi1>; break; ʻ 5