5. Operatorlar


Download 109.39 Kb.
bet2/3
Sana12.03.2023
Hajmi109.39 Kb.
#1264839
1   2   3
Bog'liq
05.Operatorlar

5.2. Takrorlash operatorlari


for takrorlash operatori. Sikl operatorlari ayni bir koʻrsatmalarni koʻp bor bajarish imkonini beradi. Faraz qilaylik 1 dan 100 gacha sonlarni satrda bittadan chiqarish zarur. Oddiy yoʻl bilan 100 ta satr kodi yozish zarur boʻladi:
cout << 1 << endl;
cout << 2 << endl;
cout << 100 << endl;
Sikl yordamida bu amallarni bitta satr kodi yordamida bajarish mumkin:
for(int i = l; i <= 100; i++)
cout << i << endl;
for siklidan ifodalarni ma’lum bir sonda bajarish uchun foydalaniladi. Sikl quyidagicha formatga ega:
for('ich qiymat>; ; ) {

}
qiymat> – oʻzgaruvchi-hisoblagichga boshlangʻich qiymat oʻzlashtiradi, – mantiqiy ifoda oladi. Mantiqiy ifoda true qiymat qaytarganda, sikl ichidagi koʻrsatmalar bajariladi, – har bir iteratsiyada (takrorlanish) oʻzgaruvchi-hisoblagichning oʻzgarishini beradi.
for sikli ishining ketma ketligi quyidagicha:

  1. Oʻzgaruvchi-hisoblagichga boshlangʻich qiymat beriladi.

  2. Shart tekshiriladi, agar u rost boʻlsa sikl ichidagi ifodalar bajariladi, aks holda siklning bajarilishi tugallanadi.

  3. Oʻzgaruvchi-hisoblagich da koʻrsatilgan kattalikka oʻzgaradi.

  4. 2-punktga qaytadi.

Oʻzgaruvchi-hisoblagich sikldan tashqarida yoki 'ich qiymat> parametrida elon qilinishi mumkin. Agan u parametrda e’lon qilingan boʻlsa, faqat sikl ichida koʻrinadi. Bundan tashqari, oʻzgaruvchini sikldan tshqarida e’lon qilish va unga boshlangʻich qiymat oʻzlashtirishga ham ruxsat beriladi. Bunday hollarda 'ich qiymat> parametrini boʻsh qoldirish mumkin. Misol ko‘raylik.
int i; // Sikldan tashqaridagi e'lon
for(i = 1; i <= 20; i++) {
cout << i << endl;
} // ‘i’ o'zgaruvchi sikldan tashqarida ko'rinadi
cout << i << endl;
// Sikl ichida e'lon qilish
for(int j = 1; j <= 20; j++) {
cout << j << endl;
} // ‘j’
o'zgaruvchi sikldan tashqarida ko'rinmaydi
int k = 1; // Sikldan tashqarida nomlash
for(; k <= 20; k++) {
cout << k << endl;
}
Sikl false qiymat qaytarmaguncha bajariladi. Agar bu amalga oshirilmasa, sikl cheksiz boʻladi. parametrida koʻrsatilgan mantiqiy ifoda har bir iteratsiyada hisoblanadi. Shu sababli, agar mantiqiy ifoda ichida qandaydir hisoblashlar bajarilsa va sikl ichida qiymat oʻzgarmasa, u holda hisoblashni <Boshlang'ich qiymat> parametriga chiqarish lozim. Bunday hollarda hisoblash oʻzgaruvchi-hisoblagichga qiymat oʻzlashtirilganidan keyin, orqali koʻrsatiladi. Masalan,
for(int i = 1, j = 10 + 30; i <= j; i++) {
cout << i << endl;
}
parametrida koʻrsatilgan ifoda oʻzgaruvchi-hisoblagich qiymatini nafaqat orttirishi, balki kamaytirishi, bundan tashqari, orttirma qiymat har qanday kattalikka oʻzgarishi mumkin.
for(int i = 100; i > 0; i--) { // 100 dan 1 gacha sonlarni chiqaramiz
cout << i << endl;
}
// 1 dan 100 gacha juft sonlarni chiqaramiz
for(int j = 2; j <= 100; j += 2) {
cout << j << endl;
}
Agar ozgaruvchi-hisoblagich sikl ichida oʻzgarsa, u hoda parametridagi ifodani umuman koʻrsatmaslik ham mumkin.
for(int i = 1; i <= 10;) {
cout << i << endl;
i++; // Orttirma
}
for siklining barcha barametrlari va sikl ichidagi koʻrsatmalar majburiy hisoblanmaydi. Parametrlarni koʻrsatish shart boʻlmasa ham, nuqtali vergul boʻlishi shart. Barcha parametrlar koʻrsatilmasa, sikl cheksiz boʻladi. Cheksiz sikldan chiqish uchun break operatoridan foydalanish lozim.
#include
int i = 1; //
for(; ;) { // Cheksiz sikl
if(i <= 10) { //
cout << i << endl;
i++; //
} else {
break; } // Sikldan chiqamiz
}

while takrorlash operatori. while siklida ifodalarning bajarilishi mantiqiy ifoda rost boʻganda davom etadi. Sikl quyidagicha formatga ega:
;
while ) {
;
;
}
while siklining bajarilish ketma-ketligi:

  1. Oʻzgaruvchi-hisoblagichga boshlangʻich qiymat oʻzlashtiriladi.

  2. Shart tekshiriladi, agar u rost boʻlsa sikl ichidagi koʻrsatmalar bajariladi, aks holda siklning bajarilishi tugallanadi.

  3. Oʻzgaruvchi-hisoblagich da koʻrsatilgan kattalikka oʻzgaradi.

  4. 2-punktga oʻtiladi.

while siklidan foydalangan hola 1 dan 100 gacha boʻlgan barcha sonlarni chiqaramiz:
int i = 1; // 'ich qiymat>
while(i <= 100) { //
cout << i << endl; // 'rsatmalar>
++i; //
}
Agar koʻrsatilmasa, sikl cheksiz boʻladi.
do … while takrorlash operatori. do...while siklida ifodalarning bajarilishi mantiqiy ifoda rost boʻganda davom etadi. while siklidan farqli ravishda shart sikl boshida emas, oxirida tekshiriladi. Shi sabsbli, do...while ichidagi koʻrsatmalar hech boʻlmaganda bir marta bajariladi. Sikl quyidagicha formatga ega:
;
do {
;
;
} while();
do...while siklining bajarilish ketma-ketligi:

  1. Oʻzgaruvchi-hisoblagichga boshlangʻich qiymat oʻzlashtiriladi.

  2. Sikl ichidagi koʻrsatmalar bajariladi.

  3. Oʻzgaruvchi-hisoblagich dagi kattalikka oʻzgaradi.

  4. Shart tekshiriladi, agar u rost boʻlsa, 2-punktga oʻtiladi, aks holda siklning bajarilishi tugallanadi.

do...while siklidan foydalangan hola 1 dan 100 gacha boʻlgan barcha sonlarni chiqaramiz:
int i = 1; // 'ich qiymat>
do {
cout << "i = " << i << endl; // 'rsatmalar>
++i; //
} while(i <= 100); //
Agar koʻrsatilmasa, sikl cheksiz boʻladi.
Rekursiya. Rekursiya – bu funksiyaning oʻzini oʻzi chaqirish imkoniyati. Funksiyaning har bir chaqirilishida lokal oʻzgaruvchilarning yangi toʻplami yaratiladi. Rekursiyadan avvaldan noaniq tarkibga ega boʻlgan obyektni saralash, amallarning noma’lum sonda bajarilishi uchun foydalanish qulay. Rekursiyani qo‘llashning tipik misoli faktorialni hisoblash hisoblanadi.
#include
unsigned long long factorial(unsigned long n);
int main() { // Faktorialni hisoblash dasturi
for(int i = 3; i < 11; ++i) {
cout << i << "! = " << factorial(i) << endl;
}
cin.get();
return 0;
}
unsigned long long factorial(unsigned long n) {
if(n <= 1)
return 1;
else return n * factorial(n-1);
}
Dasturning bajarilishi natijasi:


Download 109.39 Kb.

Do'stlaringiz bilan baham:
1   2   3




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