R. A. Ro‘ziyev, U. M. Mirsanov, F. J. Toxirov, L. S. Isroilova, H. N. Arziqulov
-misol. 1 kg konfetning narxi haqiqiy sonda berilgan. 1, 2, …, 10 kg konfetning bahosini chiqaruvchi dastur. 1-usul. for
Download 1.27 Mb.
|
C qo`llanma 29.06
- Bu sahifa navigatsiya:
- 2-misol.
- 5-misol.
- 6-misol.
- 7-misol.
- Mustaqil bajarish uchun topshiriqlar
- Funsiyalar haqida tushuncha va ularni yaratish
1-misol. 1 kg konfetning narxi haqiqiy sonda berilgan. 1, 2, …, 10 kg konfetning bahosini chiqaruvchi dastur.
1-usul. for takrorlash operatoridan foydalanilsa, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ float b; cout<<"b= "; cin>>b; for (int i=1; i<=10; i++) cout< return 0; } 2-usul. while takrorlash operatoridan foydalanib hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ float b; cout<<"b= "; cin>>b; int i=1; while (i<=10){ cout< i++; } return 0; } 3-usul. do while takrorlash operatoridan foydalanib hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ float b; cout<<"b= "; cin>>b; int i=1; do { cout< i++; } while (i<=10); return 0; } 2-misol. 1 dan n gacha bo‘lgan, 4 ga karrali sonlar yig‘indisini hisoblash dasturi. 1-usul. for takrorlash operatoridan foydalanib hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, s=0; cout<<"n= "; cin>>n; for (int i=1; i<=n; i++) if (i%4==0) s+=i; cout< return 0; } 2-usul. while takrorlash operatoridan foydalanib hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, s=0; cout<<"n= "; cin>>n; int i=1; while (i<=n){ s+=i; i++; } cout< return 0; } 3-usul. do while takrorlash operatoridan foydalanib hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, s=0; cout<<"n= "; cin>>n; int i=1; do { s+=i; i++; } while (i<=n); cout< return 0; } 3-misol. a va n butun sonlari berilgan (n>0). 1+ a + a2 + a3 + ... + an . Bitta sikldan foydalanib yig‘indisini hisoblash dasturi. 1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include #include using namespace std; int main(){ int n, a; float s=0; cout<<"a= "; cin>>a; cout<<"n= "; cin>>n; for (int i=0; i<=n; i++) s+=pow(a,i); cout< return 0; } 2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include #include using namespace std; int main(){ int n, a; float s=0; cout<<"a= "; cin>>a; cout<<"n= "; cin>>n; int i=0; while (i<=n){ s+=pow(a,i); i++; } cout< return 0; } 3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include #include using namespace std; int main(){ int n, a; float s=0; cout<<"a= "; cin>>a; cout<<"n= "; cin>>n; int i=0; do { s+=pow(a,i); i++; } while (i<=n); cout< return 0; } 4-misol. n (n>0) butun son berilgan. Butunga bo‘lish va qoldiqni aniqlash operatsiyalaridan foydalanib, n sonida 3 ga karrali raqam borligini aniqlovchi dastur. 1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; if (n>0) { for (int i=1; ; i++){ if ((n%10)%3==0) k++; n=n/10; if (n==0) break; } cout< } else cout<<"Butun va musbat son kiriting"; } 2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; if (n>0) { int i=1; while (n>0){ if ((n%10)%3==0) k++; n=n/10; } cout< } else cout<<"Butun va musbat son kiriting"; return 0; } 3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; if (n>0) { int i=1; do { if ((n%10)%3==0) k++; n=n/10; } while (n>0); cout< } else cout<<"Butun va musbat son kiriting"; return 0; } 5-misol. n (n>1) butun son berilgan. Agar u tub son bo‘lsa true, aks holda false jumlasini chiqaruvchi dastur. 1-usul. for takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; for (int i=1; i<=n; i++) if (n%i==0) k++; if (k==2) cout<<"true"; else cout<<"false"; return 0; } 2-usul. while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; int i=1; while (i<=n){ if (n%i==0) k++; i++; } if (k==2) cout<<"true"; else cout<<"false"; return 0; } 3-usul. do while takrorlash operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n, k=0; cout<<"n= "; cin>>n; int i=1; do { if (n%i==0) k++; i++; } while (i<=n); if (k==2) cout<<"true"; else cout<<"false"; return 0; } 6-misol. Barcha uch xonali sonlar ichida raqamlarining yig‘indisi 21 ga teng bo‘lgan birinchi sonni topish dasturi. Berilgan misolni break operatoridan foydalanib, hisoblashning dastur kodi quyidagicha: #include using namespace std; int main(){ int n; for(int i=100; i<=999; i++) { int a=i%10; int b=i/10; int c=b/10; int d=b%10; if (a+c+d==21) { cout< } return 0; } 7-misol. n butun son berilgan (n>0). 1 va n oralig‘idagi tub sonlarni chiqarish dasturi. Berilgan misolni continue operatoridan foydalanib hisoblashning dastur kodi quyidagicha bo‘ladi: #include using namespace std; int main(){ int n; cout<<"n= "; cin>>n; bool division=false; for (int i=2; i<=n; i++) { for (int j=2; j { if (i%j) continue; else { division=true; break; } } if (!division) cout< division=false; } return 0; } Mustaqil bajarish uchun topshiriqlar 1. 1 dan n gacha bo`lgan butun sonlarning ko‘paytmasini topish dasturini tuzing. 2. Quyidagi yig`indini hisoblash dasturini tuzing: . Bunda n>0. 3. 1,1-1,2+1,3-… Ifodaning qiymatini topish dasturini tuzing. 4. Quyidagi misolni dasturini tuzing: 5. n butun soni berilgan (n>0). 1!+2!+…+n! ni bitta sikldan foydalanib, yig‘indisini hisoblash dasturini tuzing. 6. Quyidagi yig‘indini hisoblash dasturini tuzing: 1n+2n-1+…+n1. Bunda n>0. 7. n (n>1) butun son berilgan. 1+2+…+k yig‘indining n dan katta yoki teng bo‘lishini ta’minlaydigan eng kichik k butun soni va yig‘indining qiymatini chiqaruvchi dastur tuzing. 8. n (n>1) butun son berilgan. Butunga bo‘lish va qoldiqni aniqlash amallaridan foydalanib, uning raqamlari yig‘indisini va raqamlari sonini chiqaruvchi dastur tuzing. 9. n (n>1) butun son berilgan. Agar u tub son bo‘lsa true, aks holda false jumlasini chiqaruvchi dastur tuzing. 10. a va b sonlar oralig`idagi butun sonlardan iborat bo`lgan uchburchakning tomonlari berilganda, uning yuzasi butun son bo`ladigan tomonlarni topuvchi dastur tuzing. 2.3-§. C++ dasturlash tilida funksiyalarDasturlashni o‘rganishni boshlaganlar ko‘pincha quyidagi savolga duch keladi: “Dasturni funksiyalarsiz bajarish va barcha kodlarni to‘g‘ridan-to‘g‘ri main() funksiyasiga kiritish mumkinmi?” Agar uncha katta bo‘lmagan dastur kodi ustida amallar bajarilsa, main() funksiyasi yetarli hisoblanadi. Funksiyalarning asosiy vazifasi murakkab ko‘p satrli dasturlarning dastur kodini yozishni soddalashtirishdir. Dasturning hajmi va murakkabligi oshib borishi bilan, barcha kodlarni main() funksiyasi ichida saqlash qiyinlashadi. Shu bois, ushbu muammolarni bajarishda funksiyalardan foydalaniladi. Funksiya asosiy dasturdan alohida bo‘lgan mini-dastur ko‘rinishida yoziladi. Funksiya murakkab vazifalarni kichikroq va sodda vazifalarga ajratishga imkon beradi, bu dasturning umumiy murakkabligini keskin pasaytiradi va hisoblash vaqtini qisqartiradi. Funsiyalar haqida tushuncha va ularni yaratish Dasturlash amaliyotida, ma’lum bir maqsadni amalga oshiradigan bir xil operatorlar guruhi ishtirok etgan ko‘p hollarida, dasturning ba’zi bir qismlarida o‘zgarishsiz takrorlash zarur bo‘lgan vaziyatlarga duch kelinadi. Bu holatlarda ortiqcha dastur kodi yozishdan voz kechish uchun qismdasturlar taklif etiladi. Qismdastur – bu dasturning turli qismida bir necha marotaba qo`llash mumkin bo`lgan til birikmalari guruhidir. Funksiya – bu ma’lum bir vazifani bajaradigan tavsif va operatorlarning nomlangan to‘plamidir. Funksiya parametrlarni qabul qilishi va hisoblashning natijaviy qiymatini berishi mumkin. Funksiyaga ishlov berish uchun berilgan ma’lumot uning parametri, funksiyani hisoblash natijasi esa uning qiymati deyiladi. Ma’lumki, C ++ dasturi bir yoki bir nechta funksiyalardan tashkil topadi. Dastur ishga tushgach, avval asosiy funksiya bajariladi. Agar funksiyaga murojaat asosiy funksiyaning operatorlari orasida ishlatilsa, u holda boshqarish funksiyani operatorlariga o‘tkaziladi. Funksiyaning barcha operatorlari bajarilgandan so‘ng, boshqaruv funksiyaga murojaat qilingandai so`ngi operatorga o`tkaziladi. Funksiyaga murojaat qilishda avval, uni e’lon qilish lozim. Funksiya e’loni sarlavha va uning tanasidan iborat bo‘ladi. Ya’ni: funksiya_tipi funksiya_nomi (o‘zgaruvchilar ro‘yxati) { funksiya_tanasi } Funksiya sarlavhasi quyidagilarni o‘z ichiga oladi: – funksiya_tipi – funksiya o‘zlashtiradigan qiymat turi. Agar funksiya hech qanday qiymatni o‘zlashtirmasa, void tipi ko‘rsatiladi; – funksiya_nomi – foydalanuvchi tomonidan funksiyaga beriladigan nom, ixtiyoriy identifikator; – o‘zgaruvchilar ro‘yxati – funksiyaga berilgan, bir-biridan vergul bilan ajratilgan qiymatlar ro‘yxati (argumentlar). Ro‘yxatdagi har bir o‘zgaruvchining turi va nomi ko‘rsatiladi. Agar funksiyaning argumentlari bo‘lmasa, u holda void tipi ko‘rsatiladi yoki qavs ichida hech bir operator yozilmaydi; – funksiya tanasi – bu { } qavslar ichiga olingan tavsif va operatorlar ketma-ketligidir. Umumiy holda, C++ dasturlash tilining funksiyalarini tuzilishi quyidagi ko‘rinishda bo‘ladi: kompilyator ko‘rsatmalari funksiya_tipi 1_funksiya (o‘zgaruvchilar ro‘yxati) { 1_funksiya_tanasi; } funksiya_tipi 2_funksiya (o‘zgaruvchilar ro‘yxati) { 2_funksiya_tanasi; } … funksiya_tipi n_funksiya (o‘zgaruvchilar ro‘yxati) { n_funksiya_tanasi; } int main(o‘zgaruvchilar ro‘yxati) { asosiy_funksiya_tanasi; // bu yerda 1_funksiya, 2_funksiya, ... n_funksiya larni chaqirish uchun operatorlar bo‘lishi mumkin. } Shu bilan birga, dastur kodini yozishning quyidagi shakli ham mavjud: kompilyator ko‘rsatmalari funksiya_tipi 1_funksiya (o‘zgaruvchilar ro‘yxati); funksiya_tipi 2_funksiya (o‘zgaruvchilar ro‘yxati); ... funksiya_tipi n_funksiya (o‘zgaruvchilar ro‘yxati); int main(o‘zgaruvchilar ro‘yxati) { asosiy_funksiya_tanasi; // bu yerda 1_funksiya, 2_funksiya, ... n_funksiya larni chaqirish uchun operatorlar bo‘lishi mumkin. } funksiya_tipi 1_funksiya (o‘zgaruvchilar ro‘yxati) { 1_funksiya_tanasi; } funksiya_tipi 2_funksiya (o‘zgaruvchilar ro‘yxati) { 2_funksiya_tanasi; } … funksiya_tipi n_funksiya (o‘zgaruvchilar ro‘yxati) { n_funksiya_tanasi; } Yuqorida keltirilgan funksiyalar main() funksiyasidan keyin tavsiflangan. Bunda barcha funksiyalarning sarlavhalari main() funksiyasidan oldin yoziladi. Ushbu ko‘rinishda sarlavhalarni oldindan yozish, funksiya prototiplari deb nomlanadi. Prototip kompilyatorga funksiya o‘zlashtiradigan qiymat turini, argument sifatida foydalaniladigan o‘zgaruvchilar turini va ularning tartibini ko‘rsatib beradi. Prototiplar asosiy dasturda funksiyalarning to‘g‘ri chaqirilishini tekshirish uchun ishlatiladi. Funksiya prototipida ko‘rsatilgan o‘zgaruvchilarning nomlarini kompilyator e’tiborsiz qoldiradi: // ushbu yozuvlar teng kuchlidir int func ( int a , int b); int func ( int , int ); Funksiya dasturning istalgan qismida chaqirilishi mumkin. Buning uchun uning nomi ko‘rsatiladi va agar argumentlari mavjud bo‘lsa, qiymatlari qavs ichida vergul bilan ajratib yoziladi. Funksiyani chaqirish umumiy holda quyidagicha bo`ladi: funksiya_nomi (o‘zgaruvchilar ro‘yxati); Funksiyaga oid quyidagi misolni ko`rib chiqamiz. Download 1.27 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling