Butun, haqiqiy


Download 1.28 Mb.
bet10/22
Sana15.06.2023
Hajmi1.28 Mb.
#1479408
1   ...   6   7   8   9   10   11   12   13   ...   22
Bog'liq
C tilida o‘zgarmaslar

for (;;)
cout <<”Cheksiz takrorlash…” ;
Agar takrorlash jarayonida bir nechta o‘zgaruvchilarning qiymati sinxron ravishda o‘zgarishi kerak bo‘lsa, takrorlash ifodalarida zarur operatorlarni ‘,’ bilan yozish orqali bunga erishish mumkin:
for(int i=10; j=2; i<=20; i++; j=i+10) {...};
Takrorlash operatorining har bir qadamida j va i o‘zgaruvchilarning qiymatlari mos ravishda o‘zgarib boradi. Agar <ifoda> rost qiymatli o‘zgarmas ifoda bo‘lsa, takrorlash cheksiz bo‘ladi. Xuddi shunday, <ifoda> takrorlash boshlanishida rost bo‘lib, uning qiymatiga takrorlash tanasidagi hisoblash ta'sir etmasa, ya'ni uning qiymati o‘zgarmasa, takrorlash cheksiz bo‘ladi.
while takrorlash shartini oldindan tekshiruvchi takrorlash operatori hisoblanadi. Agar takrorlash boshida <ifoda> yolg‘on bo‘lsa, while operatori tarkibidagi <operator yoki blok> qismi bajarilmasdan cheklab o‘tiladi.
Ayrim hollarda <ifoda> qiymat berish operatori ko‘rinishida kelishi mumkin. Bunda qiymat berish amali bajariladi va natija 0 bilan solishtiriladi. Natija noldan farqli bo‘lsa, takrorlash davom ettiriladi.
Agar rost ifodaning qiymati noldan farqli o‘zgarmas bo‘lsa, cheksiz takrorlash ro‘y beradi.

16. continue operatori va undan foydalanish holati.


Dasturlash tillarida ma‘lum bir holatlarda dastur tarkibidagi buyruqlar faqatgina bir qadamga tashlab keyingisi bajarilish kerak bo‗lgan holatlar ham mavjud. Bunday holatlarda break operatoridan foydalana olmaymiz, chunki break o‗zi turgan blokdan chiqib ketadi. Dastur tanasida bitta buyruq bajarilmasdan keyingisiga o‘tish uchun continue operatoridan foydalaniladi. Continue operatori ham break operatoriga o‗xshaydi, lekin bunda faqat bitta bo‗yruqni cheklab o‗tadi. Asosan takrorlanish jarayonlarida ma‘lum bir holatlarda takrorlanishning ba‘zi bir holatlari hisoblanmaslik kerak bo‗lganda continue operatoridan foydalanish maqsadga muvofiq bo‗ladi. Takrorlanish jarayonida takrorlanishning biror bir qadamini tashlab ikkinchisiga o‗tish uchun continue bo‗yrug‘idan foydalanish qulay hisoblanadi.
include
void main()
{ double s, x;
int x;

Cout<<(“\n 0 bilan tugallanuvchi sonlar katorini kiriting \n”);
for (x=1.0; s=0.0; k=0; x!=0.0);
{ Cin>>(“%lf”, &x);
if (x<=0.0) continue;
k++; s+=x;
}
Cout<<“\n summa=”<}



17. break operatori va va undan foydalanish holati.
Ba‘zan dastur yoki qaysidir buyruqlar to‗liq ijro etilmasdan, qo‗qqisdan ishni to‗xtatib (avariya holati) dastur yoki buyruqdan chiqib ketishga to‗g‗ri keladi. Ayniqsa, bunday holat takrorlanish va tanlash buyruqlarini tashkil qilishda ko‗p uchraydi. Bunday vaziyatlarda break (uzish) operatoridan foydalaniladi. C++ break operatorini uchratgach, dasturni bajarishni to‗xtatadi va break operatori joylashgan blokdan chiqib, undan keyingi buyruqlarni bajarishga o‗tadi. Demak, unutmaslik kerakki, break operatori faqat o‗zi joylashgan blokdan chiqib ketish imkonini beradi. Lekin tanlash, sikl buyruqlari ichida break operatoridan foydalanilsa, o‗sha byuyruqning o‗zini blok deb tushunadi. Bu operatordan zarurat bo‗lganda dasturning ixtiyoriy joyida foydalanish mumkin. Ammo chuqur o‗ylamasdan foydalanmaslik tavsiya etiladi. Masalan, int main( ) funksiyasi blokida foydalanilsa, break; operatoridan keyingi buyruqlar bajarilmaydi. Bu holda break operatori int main( ) funksiyasi blokidan chiqishni ta‘minlaydi va natijada dasturni bajarish to‗xtatiladi. Keyingi mavzularda aniq misollar yordamida bu operator bilan yanada yaqinroq tanishamiz. 91 C++ dasturlash tilida asosan takrorlanish jarayonida takrorlanishlar soni uning tarkibidagi ifodaga bog‘liq bo‗lib qoladi shunday vaziyatlarda takrorlanishni to‘xtatish uchun break operatoridan foydalanish maqsadga muvofiq. Agar break operatori dastur asosiy blokida bo‗lsa, break operatoridan keyingi operatorlar bajarilmasdan qoladi Dastur natijasi s=41 kabi bo‗ladi. Chunki sikl parametrining 9va 5 ga teng qiymatlarini continue operatori yordamida o‗tkazib yuboradi va 1 dan 10 gacha bo‗gan boshqasonlar yig‗indisini hisoblaydi. Agar ushbu dasturda {if(x==9) continue;s+=x;}; blokni {if(x>5) break;s+=x;}; kabi o‗zgartirsak, natija s=15 kabi bo‗ladi. Chunki x=6 bo‗lganda break operatori sikl tanasining bajarilish jarayonini to‗xtatadi. break va continue operatorlaridan tarmoqlanish buyrug‗i bloklarida foydalanib b‘lmaydi. Masalan, if(x>=6) {x=x+a; beak;}; else {x=x-a; continue}; kabi buyruqlarni kompilyator xato deb hisoblaydi. Ammo yuqorida keltirilganidek, if(x>=6) beak; else continue; kabi buyruqlarga ruxsat etiladi..
18. Dasturda goto operatori boshqaruvni qayerga uzatadi?
Shartsiz o„tish(Goto) operatori Algoritm bajarilish vaqtida ma‘lum bir buyruqlar sakrab o‗tish yoki ba‘zi buyruqlar bir necha marta takrorlanish holatlari ham mavjud. Bunday holatlarda shartsiz o‗tish operatori yordamida dasturlashimiz mumkin. Tarif: Algoritm bajarilish davrida uning qandaydir qismi tashlanib yoki sakrab o‗tish jarayoniga shartsiz o„tish jarayoni deyiladi. Shartsiz o‗tish jarayonini takrorlanuvchi va tarmoqlanuvchi jarayonlarda ham ishlatish mumkin. Shartsiz o‗tish operatorining umumiy ko‘rinishi quyidagicha: Goto ; : Goto operatorining ishlash jarayoni goto kalit so‗zidan keyingi belgini dastur tanasidan izlaydi va topilgan : dan keying operatorlar bajariladi. Bunda goto kalit so‗zining ma‘nosi “ga o„tish” demakdir. Belgi – ixtiyoriy identifikator. Belgi o‗rnida son va raqamlardan foydalanib bo‗lmaydi. C++ tili goto operatorini uchratgach, undan keyingi belgini dasturning qaysi satrida ko‗rsatilib, undan keyin (:) qo‗yilgan bo‗lsa, dastur bajarilishini o‗sha satrdan davom ettiradi. Goto operatori yordamida dasturning istalgan satridan oldingi yoki keyingi satrlardan biriga sakrab o‗tib, dastur ijrosini davom ettirish mumkin. Bu barcha dasturlash tillarida bo‗lgan kuchli imkoniyat bo‗lishi bilan birgalikda quyidagicha muammolarni ham keltirib chiqaradi: - dastur tarkibida goto operatoridan ko‗p foydalanilganda dasturni yoki dastur ijrosini tushunish qiyinlashadi. Shuningdek, tuzilgan dasturning qanday 106 masalani hal qilishini ma‘lum vaqt o‗tgach dastur muallifining o`zi ham aniqlashiuchun ma‘lum vaqt talab etiladi; - tarmoqlanish, takrorlanish buyruqlarining ichidan tashqariga sakrab chiqish va aksincha tashqaridan buyruq ichiga kirish kutilmagan xatoliklarga olib kelishi mumkin. Shuning uchun dasturchilar bu operatorlardan mumkin qadar kam foydalanishga harakat qilishadi.
19. Funksiyaga ta’rif bering?
Funktsiya bu – C++ tilidа mаsаlа yechishdаgi kаlit elementlаridаn biridir. Funktsiyalаr modullаr deb hаm аtаlаdi. Funktsiyalаr oldindаn аniqlаngаn vа foydаlаnuvchi tomonidаn аniqlаnаdigаn funktsiyalаrgа bo‘linаdi.
Oldindаn аniqlаngаn funktsiyalаr аsosаn tilning turli kutubxonа fаyllаri orqаli аniqlаngаn. Ulаrgа mаtemаtik funktsiyalаr, turlаrni tekshirish funktsiyalаri, belgi vа sаtrlаr bilаn ishlаsh funktsiyalаri misol bo‘lаdi
Funksiya – bu yordamchi algoritm bo’lib (dasturosti), ish natijasi sifatida ma’lum bir qiymatlar qaytaradi.
Funksiya – unikal nomga bo’lgan ega buyruqlar (operatorlar) ketma-ketligi bo’lib: • Dastur tanasining ixtiyoriy joyidan uni chaqirib olish (unga murojat qilish) mumkin; • Chaqirgan dasturdan ishlash uchun kerak bo’lgan ma`lumotlar, o’zgaruvchilarning boshlang’ich qiymatlarini olish mumkin; • Oldindan toifasi(tipi) belgilangan turdagi natijaviy ma`lumotni qaytarish mumkin
Funksiya turlari •void Error () - hеch qаndаy nаtijа qаytаrmаydigаn (bundаy funksiyalаr prоtsеdurа dеb hаm аtаlаdi), fоrmаl pаrаmеtrlаrgа egа bo'lmаgаn Error nоmli Funksiya. •void func(int,int) - ikkitа fоrmаl pаrаmеtrgа (butun sоnlаr tipigа tеgishli) egа bo'lgаn func nоmli funksiya. Hеch qаndаy nаtijа qаytаrmаydi. •int func_1(void) - fоrmаl pаrаmеtrlаrgа egа bo'lmаgаn func_1, nоmli Funksiya. Nаtijа tipi butun sоnli turgа mаnsub. •float f_3 (int а, int b, float c ) - uchtа fоrmаl pаrаmеtrgа (ikkitаsi butun sоnlаr turigа vа uchinchisi hаqiqiy sоnlаr turigа tеgishli) egа bo'lgаn f_3. Nаtijа turi hаqiqiy sоnlаr tоifаsigа (float) mаnsub.
20. Funksiya prototipi nima?
funksiya e `lоnini funksiya prоtоtipi tаvsiflаydi (аyrim xоllаrdа signаturа dеyilаdi). funksiya prоtоtipi quyidаgi ko'rinishdа bo'lаdi:
•Nаtijа turi(tipi) funksiya nоmi оldidа ko'rsаtilаdi int Max ( int a, int b ); •Fоrmаl pаrаmеtrlаr ro'yxаti ko'rsаtilаdi float qq ( int a, float x, char c ); •Fоrmаl pаrаmеtrlаr ro'yxаti o'zgаruvchilаr nоmsiz ko'rsаtilаdi float qq ( ); int, float, char •O'zgаruvchi-pаrаmеtrlаrdаn fоydаlаnish mumkin int Olim (int & a, int & b ); ( Odаtdа funktsiyalаr e`loni sаrlаvhа fаyllаrdа e`lon qilinаdi vа #include direktivаsi yordаmidа dаstur mаtnigа qo‘shilаdi.
Funktsiya e`lonini funktsiya prototipi tаvsiflаedi (аyrim hollаrdа signаturа deyilаdi). Funktsiya prototipi quyi dаgi ko‘rinishdа bo‘lаdi:

Download 1.28 Mb.

Do'stlaringiz bilan baham:
1   ...   6   7   8   9   10   11   12   13   ...   22




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