#include
using namespace std;
int main()
{ int i,j,n;
cout<<"n="; cin>>n;
double **q = new double *[n];
for (i = 0; i < n; i++) q[i] = new double[n];
for (i = 0; i < n; i++)
{ for (j = 0; j < n; j++){
cout << (q[i][j] = (i+1)*(j+1))<< "\t";}
cout << endl;}
for (i = 0; i < n; i++) delete[] q[i];
delete[] q;
}
Dastur natijasi:
Misol: Matritsa va vektorni ko'paytirish masalasi uchun dinamik massivlardan foydalanish
#include
#include
#include
using namespace std;
int main ()
{ srand(time(0));
int i,j,n,m;
cout << "n=";
cin >> n; //Matritsa ustunlari soni
cout << "m=";
cin >> m; //Matritsa satrlari soni
float *b=new float [n]; // b massivga dinamik xotira ajratish
float *c=new float [m]; // c massivga dinamik xotira ajratish
float ** a =new float *[m] ; // ko'rsatkichlar massiviga xotira ajratish
for (i=0;i
a[i]=new float [n]; // dinamik xotira ajratish
//a matritsaga element kiritish va chop qilish
cout<<"\n a massiv elementlari \n\n";
for (i=0;i
for(j=0;j
a[i][j]=rand()%10+1;
cout<
cout<
//b massivga element kiritish va chop qilish
cout<<"\n b massiv elementlari \n\n";
for(j=0;j
b[j]=rand()%10+1;
cout<
// a matritsa bilan b massivni qo'shib c massivga yuklash
cout<<"\n\n c massiv elementlari \n\n";
for (i=0; i
{ float s=0;
for (j=0; j
s+=a[i][j]+b[j] ;}
c[i]=s;
cout << "c["<
// massivlarni xotiradan o'chirish, xotirani tozalash
delete [] b;
delete [] c;
for (i=0;i
delete []a; //massivni o'zi o'chirilyapti
return 0;}
Dastur natijasi:
5- AMALIY MASHG’ULOT
MAVZU: OBYEKTGA YO'NALTIRILGAN DASTURLASH TUSHUNCHASI.
Ishning maqsadi: C++ dasturlash tilida obyektga yo’naltirilgan dasturlash tamoyilaridan foydalanib noma’lum nomlar fazosini tashkil qilish ko’nikmalarini shakllantirish.
Masalaning qo’yilishi:
Variantda berilgan class, konstruktor va class maydonlari yordamida noma’lum nomlar fazosini yarating. Class da obyektlar massivi ustida quyidagi funksiyalarni bajaruvchi 3 ta static metod yozing:
- Qidirish metodi
- Saralash metodi
- O’zgartirish metodi
Yuqoridagi metodlar uchun class maydonlaridan ixtiyoriysi tanlansin.
Masala: “talaba” nomli nomlar fazosi va unda “Talaba” classini yarating. Class maydonlari: Familiyasi, ismi, kursi, baholari, stipendiyasi. Class komponentalarini inkapsulyastiyalash, konstruktorlar va class metodlarini ishlab chiqing. Obyektlar massivini yarating va ular ustida qidirish, saralash, o’zgartirish amallarini bajaring.
Masalani yechish g‘oyasi: talaba fazosida Talaba classi yaratiladi va unda maydonlarni yopiq holda e’lon qilinadi. Konstruktor orqali talabaning familiyasi, ismi va kursi kiritiladi. Baholari massiv ko’rinishda e’lon qilinib, tasodifiy baholar oladigan metod yoziladi. Stipendiyasini baholariga qarab belgilovchi metod ham qilinadi. Talaba sessiyani yopganligiga qarab kursdan-kursga o’tkaziladi, agar u 4 kurs bo’lsa bitiruvchi ekanligi haqida habar chiqariladi. Bu uchun Talaba classida setKurs() metodi yoziladi. Main classda familiya va ism uchun string massivi tuzilib(tashqaridan kiritmaslik uchun), Talaba classiga tegishli obyektlar massivi konstruktoriga parametr sifatida beriladi va talabalar haqida ma’lumot chop etiladi. Main classida obyektlar massivi ustida talaba ismi bo’yicha qidiruvchi, familiyasi bo’yicha tartiblovchi va kursini o’zgartiruvchi funksiyalar do’st funksiya qilib yoziladi. Natija funksiya ichida to’g’ridan-to’g’ri murojaat etiladi.
Do'stlaringiz bilan baham: |