logo

c++ da matritsa elementlari bo‘yicha ko‘paytirish modulini ishlab chiqish

Загружено в:

23.11.2024

Скачано:

0

Размер:

160.0185546875 KB
 
MAVZU:  c++ da matritsa elementlari bo‘yicha
ko‘paytirish modulini ishlab chiqish
 
Reja
I. Kirish
II. Asosiy qism 
1.Matritsa ko‘paytirilishining qisqa izohi.
2.Modul operatsiyasini haqida.
3. Dasturlashda matritsa operatsiyalarining ahamiyati va qo‘llanilishi.
4. Masala bayonoti.
III. Xulosa 
IV. Foydalangan adabiyotlar
Kirish Bu   kurs   ishining   maqsadi   C++   dasturlash   tili   yordamida   matritsa
elementlarini   ko‘paytirish   modulini   hisoblashni   o‘rganish   va   amalga   oshirishdir.
Matritsa   elementlarini   qabul   qilib   olish   vazifasi,   dastur   yozilgandan   so‘ng
foydalanuvchidan   matritsa   o‘lchamini   (qator   va   ustunlar   soni)   va   matritsa
elementlarini   kiritishni   so‘raydi.   Bu   maqsadni   amalga   oshirish   uchun   dastur
boshlang'ich   bo‘lib,   matritsaning   o‘lchami   va   uni   tarkib   qilgan   elementlarni
olishadi.   Foydalanuvchidan   kiritilgan   ma'lumotlarni   qabul   qilish   dasturni
ma'lumotlarga   kiriting,   keyin   matritsaning   har   bir   elementini   o'qib,   matritsa
o‘chamini   va   elementlarini   konsolga   chiqarish   uchun   ularga   kerak   bo‘lgan
dasturlash algoritmlarini bajaradi.
Ko‘paytirish   amalini   bajarish   vazifasi,   foydalanuvchidan   kiritilgan   matritsa
elementlarini   ko‘paytirib,   ularning   ko‘paytirish   natijasini   hisoblash   va   uni
saqlashni   o‘z   ichiga   oladi.   Bu   qadamni   bajarish   uchun   dastur,   foydalanuvchidan
kiritilgan   matritsa   elementlarini   o‘qib   oladi,   ularni   ko‘paytirib   olish   va   umumiy
ko‘paytirishni   hisoblaydi.   Keyin,   hisoblangan   natijani   saqlab,   keyinchalik
qo‘llanish   uchun   ekranga   chiqaradi.   Bu   jarayon   odatda   dasturlash   tilining
dengizlashtirilgan   operatorlari   yordamida   bajariladi   va   buning   natijasida   modul
ko‘paytirish jarayoni uchun ishlatilgan oddiy matematik amallar ishlatiladi.
Modulni   hisoblash   vazifasi,   ko‘paytirish   amalining   natijasining   modulini
hisoblashni   o'z   ichiga   oladi.   Modul   hisoblashning   asosiy   maqsadi,   bir   sonning
o‘zgaruvchan   bo‘lishini   aniqlashdir.   Bu   jarayon   matematikada   ma'lumotlar
olishning eng oddiy va ko‘p ishlatiladigan operatsiyalaridan biridir.
Matritsa   elementlarini   ko‘paytirib   umumiy   ko‘paytirishni   hisoblagandan
so‘ng,   ko‘paytirish   natijasini   hisoblashimiz   kerak.   Ushbu   natija   moslamangizga
qarab   musbat   yoki   manfiy   bo‘lishi   mumkin.   Buning   uchun   abs()   funksiyasini
ishlatish mumkin. Bu funksiya berilgan sonning modulini qaytaradi.
Shunday   qilib,   ko‘paytirish   amalining   natijasini   hisoblaganidan   so‘ng,   u
yagona son bo‘ladi, va shu sonning modulini hisoblaymiz.
Asosiy qism  Matritsa ko‘paytirilishining qisqa izohi.
Matritsa   ko‘paytirish,   ikki   yoki   undan   ko‘p   matritsalarning   har   bir
elementini   bir-biriga   ko‘paytirish   jarayonidir.   Agar   biz   2x2   matritsaning   har   bir
elementini boshqa 2x2 matritsaning mos keluvchi  elementi bilan ko‘paytirsak, bu
ikkita   matritsa   ko‘paytirilgan   bo‘ladi   va   natijada   yangi   bir   matritsa   hosil   bo‘ladi.
Ko‘paytirish   operatsiyasi,   matritsalarning   qo‘llanilishi,   hisoblanishi   va
dasturlashda   keng   qo‘llaniladi.   Ko‘paytirish   natijasining   modulini   hisoblash,
umumiy   sifatida,   matritsa   ko‘paytirilgan   bo‘lganda   hosil   bo‘lgan   yangi
matritsaning elementlarining ko‘paytirishini hisoblashga asoslanadi.
1-rasm.
??????  ×  ??????  dona  ??????????????????  ( ??????  = 1,  ?????? ,  ??????  = 1,  ?????? ) elementlardan tuzilgan to‘g’ri burchakli jadval
matritsa   deyiladi   va   yuqoridagi   (1-rasm)     ko‘rinishda   yoziladi.   Matritsaning
elementlari ikkita indesklar bilan belgilanadi.
Elementning   birinchi   ??????   indeksi   satr   nomini,   ikkinchi   ??????   indeks   esa   ustunning
nomerini
bildiradi.   Matritsaning   ??????????????????   elementi   ??????   −   satr   va   ??????   −   ustun   kesishgan   joyda
joylashgan.
Matritsalar odatda katta lotin harflari bilan belgilanadi:
?????? ,  ?????? ,  ?????? , . . .
??????  matritsani  ??????  songa ko‘paytmasi  ????????????  bilan belgilanadi.
??????  matritsaning  ??????  songa  ????????????  ko‘paytmasi deb shunday  ??????  matritsaga aytiladiki,  ??????
matritsaning elementlari  ??????????????????  =  ????????????????????????  dan iboratdir, bu yerda  ??????????????????  –  ??????  matritsaning
elementlari.  ??????  matritsani  ??????  songa ko‘paytirganda hosil bo‘ladigan  ??????  matritsa  ??????
matritsa bilan bir xil o‘lchovli bo‘ladi. Hullas, matritsani biror songa ko’paytirish
uchun bu matritsaning har bir elementini shu songa ko’paytirib chiqish kerak. A   ?????? × ??????   va   ???????????? × ??????   matritsalarning ko’paytmasi deb shunday   ???????????? × ??????   =   ??????   ⋅   ??????   (sodda
qilib,
???????????? ) matritsaga aytiladiki, bu  ??????  matritsaning elementlari
??????????????????  =  ???????????? 1 ?????? 1 ??????  +  ???????????? 2 ?????? 2 ??????  +  ???????????? 3 ?????? 3 ?????? +. . . + ????????????????????????????????????
Ko‘rinishda bo‘ladi, bu yerda  ??????????????????  va  ??????????????????  - mos ravishda  ??????  va  ??????  matritsalarning
elementlari. Bundan ko’rinadiki,  ??????  va  ??????  matritsalarning ko‘paytmasi ma‘noga ega
bo‘lishi uchun  ??????  matritsaning ustunlari soni  ??????  matritsaning satrlari soniga teng
bo‘lishi zarur. Hosil bo‘lgan  ????????????  ko‘paytmaning satrlari soni  ??????  matritsaning satrlari
soniga, ustunlari soni esa  ??????  matritsaning ustunlari soniga teng.
Matritsa ko‘paytirish: Matritsalarning har bir elementini boshqa matritsaning
mos keluvchi elementi bilan ko‘paytiriladi.
Bu jarayon dasturlashda quyidagi algoritm asosida amalga oshiriladi:
1.Kiritilgan matritsalarni o‘qib ol.
2.Har bir elementni mos keluvchi elementi bilan ko‘paytir.
3.Yangi natija matritsasini saqla.
4.Natija matritsasini ekranga chiqar.
Dastur ko‘rinishi quyidagicha amalga oshiriladi:
#include <iostream>
// Foydalanuvchidan matritsani kiritish
void enterMatrix(int matrix[10][10], int row, int col) {
    std::cout << "Matritsa elementlarini kiriting:" << std::endl;
    for (int i = 0; i < row; ++i) {
        for (int j = 0; j < col; ++j) {
            std::cin >> matrix[i][j];
        }
    }
}
// Matritsa ko‘paytirish void multiplyMatrix(int mat1[10][10], int mat2[10][10], int  res[10][10], int row1,
int col1, int row2, int col2) {
    for (int i = 0; i < row1; ++i) {
        for (int j = 0; j < col2; ++j) {
            res[i][j] = 0;
            for (int k = 0; k < col1; ++k) {
                res[i][j] += mat1[i][k] * mat2[k][j];
            }
        }
    }
}
// Natija matritsasini ekranga chiqarish
void displayMatrix(int res[10][10], int row, int col) {
    std::cout << "Natija matritsasi:" << std::endl;
    for (int i = 0; i < row; ++i) {
        for (int j = 0; j < col; ++j) {
            std::cout << res[i][j] << " ";
        }
        std::cout << std::endl;
    }
}
int main() {
    int mat1[10][10], mat2[10][10], res[10][10];
    int row1, col1, row2, col2;
    std::cout << "Birinchi matritsa uchun qator va ustunlar sonini kiriting: ";
    std::cin >> row1 >> col1;
    enterMatrix(mat1, row1, col1);     std::cout << "Ikkinchi matritsa uchun qator va ustunlar sonini kiriting: ";
    std::cin >> row2 >> col2;
    enterMatrix(mat2, row2, col2);
    if (col1 != row2) {
        std::cout << "Ko'paytirish amalini amalga oshirish mumkin emas!";
        return 0;
    }
    multiplyMatrix(mat1, mat2, res, row1, col1, row2, col2);
    displayMatrix(res, row1, col2);
    return 0;
}
Ushbu   dastur   foydalanuvchidan   ikki   matritsaning   o'lchamini   va
elementlarini qabul qiladi, ularni ko'paytirib yangi natija matritsasini chiqaradi.
C++ tilida massivlar elementining turiga cheklovlar qo‘yilmaydi,
lekin  bu  turlar   chekli  o‘lchamdagi   obyektlarning  turi  bo‘lishi   kerak.Chunki
kompliyator   massivning   hotiradan   qancha   joy   (bayt)   egallashini   xisoblay   olish
kerak.   Xususan,   massiv   komponentasi   massiv   bo‘lish   mumkin   (“vektorlar   -
vektori”),   natijada   matritsa   deb   nomlanuvchi   ikki   o‘lchamli   massiv   xosil   bo‘ladi.
Agar matritsaning elementi xam vektor bo‘lsa, uch o‘lchamli massivlar - kub xosil
bo‘ladi.   Shu   yo‘l   bilan   yechilayotgan   masalaga   bog‘liq   ravishda   ixtiyoriy
o‘lchamdagi massivlarni yaratish mumkin. Ikki o‘lchamli massivda birinchi indeks
satrlar   sonini,   ikkinchisi   esa   ustunlar   sonini   bildiradi.   Birinchi   satrning   dastlabki
elementi   a10   –   a   biri   nol   element   deb   o‘qiladi.   a   o‘n   deyilmaydi.   M   ta   satr   n   ta
ustunga ega bo‘lgan massivga (mxn)o‘lchamli massiv deyiladi.
Agar m=n (satrlar va ustunlar soni teng) bo‘lsa kvadrat massiv deyiladi. Ikki
o‘lchamli   massivning   sintaksi   quyidagi   ko‘rinishda   bo‘ladi: <tur><nom>[<uzunlik>][<uzunlik>]   Masalan,   10X20   o‘lchamli   xaqiqiy   sonlar
massivning   e`loni:   Float   a[10][20];   E’lon     qilingan   a   matritsa   ko‘rinishi
quyidagicha ko‘rinishda bo‘ladi.
Ikki   o‘lchamli   massivning   hotirada   joylashuvi.   Endi   adres   nuqtayi   -
nazaridan   ko‘p   o‘lchamli   massiv   elementlariga   murojat   qilishni   ko‘raylik.
Quyidagi elonlar berilgan bo‘lsin:
Int a[3][2];
Float b[2][2][2];
Birinchi   elonda   ikki   o‘lchamli   massiv,   yani   2   ta   satr   va   3   ustundan   iborat
matritsa   e’lon   qilingan,   ikkinchisida   uch   o‘lchamli   -   3   ta   2x2   matritsadan   iborat
bo‘lgan massiv e`lon qilingan. Uning elementlariga murojat sxemasi:
Adres   ko‘rsatkichlar   massivi   Massiv   elementlariga   murojat   qilish   uchun
nomdan   keyin   kvadrat   qavsda   har   bir   o‘lcham   uchun   indeks   yozilishi   kerak,
masalan   b[i][j][k].   Bu   elementga   vositali   murojat     xam   qilish   mumkin   va   uning
variantlari: *(*(*(b+i)+j)+k) yoki *(*(b[i]+j)+k) yoki *(b[i][j]+k);
Ko‘p o‘lchovli massivlarni initsializatsiyalash
Int a[2][3] = {2, 6, 8, 7, 12, 5};
Int b[3][3] = {{2, 6, 8}, {7, 12, 5}, {20, 21, 22 }}
  Birinchi   operatorda   boshlang‘ich   qiymatlar   ketma   –   ket   yozilgan,   Ikkinchi
operatorda  qiymatlar guruhlangan. 
Misollar:   1-misol.   M   o‘lchamli   kvadrat   matrisa   berilgan.   Bu   massivning
elementlarini   spiral   shaklida   chop  etish   dasturi   tuzilsin:   avval   oxirgi   ustun,   keyin
oxirgi   qator   teskari   tartibda,   keyin   birinchi   ustun   teskari   tartibda,   keyin   birinchi
qator.   Ichki   elementlar   ham   shu   tartibda     chop   etiladi.   Eng   oxirida   matrisaning
markaziy elementi chop etiladi.
#include <iostream> Ekranga quyidagicha natija
chiqadi:
using namespace std;
int main(){
 short k,i,j,m,x,y,z,w;  float a[100][100];
 cin>>m;
 for(i=1;i<=m;i++)
 for(j=1;j<=m;j++)
 cin>>a[i][j];
 x=m; y=m; z=1; w=1;
for(k=1;k<=m/2;k++){
 for(i=z;i<=x;i++) cout<<"a["<<i<<"]["<<x<<"]="<<a[i][x]<<endl;
 for(j=y-1;j>=w;j--) cout<<"a["<<y<<"]["<<j<<"]="<<a[y][j]<<endl;
for(i=x-1;i>=z;i--) cout<<"a["<<i<<"]["<<z<<"]="<<a[i][z]<<endl;
 for(j=w+1;j<=y-1;j++) cout<<"a["<<w<<"]["<<j<<"]="<<a[w][j]<<endl;
 x--;y--;z++;w++; } // bu dastur toq sonlar uchun ham
o‘rinli
if(m%2==1)
 cout<<"a["<<m/2+1<<"]["<<m/2+1<<"]="<<a[m/2+1][m/2+1]<<endl;
 system ("pause");
 return 0; }
Dastur kodi quydagicha tartibda chiqadi.
2-rasm
2-misol. Berilgan mxn o‘lchamli matrisaning bosh diaganali elementlarini nollarga
aylantirish dasturi tuzilsin.
#include<iostream.h>
 int main (){
 int k[100][100];  int i,j,n,m;
 cout<<" sonini kiriting="; cin>>n>>m;
 for ( i=1; i<=n; i++)
 for ( j=1; j<=m; j++)
 cin>>k[i][j];
 for ( i=1; i<=n; i++)
 for ( j=1; j<=m; j++){
 if (i==j) k[i][j]=0;
 cout<<"k["<<i<<"]["<<j<<"]="<<k[i][j]<<endl; }
 return 0; }
Ekranga quyidagicha natija chiqadi:
3-rasm 
Modul operatsiyasini haqida.
Modul   operatsiyasi,   dasturlashda   o‘zgaruvchilarni,  funksiyalarni   va   boshqa   kodni
bir   joyda   to‘plab,   ularga   qo‘shimcha   imkoniyatlar   beruvchi   bir   mekanizm
hisoblanadi.   Bu,   kodni   bo‘lib   qismalarga   bo‘lib,   ularga   tegishli   funksiyalarni   va
ma'lumotlarni o‘z ichiga oladi. Modullar ko‘p qo‘llaniladi, chunki ular kodni bo‘lib
qismalarga ajratib, unga bo‘sh va o‘rganishi oson bo‘lgan kodni yaratishga yordam
beradi.
Kodni   funksiyalarga,   sinflarga   va   boshqa   o‘zgaruvchilarga   bo‘lib   ajratish
yordamida, kodni tuzatishni osonlashtiradi va kodni qo‘shishni osonlashtiradi. Bu, dasturchiga   koddagi   muammolarni   ko‘proq   shunday   bo‘lishini   ta'minlaydi   va
ko‘rsatkichlarni bo‘lishni osonlashtiradi.
  Modullar   o‘zgartirishsiz   tarqatilishi   mumkin,   shuning   uchun   bir   modulni
o‘zgartirish,   qo‘shish   yoki   olib   tashlash   boshqa   kodga   yetkazilgan   o'zgarishlarni
ta'sir   etmaydi.   Bu,   kodni   qayta   islohot   qilishni   osonlashtiradi   va   dasturchilarga
ko‘proq xavfsizlik ta'minlaydi.
  Modullar   kodni   qaytishni   osonlashtiradi,   shuningdek,   qanday   funksiyalarni
va   ma'lumotlarni   import   qilishni   osonlashtiradi.   Bu,   kodni   yozishni   va   o'qishni
osonlashtiradi va kodni qaytish va uni qayta ishga tushirishni osonlashtiradi.
Oxirgi   O‘rganuvchi   (Namespace):   Modullar   o‘zlarining   o‘zgaruvchilarini   va
funksiyalarini o‘z ichiga oladi, shuning uchun ularga o‘zlarining nomini tayinlash
yoki   o‘zgaruvchilarning   nomlarini   qaytish   bo‘lmaydi.   Bu,   kodni   tuzatish   va
yozishni osonlashtiradi va qolgan kodlar bilan qaramasdan ishlashni ta'minlaydi.
  Modullar,   dastur   bo‘yicha   funksiyalarni   ajratib   olishda,   kerakli   funksiyalarni
ko‘rish   uchun   bo‘sh   kiritishlarni   yozishni   osonlashtiradi.   Bu,   kodni   tuzatish   va
tuzatishni osonlashtiradi. Modullar dasturlashda kodni tuzatishni osonlashtiradi va
dasturchilarga   o‘zlarining   dasturlarini   yozish   va   o‘qishni   osonlashtiradi.   Bu,
dasturlashni   tizimliroq   qiladi   va   kodni   boshqa   dasturlar   bilan   qayta   ishlashni
osonlashtiradi.
Dasturlashda matritsa operatsiyalarining ahamiyati va qo‘llanilishi.
Matritsa   operatsiyalari   dasturlashda   juda   keng   qo‘llaniladi   va   ahamiyatli
hisoblanadi.   Matritsalarning   barcha   ma'lumotlarni   saqlash   uchun   o‘zlariga   xos
ideal   vositasiga   ega   bo‘lishi,   ma'lumotlar   tuzilishi   va   ularga   murojaat   qilishning
osonligi sababli, ma'lumotlar strukturasining asosiy qismi hisoblanadi.
  Matritsalarning   qo‘llanilishi   yordamida   qiyinchiliklarni   hal   qilish   va
ma'lumotlar   bilan   ishlash   osonlashtiriladi.   Matritsalarning   qo‘llanilishi   orqali
koordinatlar   bo‘yicha   ishlash,   qator   va   ustunlar   ustida   amallar   bajarish,
matritsalarni qo‘shish, ko‘paytirish, ayirish, invert qilish va boshqa ko'plab amallar
osonlik   bilan   amalga   oshiriladi.     Bir   nechta   dasturlashda,   matritsa   operatsiyalari
algoritmizatsiya   uchun   kritik   ahamiyatga   ega   bo'lib,   xususan,   matritsalarning ko‘paytirish,   ayirish,   ko‘paytirish   va   boshqa   ma'lumotlarni   badiiy   ravishda
qismatlash uchun keng qo‘llaniladi.
 Matritsalarning dasturlashdagi qo‘llanishi, qo‘shimcha hisoblash qurollarini
yaxshilashga   yordam   beradi.   Misol   uchun,   matritsalarni   ishlovchi   qo‘llanilishi
statistik   hisoblash,   rasm   ishlovchi   dasturlash,   matematik   dasturlash   va   boshqa
sohalar uchun juda muhim hisoblangan.
  Matritsa operatsiyalari, ma'lumotlarni kuchli sifatga ega bo‘lishda muhim rol
o‘ynaydi.   Misol   uchun,   matritsalarning   ko‘paytirish   va   ayirish   operatsiyalari,
tashqi   ma'lumotlar   bilan   ishlashda   va   matematik   modellarni   yaratishda   juda
muhimdir.
Matritsa   operatsiyalari,   dasturchilar   uchun   kuchli   va   keng   qo'llaniladigan   vosita
hisoblanadi   va   ma'lumotlarni   saqlash,   qo‘llash   va   hisoblashda   juda   muhim   rol
o‘ynaydi. Bu esa, matritsalarning dasturlashda yaxshi o‘rganilishini, ularga bo‘lgan
kerakli   tushunchalarni   tushuntirishni   va   matematik   modellarni   amalga   oshirishni
ta'minlaydi.
Ushbu   bo‘limda   quyidagilarga   e`tibor   berish   kerak   bo‘ladi:   ya`ni   ikki
o‘lchovli   massiv   satrlari   soni   (m),   ustunlari   soni   n,   hamda   elementlari   soni   larni
e’tiborga olish lozim. Agar masalalarda satrlar va ustunlar soni aniq ko‘rsatilmagan
bo‘lsa,   ularni   2   dan   10   gacha   bo‘lgan   oraliqda   o‘zgartirish   tavsiya   etiladi.
Matritsaning   boshlang‘ich   qiymati   1-   va   2-indekslari   1   bo‘lgan   elementida
joylashadi.   Matritsaga   kiritish   va   chiqarish   satrlar   bo‘yicha   amalga   oshiriladi.   m
o‘lchamli   kvadrat   matritsa   2   o‘lchovli     massiv     hisoblanadi.   Matritsalarni   tashkil
eish va ularning elementlarini  chiqarish. Matritsalarni tashkil  etish masalalaridagi
natijaviy matritsa o‘lchami 10X10 dan oshmaydi.
Ikki o‘lchamli  statik massivlarni  e`lon qilish.
toifa massiv_nomi [massiv_satrlari_soni][massiv_ustunlar i_soni];
Ikki o‘lchamli statik massivlarning e`lon qilinishida, bir o‘lchamlidan   farqi,
massiv nomidan keyin qirrali qavs ichida ikkita qiymat yozilganligidadir. Bulardan
birinchisi,   satrlar   sonini,   ikkinchisi   esa   ustunlar   sonini   bildiradi.   Ya'ni   ikki o‘lchamli massiv elementiga ikkita indeks orqali murojaat qilinadi. Ikki o‘lchamli
massivlar matematika kursidan ma`lum bo`lgan matritsalarni eslatadi.
Ikki o‘lchamli massiv e'loniga misol:
int a[3][3], b[2][4];
A matritsa B matritsa
a
00   a
01   a
02   b
00   b
01   b
02   b
03
a
10   a
11   a
12   b
10   b
11   b
12   b
13
a
20   a
21   a
22
A matritsa  3 ta satr, 3 ta ustunga ega;
B matritsa  2 ta satr, 4 ta ustunga ega;
Ikki o‘lchamli massivlarda 1 - indeks satrni, 2 - indeks ustunni  bildiradi.
Birinchi   satrning   dastlabki   elementi   a10   –   a   biru   nol   element   deb   o‘qiladi.   a   o‘n
deyilmaydi.
m ta satr va n ta ustunga ega bo‘lgan massivga (mxn)  o‘lchamli massiv deyiladi.
Agar
m=n (satrlar  va ustunlar  soni teng) bo'lsa kvadrat massiv deyiladi.
Ko‘p o‘lchamli massivlarni  initsializats iyalash  misоllar:
int a[2][2]={1,2,7,3};
int b[2][3]={ {0,1,2}, {3,4,5} };
Massivlarni   qo‘llanilishiga   misol   keltiradigan   bo‘lsak,   satrlar   talabalarni,  ustunlar
fanlardan   olgan   baholarini   bildirsin.   Ya`ni   m   ta   talaba,   n   ta   fan.   n   –   ustunga
talabalarning   o‘rtacha   baholari   hisoblanib,   shu   asosida   stipendiya   bilan
ta`minlansin.
Va   hakazo,   bunga   o‘xshash   ko‘plab   misollar   keltirish   mumkin.   Bu   masalalarga
to‘xtalishdan oldin bir ikkita  oddiy masalar bilan tanishib chiqaylik.
1 -  Masala.  A(mxn)   matritsa   berilgan.  Shu matritsa  elementlar  ini     kirituvchi    va
ekranga jadval ko‘rinishida chiqaruvchi programma tuzilsin.
#include<iostream.h>
#include<math.h>
int main()
{ int  m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";cin >> m;
cout << "Ustunlar sonini kiriting \nn=";cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for(int satr = 0; satr < m ; satr++)
for(int ustun = 0; ustun < n; ustun++)
{
cout << "a[" << satr << "][" << ustun << "]="; cin >> a[satr][ustun];
}
for(int satr = 0; satr < m; satr++)
{
for(int ustun = 0; ustun < n; ustun++)
cout << a[satr][ustun] << "\t"; cout<<"\n";
}
system ("pause");
return 0;
}
Funksiya   parametri   sifatida   massivni   jo‘natish   va   funksiya   natijasi   sifatida
massivni olish ham mumkin. Funksiyaga matritsani uzatishda matritsa nomi bilan
uning satrlar va ustunlar sonini ham jo‘natish kerak bo‘ladi. Funksiyada massivdan
foydalanishni bir necha xil usuli bor, shularning ba'zilari bilan tanishamiz.
Funksiyaga matritsani uzatish
#include <iostream.h>
#include<math.h>
void matrix_print(int a[10][10], int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{ for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
int satr_max(int a[], int n)
{
// massivning eng katta elementini aniqlash
int max = a[0];
for (int i = 1; i < n; i++)
if (max < a[i]) max = a[i];
return max;
}
int main()
{
int  m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";  cin >> m;
cout << "Ustunlar sonini kiriting \nn="; cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
cout << "Kiritilgan matritsa\n";
//funksiyaga matritsa, satrlar va ustunlar soni jo'natiladi
matrix_print(a, m, n);
for (int i = 0; i < m; i++)
{
// funksiyaga i-satrning 0-elementi adresini // va elementlar sonini jo'natamiz
cout << i << "-satrning eng kattasi=" <<
satr_max(&a[i][0], n);
cout << endl;
}
return 0;
system ("pause");
}
Matritsadagi har bir satrning eng kattasini topish
#include <iostream.h>
#include<math.h>
void matrix_print(int a[10][10], int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
int satr_max(int a[], int n)
{
// massivning eng katta elementini aniqlash
int max = a[0];
for (int i = 1; i < n; i++)
if (max < a[i]) max = a[i]; return max;
}
int main()
{
int  m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";  cin >> m;
cout << "Ustunlar sonini kiriting \nn="; cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
cout << "Kiritilgan matritsa\n";
//funksiyaga matritsa, satrlar va ustunlar soni jo‘natiladi
matrix_print(a, m, n);
for (int i = 0; i < m; i++)
{
// funksiyaga i-satrning 0-elementi adresini
// va elementlar sonini jo'natamiz
cout << i << "-satrning eng kattasi=" <<
satr_max(&a[i][0], n);
cout << endl;
}
return 0;
system ("pause");
}
Statistik massivlar bilan ishlashning  kamchiliklar i:
1. Statik massivlarning  uzunligi оldindan ma’ lum bo‘lishi kеrak;
2. Statik massivning   o‘lchami  bеrilganlarga ajratilgan хоtiraning   o‘lchami  bilan
chеgaralangan; 3.   Katta   o‘lchamdagi   massiv   e’lоn   qilib,     masalani     yеchilishida   ajratilgan   хоtira
to‘ liq ishlatimasligi mumkin.
Bu kamchiliklarni dinamik  massivlardan  fоydalanish оrqali xal qilish mumkin.
Ikki o‘lchamli dinamik massivlar bilan ishlash
Ikki  o‘lchamli   dinamik  massivni   tashkil  qilish  uchun   «ko‘rsatkichga   ko‘rsatkich»
dan foydalaniladi:
int **a;
Endi  satrlar sоniga qarab ko‘rsatkichlar massiviga  dinamik хоtira ajratish  kеrak:
a = new  int  *[satrlar_soni];
Har   bir   satrga   takrоrlash   оpеratоri   yordamida   хоtira   ajratish   kеrak   va   uning
bоshlang’ich adrеsini  a massiv elеmеntlariga jоylashtirish zarur:
for (int  i  = 0; i < satrlar_soni; i++)
a[i]  = new int [ustunlar_soni];
Dinamik  massivda har bir satr хоtiraning turli  jоylarida jоylashishi mumkin.
Dinamik   massivlarni   ishlatib   bo‘lgandan   kеyin   albatta   delete   amali   bilan   uni   o‘
cherish kеrak.
Yuqоridagi   mis   оlda   ikki     o‘lchamli   massiv   uchun   avval   massivning     har   bir
elеmеnti, охirida massivning  o‘zi o'chiriladi:
for (int  i  = 0; i  < satrlar_soni;  i++)
delete [] a[i];
delete []a;
1 - Masalani dinamik massivdan foydalanga holda ishlashni ko‘rib chiqamiz.
#include <iostream.h>
#include<math.h>
int main()
{
int  m, n;
int **a; // ko‘rsatkichga ko‘rsatkich
cout << "Satrlar sonini kiriting \nm=";
cin >> m; cout << "Ustunlar sonini kiriting \nn=";
cin >> n;
// m ta ko‘rsatkichlar massivi uchun xotira ajratish
a = new int *[m];
// har bir satr uchun dinamik xotira ajratish
for (int i = 0; i < m; i++)
a[i] = new int [n];
cout <<"Massiv elementlarini kiriting \n";
for(int satr = 0;  satr < m ; satr++)
for(int ustun = 0; ustun < n; ustun++)
{
cout << "a[" << satr << "][" << ustun << "]=";
cin >> a[satr][ustun];
}
// matritsani jadval shaklida chiqarish
for(int satr = 0; satr < m; satr++)
{
for(int ustun = 0; ustun < n; ustun++)
cout << a[satr][ustun] << "\t";
cout<<"\n";
}
// Dinamik massivdan foydalanib bo‘lgandan so‘ng
// uni xotiradan o‘chirish lozim
// oldin massiv satrlari o‘chiriladi (xotira bo‘shatiladi)
for (int i = 0; i < m; i++)
delete []a[i];
// endi massivning o‘zini o‘chirish mumkin
delete [] a;
return 0;
system ("pause"); }
a(m,   n)     matritsani     b(n,   p)   matritsaga     ko‘paytirishdan     hosil     bo'lgan   c(m,   p)
matritsani chiqaruvchi programma tuzilsin.
#include <iostream.h>
#include<math.h>
void matrix_print(int **a, int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
void matrix_input (int **a, int m, int n)
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
}
void matrix_delete (int **a, int m)
{
// Dinamik massivdan foydalanib bo‘lgandan so'ng
// uni xotiradan o‘chirish lozim
// oldin massiv satrlari o‘chiriladi (xotira bo‘shatiladi) for (int i = 0; i < m; i++)
delete []a[i];
// endi massivning o‘zini o ‘chirish mumkin
delete []a;
}
// create_matrix – ko‘rsatkichga ko‘rsatkich qaytaradi
int ** create_matrix(int m, int n)
{
int **ptr;
// matritsa satrlari uchun xotira ajratish
ptr = new int *[m];
for (int i = 0; i < m; i++)
// matritsa ustunlari uchun xotira ajratish
ptr[i] = new int [n];
return ptr;
}
int main()
{
int  m, n, p, **a, **b, **c;
cout << "A matritsa satrlar sonini kiriting \nm=";  cin >> m;
cout << "A matritsa ustunlar sonini kiriting \nn="; cin >> n;
cout << "B matritsa ustunlar sonini kiriting \np="; cin >> p;
// matritsalarni hosil qilish
a = create_matrix(m, n);
b = create_matrix(n, p);
c = create_matrix(m, p);
cout << "A massiv elementlarini kiriting \n";
matrix_input(a, m, n);
cout << "B massiv elementlarini kiriting \n";
matrix_input(b, n, p); cout << "Kiritilgan A matritsa\n";
matrix_print(a, m, n);
cout << "Kiritilgan B matritsa\n";
matrix_print(b, n, p);
// c matritsa elementlarini 0 qilish
for (int i = 0; i < m; i++)
for (int j = 0; j < p; j++)
c[i][j] = 0;
// A matritsani B matritsaga ko‘paytirish
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
for (int k = 0; k < p; k++)
{
c[i][k] += a[i][j] * b[j][k];
}
cout << "Natija C matritsa\n";
matrix_print(c, m, p);
matrix_delete(a, m); // a matritsani o‘chirish
matrix_delete(b, n); // b matritsani o‘chirish
matrix_delete(c, m); // c matritsani o‘chirish
return 0;
system ("pause");
}
C++   da   matritsa   elementlari   bo‘yicha   ko‘paytirish   modulini   ishlab   chiqish   uchun
quyidagi bosqichlar amalga oshiriladi:
Matritsa sinfi yaratish:  Bir Matrix sinfi yaratamiz, bu sinf matritsalarni  o'z ichiga
oladi va ular bilan amallarni bajaradi. Bu sinf ma'lumotlarni saqlash uchun kerakli
maydonlarni   va   matritsalarni   ko‘paytirish,   ko‘paytirish   va   boshqa   amallarni
bajarish uchun metodlar bilan ta'minlanadi class Matrix {
private:
    int rows;
    int cols;
    double **data;
public:
    Matrix(int numRows, int numCols);
    ~Matrix();
    void multiply(double scalar); // Ko‘paytirish metodi
    void display(); // Matritsani ko‘rsatish metodi
};
Konstruktor   va   destruktor   yozish:   Matrix   sinfi   uchun   konstruktor   va   destruktor
yozamiz.   Konstruktor   matritsa   obyektini   yaratadi   va   dinamik  xotirada  joylashgan
ma'lumotlarga ko'rsatadi. Destruktor esa yarattilgan obyektni xotiradan bo‘shatadi.
Matrix::Matrix(int numRows, int numCols) {
    rows = numRows;
    cols = numCols;
    data = new double*[rows];
    for (int i = 0; i < rows; ++i) {
        data[i] = new double[cols];
    }
}
Matrix::~Matrix() {
    for (int i = 0; i < rows; ++i) {
        delete[] data[i];     }
    delete[] data;
}
Ko‘paytirish   metodini   yozish:   Matritsa   elementlarini   berilgan   son   bilan
ko‘paytirish uchun metod yozamiz.
void Matrix::multiply(double scalar) {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            data[i][j] *= scalar;
        }
    }
}
Matritsani   ko‘rsatish   metodi   yozish:   Matritsa   elementlarini   konsolga   chiqarish
uchun metod yozamiz
void Matrix::display() {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            cout << data[i][j] << " ";
        }
        cout << endl;
    }
}
Dastur   yaratish   va   testlash:   Nihayat,   yaradilgan   sinf   funktsiyalarini   test   qilish
uchun dastur yozamiz.
int main() {     Matrix mat(3, 3); // 3x3 matritsa yaratish
    // Matritsani qiymatlari bilan to‘ldirish
    // ...
    mat.display(); // Matritsani ko‘rsatish
    mat.multiply(2); // Elementlarni 2 bilan ko‘paytirish
    mat.display(); // O'zgartirilgan matritsani ko‘rsatish
    return 0;
}
Ushbu bosqichlar orqali, siz matritsa elementlarini bo‘yicha ko‘paytirish modulini
C++  da ishlab  chiqishingiz  mumkin. Bu  dastur  sizning  ko‘rib  chiqishingiz  uchun
yaxshi   boshlang'ich   nuqtasi   bo‘lib,   keyinchalik   sinflar   va   funktsiyalarni   qo‘shish
va yangi funktsiyalarni qo‘shish orqali taraqqiy etish imkonini beradi.
Ushbu   dastur   C++   da   matritsa   elementlarini   bo‘yicha   ko‘paytirish   modulini
yaratishni maqsad qiladi. Dastur quyidagi bosqichlardan iborat:
Matritsa sinfi yaratish: Dasturda Matrix nomli sinf yaratiladi. Bu sinf matritsalarni
o‘z   ichiga   oladi   va   ular   bilan   amallarni   bajarish   uchun   kerakli   funktsiyalarni   o‘z
ichiga oladi.
Konstruktor va destruktor: Matrix sinfi uchun konstruktor va destruktor yozilgan.
Konstruktor   matritsa   obyektini   yaratadi   va   dinamik   xotirada   joylashgan
ma'lumotlar   uchun   xotira   ajratadi.   Destruktor   esa   yaratilgan   obyektni   xotiradan
bo'shatadi.
Ko‘paytirish   metodini   yaratish:   multiply   metod   yaratilgan.   Bu   metod   matritsa
elementlarini berilgan bir son bilan ko‘paytiradi.
Matritsani   ko‘rsatish   metodi:   display   metod   yaratilgan.   Bu   metod   matritsa
elementlarini konsolga chiqaradi.
Dastur:   Dastur   main   funktsiyasi   orqali   yaratilgan.   Ushbu   dastur   test   maqsadida
ishlatiladi. Dasturda bir matritsa yaratiladi, qiymatlar bilan to‘ldiriladi, ko‘rsatiladi, keyin   esa   matritsa   elementlarini   berilgan   son   bilan   ko‘paytiradi   va   o‘zgartirilgan
matritsaning yangi qiymatlarini ko‘rsatadi.
Ushbu dastur kodni matritsa elementlarini bo‘yicha ko‘paytirish modulini C++ da
yaratish uchun yaxshi boshlang'ich nuqtasini taqdim etadi. Ularni kodni tuzatish va
boshqa   metodlarni   qo‘shish   orqali   to‘liq   dasturning   funksionalini   kengaytirish
mumkin.
Xulosa
Yuqoridagi   mavzular   dastur   yaratishda   umumiy   hulosa,   foydalanuvchi
dasturlash   sohasidagi   asosiy   konseptlarga   ega   bo'ladi.   Bu   ma'lumotlar   uning
dasturlashda quyidagi maqsad va vazifalarni yechishida yordam beradi. 
Dasturlashda   modullarni   o‘rganish:   Modullar   dasturlashda   kodni   ajratib
chiqish   uchun   yordam   beradi,   shuningdek,   kodni   yaxshi   tuzish   va   qayta   ishlash
imkoniyatlarini osonlashtiradi.
Matritsa   operatsiyalarini   o‘rganish:   Matritsa   operatsiyalari   dasturchilarga
ma'lumotlarni   kuchli   sifatda   saqlash   va   ma'lumotlar   bilan   ishlash   imkoniyatlarini
osonlashtiradi.
C++   sinflarini   o‘rganish:   Sinflar   obyektlarni   (matritsa   obyektlarini
jumladan) yaratish va ular bilan amallar bajarish uchun kerakli vositalarni beradi.
Dasturlashda   modullar,   sinflar   va   metodlar   yaratish   uchun   birinchi   vazifadir.
Matritsalarni   ko‘paytirish,   ko‘paytirish,   ayirish   va   boshqa   operatsiyalarni
osonlashtirish uchun yordam beradi.
Bular   asosiy   maqsadlar   va   vazifalardir,   va   foydalanuvchilar   bu
ma'lumotlarni   o‘rganish   orqali   dasturlashda   o‘zlarining   kodlarini   yaxshi   tuzish,
tuzatish va qayta ishlashni osonlashtirishadi. Asosiy adabiyotlar 
1. C++   Nilida   programmalash   bo‘yicha   masalalar   to‘plami.   Madraximov
SH.F.pdf 2014 
2. "C++ O‘rganuvchilari Uchun Dasturlash Tili" - Bjarne Stroustrup
3. "C++ Dasturlash Tili" - Stroustrup, Bjarne
4. "C++ Kuchli Dasturlash Tilining Asosiy Prinsiplari" - Meyers, Scott
5. "O‘rganuvchilar Uchun C++ Stendaloni" - Stanley B. Lippman
6. "Thinking in C++" - Bruce Eckel
7. "C++ Primer" - Stanley B. Lippman, Josée Lajoie, Barbara E. Moo
8. "Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and
C++14" - Scott Meyers
Qo‘shimcha adabiyotlar 
1. "Effective C++: 55 Specific Ways to Improve Your Programs and Designs" -
Scott Meyers
2. "Accelerated   C++:   Practical   Programming   by   Example"   -   Andrew   Koenig,
Barbara E. Moo
3. "C++   Coding   Standards:   101   Rules,   Guidelines,   and   Best   Practices"   -   Herb
Sutter, Andrei Alexandrescu
Elektron ta’lim resurslari 
1. www.tdpu.uz 
2. https://tami.uz
3. www.ziyonet.uz 
4. www.dasturchi.uz 
5. www.ozon.ru/context/detail/id /2705337/ 
6. http://www.borlpasc.narod.ru/. 
7. http:// www.intuit.ru  8. www.nmarket. ru/program/delphi/lessons-2

MAVZU: c++ da matritsa elementlari bo‘yicha ko‘paytirish modulini ishlab chiqish Reja I. Kirish II. Asosiy qism 1.Matritsa ko‘paytirilishining qisqa izohi. 2.Modul operatsiyasini haqida. 3. Dasturlashda matritsa operatsiyalarining ahamiyati va qo‘llanilishi. 4. Masala bayonoti. III. Xulosa IV. Foydalangan adabiyotlar Kirish

Bu kurs ishining maqsadi C++ dasturlash tili yordamida matritsa elementlarini ko‘paytirish modulini hisoblashni o‘rganish va amalga oshirishdir. Matritsa elementlarini qabul qilib olish vazifasi, dastur yozilgandan so‘ng foydalanuvchidan matritsa o‘lchamini (qator va ustunlar soni) va matritsa elementlarini kiritishni so‘raydi. Bu maqsadni amalga oshirish uchun dastur boshlang'ich bo‘lib, matritsaning o‘lchami va uni tarkib qilgan elementlarni olishadi. Foydalanuvchidan kiritilgan ma'lumotlarni qabul qilish dasturni ma'lumotlarga kiriting, keyin matritsaning har bir elementini o'qib, matritsa o‘chamini va elementlarini konsolga chiqarish uchun ularga kerak bo‘lgan dasturlash algoritmlarini bajaradi. Ko‘paytirish amalini bajarish vazifasi, foydalanuvchidan kiritilgan matritsa elementlarini ko‘paytirib, ularning ko‘paytirish natijasini hisoblash va uni saqlashni o‘z ichiga oladi. Bu qadamni bajarish uchun dastur, foydalanuvchidan kiritilgan matritsa elementlarini o‘qib oladi, ularni ko‘paytirib olish va umumiy ko‘paytirishni hisoblaydi. Keyin, hisoblangan natijani saqlab, keyinchalik qo‘llanish uchun ekranga chiqaradi. Bu jarayon odatda dasturlash tilining dengizlashtirilgan operatorlari yordamida bajariladi va buning natijasida modul ko‘paytirish jarayoni uchun ishlatilgan oddiy matematik amallar ishlatiladi. Modulni hisoblash vazifasi, ko‘paytirish amalining natijasining modulini hisoblashni o'z ichiga oladi. Modul hisoblashning asosiy maqsadi, bir sonning o‘zgaruvchan bo‘lishini aniqlashdir. Bu jarayon matematikada ma'lumotlar olishning eng oddiy va ko‘p ishlatiladigan operatsiyalaridan biridir. Matritsa elementlarini ko‘paytirib umumiy ko‘paytirishni hisoblagandan so‘ng, ko‘paytirish natijasini hisoblashimiz kerak. Ushbu natija moslamangizga qarab musbat yoki manfiy bo‘lishi mumkin. Buning uchun abs() funksiyasini ishlatish mumkin. Bu funksiya berilgan sonning modulini qaytaradi. Shunday qilib, ko‘paytirish amalining natijasini hisoblaganidan so‘ng, u yagona son bo‘ladi, va shu sonning modulini hisoblaymiz. Asosiy qism

Matritsa ko‘paytirilishining qisqa izohi. Matritsa ko‘paytirish, ikki yoki undan ko‘p matritsalarning har bir elementini bir-biriga ko‘paytirish jarayonidir. Agar biz 2x2 matritsaning har bir elementini boshqa 2x2 matritsaning mos keluvchi elementi bilan ko‘paytirsak, bu ikkita matritsa ko‘paytirilgan bo‘ladi va natijada yangi bir matritsa hosil bo‘ladi. Ko‘paytirish operatsiyasi, matritsalarning qo‘llanilishi, hisoblanishi va dasturlashda keng qo‘llaniladi. Ko‘paytirish natijasining modulini hisoblash, umumiy sifatida, matritsa ko‘paytirilgan bo‘lganda hosil bo‘lgan yangi matritsaning elementlarining ko‘paytirishini hisoblashga asoslanadi. 1-rasm. ?????? × ?????? dona ?????????????????? ( ?????? = 1, ?????? , ?????? = 1, ?????? ) elementlardan tuzilgan to‘g’ri burchakli jadval matritsa deyiladi va yuqoridagi (1-rasm) ko‘rinishda yoziladi. Matritsaning elementlari ikkita indesklar bilan belgilanadi. Elementning birinchi ?????? indeksi satr nomini, ikkinchi ?????? indeks esa ustunning nomerini bildiradi. Matritsaning ?????????????????? elementi ?????? − satr va ?????? − ustun kesishgan joyda joylashgan. Matritsalar odatda katta lotin harflari bilan belgilanadi: ?????? , ?????? , ?????? , . . . ?????? matritsani ?????? songa ko‘paytmasi ???????????? bilan belgilanadi. ?????? matritsaning ?????? songa ???????????? ko‘paytmasi deb shunday ?????? matritsaga aytiladiki, ?????? matritsaning elementlari ?????????????????? = ???????????????????????? dan iboratdir, bu yerda ?????????????????? – ?????? matritsaning elementlari. ?????? matritsani ?????? songa ko‘paytirganda hosil bo‘ladigan ?????? matritsa ?????? matritsa bilan bir xil o‘lchovli bo‘ladi. Hullas, matritsani biror songa ko’paytirish uchun bu matritsaning har bir elementini shu songa ko’paytirib chiqish kerak.

A ?????? × ?????? va ???????????? × ?????? matritsalarning ko’paytmasi deb shunday ???????????? × ?????? = ?????? ⋅ ?????? (sodda qilib, ???????????? ) matritsaga aytiladiki, bu ?????? matritsaning elementlari ?????????????????? = ???????????? 1 ?????? 1 ?????? + ???????????? 2 ?????? 2 ?????? + ???????????? 3 ?????? 3 ?????? +. . . + ???????????????????????????????????? Ko‘rinishda bo‘ladi, bu yerda ?????????????????? va ?????????????????? - mos ravishda ?????? va ?????? matritsalarning elementlari. Bundan ko’rinadiki, ?????? va ?????? matritsalarning ko‘paytmasi ma‘noga ega bo‘lishi uchun ?????? matritsaning ustunlari soni ?????? matritsaning satrlari soniga teng bo‘lishi zarur. Hosil bo‘lgan ???????????? ko‘paytmaning satrlari soni ?????? matritsaning satrlari soniga, ustunlari soni esa ?????? matritsaning ustunlari soniga teng. Matritsa ko‘paytirish: Matritsalarning har bir elementini boshqa matritsaning mos keluvchi elementi bilan ko‘paytiriladi. Bu jarayon dasturlashda quyidagi algoritm asosida amalga oshiriladi: 1.Kiritilgan matritsalarni o‘qib ol. 2.Har bir elementni mos keluvchi elementi bilan ko‘paytir. 3.Yangi natija matritsasini saqla. 4.Natija matritsasini ekranga chiqar. Dastur ko‘rinishi quyidagicha amalga oshiriladi: #include <iostream> // Foydalanuvchidan matritsani kiritish void enterMatrix(int matrix[10][10], int row, int col) { std::cout << "Matritsa elementlarini kiriting:" << std::endl; for (int i = 0; i < row; ++i) { for (int j = 0; j < col; ++j) { std::cin >> matrix[i][j]; } } } // Matritsa ko‘paytirish

void multiplyMatrix(int mat1[10][10], int mat2[10][10], int res[10][10], int row1, int col1, int row2, int col2) { for (int i = 0; i < row1; ++i) { for (int j = 0; j < col2; ++j) { res[i][j] = 0; for (int k = 0; k < col1; ++k) { res[i][j] += mat1[i][k] * mat2[k][j]; } } } } // Natija matritsasini ekranga chiqarish void displayMatrix(int res[10][10], int row, int col) { std::cout << "Natija matritsasi:" << std::endl; for (int i = 0; i < row; ++i) { for (int j = 0; j < col; ++j) { std::cout << res[i][j] << " "; } std::cout << std::endl; } } int main() { int mat1[10][10], mat2[10][10], res[10][10]; int row1, col1, row2, col2; std::cout << "Birinchi matritsa uchun qator va ustunlar sonini kiriting: "; std::cin >> row1 >> col1; enterMatrix(mat1, row1, col1);