Mатрици се дводимензионални низи и се користат за претставување на елементи (од ист тип) во табели со редици и колони.
tip го означува податочниот тип на секој од елементите во дводимензионалната низа,
ime го означува името на променливата,
R и C го означуваат бројот на редови и колони, соодветно.
Индексите на елементите во дводимензионалните низи се движат од 0 до R-1 (за редовите) и од 0 до C-1 (за колоните) - слично како и кај еднодимензионалните низи. Пристапот до елементите се изведува преку наведување на името на променливата (со која е декларирана дводимензионалната низа) и индексот на редот и колоната, наведени едно по друго
(mat[0][0], mat[0][1], mat[0][2], ..., mat [1][0], mat [1][1], ..., mat [2][0], mat [2][1], итн).
Бидејќи повеќедимензионалните низи претставуваат низи од низи, тие можат да се иницијализираат преку наведување на вредностите за секоја од низите, посебно. На пример, следните две наредби може да се искористат за декларирање и иницијализација на матрица со 2 реда и 3 колони:
1 2 3 | double m[2][3] = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}}; double m[][3] = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}}; double m[][] = {{1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}}; //GRESHKA |
Притоа, првата наредба експлицитно го наведува бројот на редови во матрицата, додека кај втората наредба тоа се прави автоматски (од страна на компајлерот). Важно е да се наведе дека, при ваквиот начин на иницијализација, може да го избегнеме експлицитното наведување на само една димензија (онаа првата - најзначајната). Оттаму, третата наредба е невалидна и ќе предизвика пријавување на грешка. Експлицитното наведување на димензиите овозможува, како и кај еднодимензионалните низи, доделување вредност 0 на одредена група на елементи:
int m[10][10] = {0};
Дијагонална матрица -квадратна матрица од ред nxn каде сите елементи освен главната дијагонала се 0-ли.
Операции со матрици
Програма со која се внесуваат елементите на дводимензионална низа(матрица) и се печати матрицата (без употреба на потпрограми)
#include
<iostream>
using namespace
std;
int main()
{
float
a[50][50];
int
m,n,i,j;
//sekogas,
prvo mora da se vnese brojot na redici i koloni
cout<<"Kolku
redici ima matricata?"<<endl;
cout<<"m=";
cin>>m;
cout<<"Kolku
koloni ima matricata?"<<endl;
cout<<"n=";
cin>>n;
//elementite
na matricata se vnesuvaat so dva for ciklusi
cout
<< "Vnesete gi elementite na matricata: " << endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<"a["<<i<<","<<j<<"]=";
cin>>a[i][j];
}
cout<<endl;
}
//za
pecatenje na matricata povtorno se koristat dva for ciklusi
cout<<"\nJa
vnesovte matricata:"<<endl;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
cout<<a[i][j]<<"\t";
cout<<endl;
}
cout<<endl;
return 0;
}
#include
<iostream>
using namespace
std;
void
vnesi_matrica(int m,int n,int A[50][50])
{
int
i,j;
for(i=0;i<m;i++)
{
for
(j=0;j<n;j++)
{
cout<<"A["<<i<<","<<j<<"]=";
cin
>> A[i][j];
}
cout<<endl;
}
}
void
pecati_matrica(int m,int n,int A[50][50])
{
int
i,j;
for(i=0;i<m;i++)
{
for
(j=0;j<n;j++)
cout<<A[i][j]<<"\t";
cout<<endl;
}
}
int main()
{
int
matrica[50][50];
int
m,n;
cout
<< "Vnesi go brojot na redici"<<endl;
cout<<"m=";
cin>>m;
cout
<< "Vnesi go brojot na koloni"<<endl;
cout<<"n=";
cin>>n;
cout
<< "Vnesete gi elementite na nizata: " << endl;
vnesi_matrica(m,n,matrica);
cout<<"Ja
vnesovte matricata:"<<endl;
pecati_matrica(m,n,matrica);
cout<<endl;
return 0;
}
Да се состави потпрограма со која ќе се пресмета збирот на елементите од главната дијагонала и збирот на елементите од споредната дијагонала на една квадратна матрица.
#include
<iostream> #include <iostream> using namespace std; int main(void) { int n; cout<<"Dimenziја na kvadratnа matricа --->"; cin>>n; int iMatrica[n][n]; for(int i=0; i < n; i++) { for(int j=0; j < n; j++) { cout<<"iMatrica ["<<i<<","<<j<<"] ---> "; cin>>iMatrica[i][j]; } } cout<<endl; for(int i=0; i < n; i++) { for(int j=0; j < n; j++) { if(i>j) { cout<<iMatrica[i][j]<<" "; } else cout<<" "; } cout<<endl; } return 0; } Да се состави потпрограма со која ќе се најде транспонираната матрица на матрицата А. Tранспонирана матрица се добива кога ќе се направи замена на редиците со колоните,односно транспонираната матрица B[i][j] = A[j][i] #include
<iostream> Кој е излезот за следниот код |
No comments:
Post a Comment