Umumiy funksiyalar funksiya overloadining o’rnini bosishi mumkin.
Lekin bu yerda bitta kamchilik mavjud.
Biz oddiy funksiyani overload qilganimizda, har xil ma’lumotlar tipi uchun
funksiya tanasini har xil qilib yozishimiz mumkin.
Lekin umumiy funksiyada har xil tip qabul qila olgani bilan funksiya tanasi har doim bir xil bo’ladi, chunki bitta funksiyaga murojaat bo’ladi.
Faqatgina ma’lumotlar tipi har xil bo’la oladi.
reusable kod yozish imkonini beradi.
Shablonlar yordamida framework lar yaratish mumkin
Dastur kodi egiluvchanlik xususiyatiga ega bo’ladi.
Turli xil tipdagi ma’lumotlar ustida ishlash uchun kod yozishda vaqtni tejash
C++ dagi STL lar (Standard Shablon Kutubxonalar), nomidan ko’rinib turibdiki, shablonlar yordamida yaratilgan
6-tajriba ishi
Masala: Saralashning yaxshilangan usullari va ularning qo’llanishi
Talabalarni umumiy bali bo’yicha kamayish tartibida saralang.
#include
using namespace std;
int main()
{
int n;
cout<<"n= ";
cin>>n;
struct guruh {
string ism;
int ball;
}
arr[n];
int i,k,j,k3;
string k2;
for (i = 0; i
cout<< "Talaba ismi: ";
cin>>arr[i].ism;
cout<< "Talaba bali: ";
cin>>arr[i].ball;
}
for (i=1; i
k=arr[i].ball;
k2=arr[i].ism;
j=i-1;
while(j>=0 && arr[j].ballarr[j+1].ball = arr[j].ball;
arr[j+1].ism = arr[j].ism;
j--;
}
arr[j+1].ball = k;
arr[j+1].ism = k2;
}
for(i=0; i
cout<}
cout<
return 0;
}
7-tajriba ishi
Maasala: Rekursiya va ularni dasturlashda ishlatishga doir misol ishlash.
def kopaytma(a):
Sonni raqamlar yig‘indisini topuvchi rekursiv funksiya tuzing
#include
using namespace std;
int sum=0;
int function(int n)
{
if(n==0){
return sum;
}else{
sum+=n%10;
}
return function(n/10);
}
int main()
{
int n;
cin>>n;
cout<}
9-tajriba ishi
STL komponentalar va konteynerlar bilan tanishish.
#include
#include
#include
using namespace std;
int main(){
list royxat;
list :: iterator tr;
for (int i = 1; i <= 10; i ++){
royxat.push_back(i * 2);
royxat.push_front(i);
}
cout << "Saralanmagan :\n";
for (tr = royxat.begin(); tr != royxat.end(); tr ++)
cout << *tr << " ";
royxat.sort();
cout << "\nSaralangan :\n";
for (tr = royxat.begin(); tr != royxat.end(); tr ++)
cout << *tr << " ";
}
10-tajriba ishi
Masala: Foydalanuvchining shablonlariga doir masala yechish.
1. Massiv o‘suvchi ekanligini tekshiruvchi funksiya shablonini yarating.
#include
using namespace std;
template
bool tekshirish(T a[], int n){
for (int i = 0; i < n - 1; i ++){
if (a[i] >= a[i + 1])
return false;
}
return true;
}
int main(){
int a[5] = {10, 50, 30, 40, 50};
int n = sizeof(a) / sizeof(a[0]);
cout << (tekshirish(a, n) > 0 ? "O`suvchi" : "O`suvchi emas");
}
Do'stlaringiz bilan baham: |