Amaliy mashg‘ulot 24. Ko‘rsatkichlar va adres oluvchi o‘zgaruvchilar
Ishdan maqsad: C++ dasturlash tilida ko‘rsatkichlar
va adres oluvchi
o‘zgaruvchilar
bilan ishlash, ulardan foydalanish ko‘nikmalariga ega bo‘lish.
Dasturda ko‘rsatkichlar va adres oluvchi o‘zgaruvchilardan foydalana olish.
Masalaning qo‘yilishi: Tinglovchi variant bo‘yicha berilgan masalani C++
dasturlash tilida ishlashi va kerakli natija olishi lozim.
Ishni bajarish uchun namuna
Misol: Ikki sonning EKUBini topuvchi rekursiv funksiya tuzilsin. Funksiyaga
ko‘rsatkich orqali murojaat qilinsin va natija ekranga chop qilinsin.
Dastur kodi:
dastur.cpp fayli:
#include
using namespace std;
int EKUB(int, int );
int main(int argc, char* argv[])
{
int (*ekub_korsatkich)(int, int);
ekub_korsatkich=EKUB;
int a, b;
cout << "Birinchi sonni kiriting: ";
cin >> a;
cout << "Ikkinchi sonni kiriting: ";
cin >> b;
cout << "EKUB = " << ekub_korsatkich(a, b) << endl;
system("pause");
return 0;
}
int EKUB(int son1, int son2)
{
if ( son2 == 0 )
return son1;
return EKUB(son2, son1 % son2);
}
Dastur ishlashi natijasi:
Amaliy topshiriqlar
1. Berilgan n ta haqiqiy sonlar orasida qo‘shnilaridan (o‘zidan oldingi va
keyingi sonlardan) katta bo‘lgan sonlar miqdori topilsin.
2. Berilg an 10 ta natural sonlarning eng katta umumiy bo‘luvchisi topilsin.
3. Berilgan n va m natural sonlari uchun S = ∑
∏
(𝑖 + 𝑗)
𝑚
𝑗=5
𝑛
𝑖=1
ifodaning
qiymati hisoblansin.
4. Berilga
n nanatural sonlardan iborat ketma-ketlikning
tartib nomerlari
Fibonachchi sonlari bo‘lgan hadlarining yig‘indisi hisoblansin.
5. 0 dan 1 5 gacha bo‘lgan sonlar ikkilik ko‘rinishida chop qilinsin.
6. const int n = 20;
float B[n][n];
Qo‘shimcha
matrisadan
foydalanmagan
holda
B
matritsaning
transponerlangan ko‘rinishi BT hosil qilinsin.
7. n natural soni va 5-chi tartibli haqiqiy turdagi kvadrat matritsa berilgan. Bu
matritsaning n-darajasi topilsin (A1=A, A2=AA, A2=A2A va hokazo).
8. const int n=20;
float nuqta[n][2], d;
Matritsaning satr elementlarini tekislikdagi nuqtalarning
koordinatalari deb
qarab, shu nuqtalar orasidagi eng katta masofa topilsin.
Adabiyotlar ro‘yxati
1.
D.S. Malik. C++ Programming: From problem analysis to program design.
Course Technology, 2011.
2.
Ivor Horton. Beginning Visual C++ 2005. Wiley Publishing, 2005
.
3.
Б. Страуструп. Язык программирования C++ . Спетсиалное издание.-
М.: ООО «Бином-Пресс», 2006
.
4. Madraximov Sh.F., Gaynazarov S.M. C++ tilida Dasturlash asoslari//
Toshkent, O‘zbekiston Milliy Universiteti, 2009.
Keyslar banki
Keys 1. Funksiyaga ko‘rsatkich orqali ishlovchi dastur tuzildi. Dastur vazifasi
berilgan integralni epsilon aniqlikda hisoblash. Lekin
dastur ishlashi natijasida
epsilon aniqlikda hisoblashga erishilmadi.
Keysni bajarish bosqchilari va topshiriqlar:
• Keysdagi muammoni keltirib chiqargan
asosiy sabablarni belgilang
(individual va kichik guruhda).
• Dasturni to‘g‘ri ishlashi uchun bajariladigan ishlar ketma-ketligini belgilang
(juftliklardagi ish).
• C++ dasturlash tili imkoniyatlaridan kelib chiqib bir nechta usulda dastur kodini
taqdim eting (individual holda).