C++ da Matritsa determinantini hisoblash dasturini ishlab chiqish
Mavzu: “C++ da Matritsa determinantini hisoblash dasturini ishlab chiqish " Reja I. KIRISH II. Asosiy qism 2.1. C++da matritsa tushunchasi 2.2.C++ da bir o lchamli matritsa va uni e lon qilishʻ ʼ 2.3. C++ da ko p o lchamli matritsa ʻ ʻ 2.4. C++da dinamik matritsalar bilan ishlash 2.5. C++da matritsa determinantini hisoblash III. XULOSA IV. FOYDALANGAN ADABIYOTLAR 1
KIRISH Kurs ishining asosiy maqsadi C++ dasturlash tilidan foydalangan holda matritsa determinantini hisoblaydigan dastur yaratishdir. Matritsa determinanti chiziqli algebra va uning amaliy tadbiqlarida muhim o'rin tutad. Bu jarayonda quyidagi maqsadlarga erishiladi: 1. Chiziqli algebra asoslarini tushunish: Matritsa va determinant tushunchalarini o'rganish. 2. Dasturlash ko'nikmalarini rivojlantirish: C++ tilida murakkab algoritmlarni amalga oshirish. 3. Amaliy dastur yaratish: Matritsa determinantini hisoblaydigan dastur yozish va uni test qilish. Ahamiyati Matritsa determinanti chiziqli algebra, fizika, muhandislik va boshqa ko'plab sohalarda keng qo'llaniladi. Ayniqsa, sistemalarni yechish, matritsa teskari matritsasini topish va vektorlar orasidagi bog'liqlikni aniqlashda determinanti hisoblash muhimdir. Shu sababli, matritsa determinantini hisoblay oladigan dastur yaratish nafaqat nazariy bilimlarni mustahkamlaydi, balki amaliy jihatdan ham foydali bo'ladi 2
2.1. C++da matritsa tushunchasi Matritsa tushunchasi matematika va informatika sohalarida muhim ahamiyatga ega. Quyida matritsa tushunchasi haqida batafsil ma'lumot keltirilga n: Massiv - bir xil ma'lumot turiga ega bo'lib bir nechta o'zgaruvchini har birini alohida e'lon qilish o'rniga. Bir o'zgaruvchiga bir nechta qiymat saqlash uchun ishlatiladi. Matritsa — bu sonlar, o'zgaruvchilar yoki boshqa matematik ifodalar to'plamidan tashkil topgan to'rtburchak shaklidagi jadvaldir. Matritsalar odatda qatorlar va ustunlardan tashkil topadi. C++ dasturlash tilida matritsalarni yaratish va ulardan foydalanish uchun ikki o'lchamli massivlardan foydalanish mumkin.. Matritsalar qo'llanilishi Matritsalar ko'plab sohalarda qo'llaniladi: - Chiziqli algebra: Vektorlar va chiziqli tenglamalar tizimlarini yechish. - Kompyuter grafikasi: Tasvirlarni qayta ishlash va transformatsiya qilish. - Fizika va muhandislik: Harakat tenglamalari va boshqa matematik modellarni ifodalash. - Statistika va iqtisod: Ma'lumotlarni tahlil qilish va modellashtirish. Massivlarni navlarga ajratish. Navlarga ajratish - bu berilgan ko’plab obyektlarni biron-bir belgilangan tartibda qaytadan guruhlash jarayoni. Massivlarning navlarga ajratilishi tez bajarilishiga ko’ra farqlanadi. Navlarga ajratishning n*n ta qiyoslashni talab qilgan oddiy usuli va n*log(n) ta qiyoslashni talab qilgan tez usuli mavjud. Oddiy usullar navlarga ajratish tamoyillarini tushuntirishda qulay hisoblanadi, chunki sodda va kalta algoritmlarga ega. Murakkablashtirilgan usullar kamroq sonli operasiyalarni talab qiladi, biroq operasiyalarning o’zi murakkabroq, shuning uchun uncha 3
katta bo’lmagan massivlar uchun oddiy usullar ko’proq samara beradi. Oddiy usullar uchta asosiy kategoriyaga bo’linadi: oddiy kiritish usuli bilan navlarga ajratish; oddiy ajratish usuli bilan navlarga ajratish; oddiy almashtirish usuli bilan navlarga ajratish. Oddiy kiritish usuli bilan navlarga ajratish Massiv elementlari avvaldan tayyor berilgan va dastlabki ketma-ketliklarga bo’linadi. i = 2 dan boshlab, har bir qadamda dastlabki ketma-ketlikdan i-nchi element chiqarib olinadi hamda tayyor ketma-ketlikning kerakli o’rniga kiritib qo’yiladi. Keyin i bittaga ko’payadi va h.k. Kerakli joyni izlash jarayonida, ko’proq o’ngdan bitta pozisiyadan tanlab olingan elementni uzatish amalga oshiriladi, ya’ni tanlab olingan element, j: = i-1 dan boshlab, navlarga ajratib bo’lingan qismning navbatdagi elementi bilan qiyoslanadi. Agar tanlab olingan element a[i] dan katta bo’lsa, uni navlarga ajratish qismiga qo’shadilar, aks holda a[j] bitta pozisiyaga suriladi, tanlab olingan elementni esa navlarga ajratilgan ketma- ketlikning navbatdagi elementi bilan qiyoslaydilar. To’g’ri keladigan joyni qidirish jarayoni ikkita turlicha shart bilan tugallanadi: agar a[j]>a[i] elementi topilgan bo’lsa; agar tayyor ketma-ketlikning chap uchiga bo’lsa. int i, j, x; for(i = 1; i < n; i++) { x = [i]; // kiritib qo‘yishimiz lozim bo‘lgan elementni esda saqlab qolamiz j = i - 1; while(x<a[j]&&j> = 0) //to'g‘ri keladigan joyni qidirish } a[j+1] = a[j]; //o‘ngga surish } a[j+1] = x; //elementni kiritish 4
} 5