R1 = M1 (b - a)2 (3)
4n dan katta emas. Bu yerda M1 = max f ¢(x); h = Dx = b - a bo’lak uzunligi.
21.Ikki o‘lchovli massivlar
Ikki o’lchamli massiv – bu elementlari bir o’lchamli bo’lgan bir o’lchamli massiv. Boshqacha aytganda bir xil tipli ikkita indeks orqali murojaat qilinadigan jadval shaklidagi ma’lumotlar to’plami. Ikki o’lchamli massivni n ta satr, m ta ustundan iborat jadval ko’rinishida tasvirlash oson, i-satr va j-ustun kesishish nuqtasida a[i][j] elementi qiymati saqlanadi.
Ikki o’lchamli massiv matritsa deb ham nomlanadi. Ikki o’lchovli massivni takrorlash operatori yordamida to’ldirish uchun ichma-ich joylashgan ikkita sikl ochishga to’g’ri keladi. Ulardan birinchisi matritsaning qatorlarini, ikkinchisi ustunlarini aniqlashga xizmat qiladi. Quyida Pifagor ko’paytirish jadvalining elementlarini massiv sifatida saqlab, ixtiyoriy elementni ekranga chiqarish dasturi bilan tanishamiz.
#include
using namespace std;
int main ()
{
int i,j;
int mas[10][10];
for (i=1; i<=10; i++)
for (j=1; j<=10; j++)
mas[i][j] = i*j;
cout<<"i va j ni kiriting: \n";
cin>>i>>j;
cout<
}
22.Matritsa elementlarini kiritish algoritmi va dasturi
. Matritsaning elementlari qator bo’yicha yuqoridan pastga, ustun bo’yicha chapdan o’nga tartibda kiritiladi. 3x3 matritsa elementlari a11, a12, a13, a21, a22, a23, a31, a32, a33 tartibda kiritiladi. Kiritishni amalga oshirish uchun qator bo’yicha sikl, uning ichida ustun bo’yicha sikl amalga oshirish lozim. Quyidagi blok sxema matritsani kiritish va elementlarining yig;indisini topadi C++ dasturlash tilida matritsani tavsiflash bir o’lchamli massivga o’xshash bo’ladi:
[][]
Masalan sartlari 1 dan n gacha, ustunlari 1 dan m gacha bo’lgan a matritsa ochish uchun int a[n+1][m+1];
Quyidagi dasturda matritsa elementlarini kiritish, chiqarish va yig’indisini xisoblash amalga oshirilgan.
#include using namespace std;
int main() {
int n, m;
cin>>n>>m;
int a[n+1][m+1];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin>>a[i][j];
}
}
// Matritsa shaklida chiqarish
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout< }
cout< }
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
sum += a[i][j];
}
}
cout<<"Matritsa elementlari yig'indisi: "<}
23 Matritsa elementlarini chiqarish algoritmi va dasturi
Quyidagi dasturda matritsa elementlarini kiritish, chiqarish va yig’indisini xisoblash amalga oshirilgan.
#include using namespace std;
int main() {
int n, m;
cin>>n>>m;
int a[n+1][m+1];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin>>a[i][j];
}
}
// Matritsa shaklida chiqarish
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cout< }
cout< }
int sum = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
sum += a[i][j];
}
}
cout<<"Matritsa elementlari yig'indisi: "<}
24 . Kvadrat matritsa
Satrlar va ustunlar soni teng bo’lgan(n=m) matritsa kvadrat matritsa deb ataladi.
Kvadrat matritsaning asosiy diagonal elementlari chiqarish dasturi:
for (int i = 1; i <= n; i++) {
cout<}
Asosiy diagonaldan yuqori uchburchak elementlari:
Yuqori uchburchak elementlari ichidan maksimalini toppish:
int max = a[1][1];
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
if(a[i][j] > max)
max = a[i][j];
}
}
25.Matritsani matritsaga ko’paytirish algoritmi
Ikki matritsaning ko’paytmasini quyidagicha yozish mumkin
Matritsalar:
Bu yerda:
Ikki matritsaning ko’paytmasi faqat chap matritsadagi ustunlar soni o'ngdagi qatorlar soni bilan bir xil bo'lganda topish mumkin.
Dasturi:
#include using namespace std;
int main()
{
int row1, row2, col1, col2;
double** a, ** b, ** c;
system("chcp 1251");
system("cls");
cout << "Birinchi matritsaning satrlar sonini kiriting: ";
cin >> row1;
cout << "Birinchi matritsaning ustunlar sonini kiriting: ";
cin >> col1;
cout << "Ikkinchi matritsaning satrlar sonini kiriting: ";
cin >> row2;
cout << "Ikkinchi matritsaning ustunlar sonini kiriting: ";
cin >> col2;
if (col1 != row2)
{
cout << "Ko'paytirib bo'lmaydi!";
cin.get(); cin.get();
return 0;
}
// Birinchi matritsani kiritish
a = new double* [row1];
cout << "Birinchi matritsaning elementlarini kiriting:" << endl;
for (int i = 0; i < row1; i++)
{
a[i] = new double[col1];
for (int j = 0; j < col1; j++)
{
// cout << "a[" << i << "][" << j << "]= ";
cin >> a[i][j];
}
}
// Ikkinchi matritsani kiritish
b = new double* [row2];
cout << "Ikkinchi matritsaning elementlarini kiriting:" << endl;
for (int i = 0; i < row2; i++)
{
b[i] = new double[col2];
for (int j = 0; j < col2; j++)
{
// cout << "b[" << i << "][" << j << "]= ";
cin >> b[i][j];
}
}
// Matritsalar ko'paytmasi:
c = new double* [row1];
for (int i = 0; i < row1; i++)
{
c[i] = new double[col2];
for (int j = 0; j < col2; j++)
{
c[i][j] = 0;
for (int k = 0; k < col1; k++)
c[i][j] += a[i][k] * b[k][j];
}
}
// Ko'paytma matritsani chiqarish:
cout << "Matritsalar ko'paytmasi:" << endl;
for (int i = 0; i < row1; i++)
{
for (int j = 0; j < col2; j++)
cout << c[i][j] << " ";
cout << endl;
}
}
26. Kvadrat matritsa determinantini hisoblash
Kvadrat matritsaning determinanti (determinanti) bu matritsaga tayinlangan va quyidagi qoidalarga muvofiq uning elementlaridan hisoblangan son.
Birinchi tartibli matritsa uchun determinantning qiymati ushbu matritsaning yagona elementiga teng:
2X2 lik matritsa uchun:
nXm lik matritsa uchun esa:
Bu erda Mij kvadrat matritsaning qo'shimcha minori - i-qator va j-ustunni o'chirish orqali asl nusxadan olingan matritsaning determinanti.
Masalan, 3-tartibli matritsaning determinantini hisoblash formulasi: