1- amaliy mashg’ulot mavzu: funksiyalar. RЕKURSIV funksiyalar. Foydalanuvchi kutubxonasi. Ishning Maqsadi



Download 0,82 Mb.
bet1/8
Sana23.01.2022
Hajmi0,82 Mb.
#405284
  1   2   3   4   5   6   7   8
Bog'liq
DsturlashII ishlanmalari qayta topshirish


1- AMALIY MASHG’ULOT

MAVZU: FUNKSIYALAR. RЕKURSIV FUNKSIYALAR. FOYDALANUVCHI KUTUBXONASI.

Ishning Maqsadi: C++ dasturlash tilida funksiyalar hosil qilish va uning dasturini yaratish ko’nikmalarini egallsh.

Masalaning qo’yilishi:

A va B sonlar ichida mukammal sonlar borligini aniqlang?


Masalani yechish goyasi:

Mukammal son-bo’luvchilari yig’indisi (o’zidan tashqari) shu sonni o’ziga teng bo’lgan songa aytiladi.Shu oradagi har bir son uchun bo’luvchilarini yig’indisi shu son bilan solishtirib chiqiladi. Funksiya yaratilib funksiya yordamida oraliqdagi sonlar tekshiriladi.



Nazariy qism

Funksiya bu – C++ tilida masala yechishdagi kalit elementlaridan biridir.

Funksiya parametrlari va argumentlari:

Programmada ishlatiladigan har qanday funksiya e’lon qilinishi kerak. Odatda funksiyalar e’loni sarlavha fayllarda e’lon qilinadi va #include direktivasi yordamida programma matniga qo‘shiladi. Funksiya e’lonini funksiya prototipi tavsiflaydi (ayrim hollarda signatura deyiladi). Funksiya prototipi quyidagi ko‘rinishda bo‘ladi:

Bu yerda - funksiya ishlashi natijasida y tomonidan qaytaradigan qiymatning turi. Agar qaytariladigan qiymat turi ko‘rsatilmagan bo‘lsa, kelishuv bo‘yicha funksiya qaytaradigan qiymat turi int deb hisoblanadi,

- vergul bilan ajratilgan funksiya parametrlarining turi va nomlari ro‘yxati. Parametr nomini yozmasa ham bo‘ladi. Ro‘yxat bo‘sh bo‘lishi ham mumkin. Funksiya prototiplariga misollar:

int almashsin(int,int);

double max(double x, double y);

void func();

void chop_etish(void);

Funksiya prototipi tushirib qoldirilishi mumkin, agar programma matnida funksiya aniqlanishi uni chaqiradigan funksiyalar matnidan oldin yozilgan bo‘lsa. Lekin bu holat yaxshi uslub hisoblanmaydi, ayniqsa o‘zaro bir-biriga murojaat qiluvchi funksiyalarni e’lon qilishda muammolar yuzaga kelishi mumkin.

Funksiya aniqlanishi – funksiya sarlavhasi va figurali qavsga (‘{‘,’}’) olingan qandaydir amaliy mazmunga ega tanadan iborat bo‘ladi. Agar funksiya qaytaruvchi turi void turidan farqli bo‘lsa, uning tanasida albatta mos turdagi parametrga ega return operatori bo‘lishi shart. Funksiya tanasida bittadan ortiq return operatori bo‘lishi mumkin. Ularning ixtiyoriy birortasini bajarish orqali funksiyadan chiqib ketiladi. Agar funksiyaning qiymati programmada ishlatilmaydigan bo‘lsa, funksiyadan chiqish uchun parametrsiz return operatori ishlatilishi mumkin yoki umuman return ishlatilmaydi. Oxirgi holda funksiyadan chiqish – oxirgi yopiluvchi qavsga yetib kelganda ro‘y beradi.Funksiya programmaning birorta modulida yagona ravishda aniqlanishi kerak, uning e’loni esa funksiyani ishlatadigan modullarda necha marta yozilishi mumkin. Funksiya aniqlanishida sarlavhadagi barcha parametrlar nomlari yozilishi shart.

Odatda programmada funksiya ma’lum bir ishni amalga oshirish uchun chaqiriladi. Funksiyaga murojaat qilganda, u qo‘yilgan masalani yechadi va o’z ishini tugatishida qandaydir qiymatni natija sifatida qaytaradi

Funksiyani chaqirish uchun uning nomi va undan keyin qavs ichida argumentlar ro‘yxati beriladi:

(, ,..., );

Bu yerda har bir - funksiya tanasiga uzatiladigan va keyinchalik hisoblash jarayonida ishlatiladigan o‘zgaruvchi, ifoda yoki o’zgarmasdir. Argumentlar ro‘yxati bo‘sh bo‘lishi mumkin.

Funksiyalar ham o‘z tanasida boshqa funksiyalarni, o‘zini ham chaqirishi mumkin.

O‘z tanasida o‘zini chaqiradigan funksiyalarga rekursiv funksiyalar deyiladi.



Dastur kodi:

#include "iostream"

#include "math.h"

using namespace std;

bool mukammal (int s)

{

int s1=0;

for(int i=1;i<=s/2;i++)

{

if(s%i==0)

s1=s1+i;

}

if(s==s1) return 1;

else return 0;

}

int main()

{ int A,B;

cout<<"A:=";

cin>>A;

cout<<"B:=";

cin>>B;

cout<<"A va B sonlari orasida joylashgan mukammal sonlar quyidagilar \n";

for(int i=A;i<=B;i++)

{

if(mukammal(i))

cout<

}

return 0;

}




Download 0,82 Mb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish