}
cout << "Qoyil topdingiz!!!" << endl;
cout << "Urinishlar soni=" << u << endl;
system ("pause");
return 0;
}
2-Rejaga
Bir hil hisoblash jarayonlarini bir necha bor takrorlanish jarayonga takrorlanish
(takrorlanish) deyiladi. Borland C++ Builderdasturlashtirish tilida takrorlanish
operatorining uch xil turi mavjud.
1. for takrorlanish operatori
2. do .. while takrorlanish operatori
3. while takrorlanish operatori
Yechilayotgan masalaga qarab, dasturchi o`zi uchun qulay bo`lgan takrorlanish
operatoridan foydalanishi mumkin.
for takrоrlash оpеratоrining sintaksisi quyidagicha:
for (; ; )
<оpеratоr yoki blоk>;
Bu оpеratоr amal qilishni bajarishdan bоshlaydi. Kеyin takrоrlash qadamlari
bоshlanadi. Har bir qadamda
bajariladi, agar natija 0 dan farqli yoki rоst
(true) bo’ lsa, takrorlanish tanasi - <оpеratоr yoki blоk> bajariladi va охirida
bajariladi, aks hоlda bоshqaruv takrоrlash оpеratоridan kеyingi оpеratоrga o’ tiladi.
Takrorlanish tanasi – <оpеratоr yoki blоk> sifatida bitta оpеratоr, shu jumladan bo’sh
оpеratоr, yoki оpеratоrlar blоki kеlishi mumkin.
Takrorlanish takrorlanishi davomida bajarilishi lozim bo'lgan operatorlar majmuasi
takrorlanish tanasi deyiladi. Takrorlanish tanasi sifatida bir yoki bir nechta
operatordan foydalanish mumkin.
Agar takrorlanish tanasida bir nechta operatordan foydalanmoqchi bo`lsak bu
operatorlarni blok { } orasiga olishimiz kerak.
Misol 1: 1 dan 10 gacha bo'lgan sonlarni chiqaruvchi dastur:
Borland C++ Builder da dasturu:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
for(i=1; i<=10; i++)
Memo1->Lines->Add(i);
}
NATIJA:
Ekranda quyidagicha natija xosil bo'ladi: Quyida for takrorlanish operatori batafsil
berilgan.
for takrorlanish operatorini umumiy ko'rinishda quyidagicha ifodalash mumkin:
for (o'zgaruvchisining_boshlang'ich_qiymati; takrorlanish_sharti;
o'zgaruvchisini_oshirish)
takrorlanish _tanas i;
o'zgaruvchisini_oshirish o'rnida kamaytirish ham bo'lishi mumkin.
Agar takrorlanish tanasida bir nechta operatordan foydalanmoqchi bo`lsa unda
operatorlarniblok { } (begin va end) orasiga olishimiz kerak.
Misol 2: 10 dan 1 gacha bo'lgan sonlarni chiqaruvchi dastur:
Borland C++ Builder da dasturu:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
for(i=10; i>=1; i--)
Memo1->Lines->Add(i);
}
NATIJA:
break – funksiyasini har qanday takrorlanish operatoriga qo`llash mumkin. Bu
funksiya takrorlanish tugatilishini ta’ minlaydi. Ya`ni boshqarilishni takrorlanish
operatoridan keyingi operatorga uzatadi.
continue – funksiyasini har qanday takrorlanish operatoriga qo`llash mumkin. Bu
funksiya takrorlanish parametrining keyingi qiymatni qabul qilishini taminlaydi.
Boshqacha so`z bilan aytganda takrorlanish tanasi tugatiladi. Bunda takrorlanishning
o`zi tugatilmaydi.
Misol 3: n natural soni berilgan. Birdan n gacha bo`lgan sonlar yig`indisini
hisoblovchi dastur tuzilsin
Borland C++ Builder da dasturu:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int s,n,i;
n=StrToFloat(Edit1->Text);
s=0;
for (i=1; i<=n; i++)
s=s+i;
Label2->Caption=(s);
}
NATIJA:
for takrorlanish operatorining boshqa imkoniyatlari for takrorlanish operatorida qavs
ichidagi ifodalar bo'lmasligi mumkin, lekin ";" bo'lishi shart.
Eng sodda doimiy takrorlanuvchi takrorlanish operatori quyidagicha:
for ( ; ; )
3-Rejaga
do - while operatorida takrorlanishning tanasi kamida bir marta takrorlanadi. Shu
bir marta hisoblash ham yechilayotgan masalani mohiyatini buzib yuborishi
mumkin. Bunday hollarda while takrorlanish operatoridan foydalangan maqsadga
muvofiq.
while operatorining umumiy ko'rinishi:
while ( shart ) {
takrorlanish_tanasi;
}
takrorlanish_tanasi ixtiyoriy operator yoki operatorlar majmuidan iborat bo'lishi
mumkin.
while takrorlanish operatorning ishlash tartibi:
Agar (shart) rost ( true ) qiymatga ega bo`lsa, takrorlanish_tanasi bajariladi. Agar
(shart) yolg`on (false) qiymatga teng bo`lsa takrorlanish tugatiladi.
Agar ( shart ) true qiymatga ega bo`lmasa takrorlanish tanasi biror marta ham
bajarilmaydi.
while takrorlanish operatoridan, qachon (shart) false (yolg'on) qiymat qabul qilsa
chiqiladi.
Ya'ni boshqarilish while operatoridan keyingi operatorga uzatiladi. Agar (shart) false
qiymat qabul qilmasa, while takrorlanish operatoridan chiqib ketilmaydi va bu jarayon
takrorlanishlanib qolish deyiladi.
Dasturlash san'ati. do - while va while takrorlanish operatorlarida takrorlanish tanasi
sifatida faqat bitta operator ishlatiladiga bo'lsa, bu operatorni blok orasiga { }
olmasdan ham yozish mumkin. Lekin professional dasturchilar har qanay xolda
takrorlanish tanasini blokka { } olib yozishni tavsiya qilishadi. Bu esa sodir bo'lishi
mumkin bo'lgan mantiqiy xatoliklarni oldini oladi.
Misol 1: 1 dan 10 gacha bo'lgan sonlarni chiqaruvchi dastur tuzilsin.
#include
int main()
{
int i = 1;
while ( i <= 10 )
{
cout << i << endl;
i++;
}
system ("pause");
return 0;
}
Misol 2: 1+1/2+1/3+…+1/50 yig`indini hisoblovchi dastur tuzilsin.
#include
int main()
{
float i = 1; // sanagich
float s = 0; // yig'indi
while ( i <= 50 ) {
s += 1 / i;
i++;
}
cout << s << endl;
system ("pause");
return 0;
}
Misol 3: Kompyuter o'ylagan sonni topish dasturi
#include
#include
int main()
{
int x, y = 0, u = 0;
srand(time(NULL));
x = rand() % 1000 + 1;
cout << "Kompyuter o'ylagan sonni toping" << endl;
while (x != y)
{
cin >> y;
u++;
if (x > y) cout << "Kompyuter o'ylagan son katta" << endl;
else if (x < y) cout << "Kompyuter o'ylagan son kichik" << endl;
}
cout << "Qoyil topdingiz!!!" << endl;