Задачи со дводимензионални низи

Следната програма ја печати таблицата за множење на броевите од 1 до 5:

#include <iostream>
using namespace std;
int main()
{
int m[6][6];
for (int r=0; r<=5; r++)
for (int c=0; c<=5; c++)
{
m[r][c] = r*c;
}
for (int r=1; r<=5; r++)
{
//'\t' - specijalen znak za TAB
for (int c=1; c<=5; c++)
cout<<" | "<<r<<"*"<<c<<"="<<m[r][c]<<"\t";
cout << endl;
}
return 0;
}

Output:

| 1*1=1   | 1*2=2   | 1*3=3   | 1*4=4   | 1*5=5
| 2*1=2   | 2*2=4   | 2*3=6   | 2*4=8   | 2*5=10
| 3*1=3   | 3*2=6   | 3*3=9   | 3*4=12  | 3*5=15
| 4*1=4   | 4*2=8   | 4*3=12  | 4*4=16  | 4*5=20
| 5*1=5   | 5*2=10  | 5*3=15  | 5*4=20  | 5*5=25

Да се отпечатат парните елементи на матрица

#include <iostream>
using namespace std;
 
int main(void)
{  
    int n;
    cout<<"Vnesete broj na redici na matricata --->";
    cin>>n;
     
    int m;
    cout<<"Vnesete broj na koloni na matricata --->";
    cin>>m;
 
    int a[n][m];
     
    for(int i=0; i < n; i++)
    {
        for(int j=0; j < m; j++)
        {
            cout<<"a["<<i<<","<<j<<"] ---> ";
            cin>>a[i][j];
        }
    }
    for(int i=0; i < n; i++)
    {
        for(int j=0; j < m; j++)
        {
            if((a[i][j]!=0)&&(a[i][j]%2==0))
            {
                cout<<a[i][j]<<" ";
            }
        }
       }

    return 0;  
}

Внеси матрица со димензии mxn, потоа  преброј колку  парни и непарни елементи има во матрицата.

#include <iostream>
using namespace std;
int main()
{
 int a[50][50];
 int m,n,i,j,s1,s2;
 cout<<"Kolku redici ima matricata?"<<endl;
 cin>>m;
 cout<<"Kolku koloni ima matricata?"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na matricata: " << endl;
 for(i=0;i<m;i++)
 for(j=0;j<n;j++)
  cin>>a[i][j];
  s1=0;
 s2=0;
 for(i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
 {
 if(a[i][j]%2==0)  s1+=a[i][j];
 else    s2+=a[i][j];
 }
 }
 cout<<"Zbirot na parnite elementi e "<<s1<<endl;
 cout<<"Zbirot na neparnite elementi e "<<s2;
return 0;
}

Програма со која се формира нова матрица с чии елементи се збир на соодветните елементи на две матрици а и b со m редици и n колони

#include <iostream>
using namespace std;
int main()
{
 int a[50][50],b[50][50],c[50][50];
 int m,n,i,j,s,s2;
 cout<<"Kolku redici ima matricata?"<<endl;
 cin>>m;
 cout<<"Kolku koloni ima matricata?"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na matricata a: " << endl;
 for(i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
 {
 cin>>a[i][j];
 }
 }
 cout << "Vnesi gi elementite na matricata b: " << endl;
 for(i=0;i<m;i++)
  for(j=0;j<n;j++)
  cin>>b[i][j];
 for(i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
 {
   s=0;
   s=a[i][j]+b[i][j];
   c[i][j]=s;
  }
 }
 cout<<"\n novata matrica e "<<endl;
 for(i=0;i<m;i++)
 {
 for(j=0;j<n;j++)
  cout<<c[i][j]<<"\t";
  cout<<endl;
 }
return 0;
}

Програма со која се печати максималниот елемент од секој ред од матрица со m редици и n колони.

#include <iostream>
using namespace std;
int main()
{
 int a[50][50],m,n,i,j,max;
 cout<<"Vnesi boj na redici m= "<<endl;
 cin>>m;
 cout<<"Vnesi broj na koloni n="<<endl;
 cin>>n;
 cout<<"Vnesi gi elementite na matricata"<<endl;
 for(i=0;i<m;i++)
 for(j=0;j<n;j++)
  cin>>a[i][j];
 for(i=0;i<m;i++)
 {
 max=a[i][0];
 for(j=0;j<n;j++)
  if(a[i][j]>max) max=a[i][j];
  }
 cout<<"Najgolem e "<<max;
 return 0;
}

Програма со која се пресметува колку елементи на главната дијагонала се позитивни.
#include <iostream>
using namespace std;
int main()
{
 int a[100][100],n,i,j,s;
 cout << "vnesi go n"<<endl;
 cin>>n;
 for(i=0;i<n;i++)
 for(j=0;j<n;j++)
 cin>>a[i][j];
 s=0;
 for(i=0;i<n;i++)
  if(a[i][i]>0) s++;
  cout<<"brojot na pozitivni elementi e "<<s;
 return 0;
}

Програма со која се пресметува производ на елементите поголеми од 20 во матрица а со m редици и n колони.

#include <iostream>
using namespace std;
int main()
{
 int a[50][50];
 int m,n,i,j,p=1;
 cout<<"Kolku redici ima matricata?"<<endl;
 cin>>m;
 cout<<"Kolku koloni ima matricata?"<<endl;
 cin>>n;
 cout << "Vnesi gi elementite na matricata a: " << endl;
 for(i=0;i<m;i++)
  for(j=0;j<n;j++)
 cin>>a[i][j];

 for(i=0;i<m;i++)
 for(j=0;j<n;j++)
   if(a[i][j]>20) 
       p*=a[i][j];
       if (p>=20)
      cout<<"proizvodot na elementite pogolemi od 20 e "<<p<<endl;
      else 
      cout <<" Nema elementi pogolemi od 20";
return 0;
}

Во кадратна матрица nxn  испечати ги членовите на низата кои се наоѓаат под главната дијагонала (i>j)

#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; }

Збир на елементи под главна дијагонала 

#include <iostream>
using namespace std;
int main(void)
{
int n,s=0;
cout<<"Dimenziја na kvadratnа matricа --->"; 
cin>>n;
int a[n][n];
for(int i=0; i < n; i++)
{
 for(int j=0; j < n; j++)
 {
    cout<<"a ["<<i<<","<<j<<"] ---> ";
    cin>>a[i][j];
  }
}
cout<<endl;
for(int i=0; i < n; i++)
{
   for(int j=0; j < n; j++)
    {
            if(i>j)
              s=s+a[i][j];
     }
            cout<<endl;
}
cout <<"Zbirot na elemetni pod glavna dijagonala e  "<<s ;
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;
    }
}

void mnozi_matrici(int A[50][50], int B[50][50], int C[50][50],int m, int l, int n)
{
  for(int i=0;i<m;i++)
   for(int j=0;j<n;j++)
   {
      C[i][j]=0;
      for(int k=0;k<l;k++)
        C[i][j]+=A[i][k]*B[k][j];
    }
}

int main()

{
    int A[50][50],B[50][50],C[50][50];
    int m,n,l;
    cout << "Vnesi  broj na redici na matricata A"<<endl;
    cout<<"m="; cin>>m;
    cout << "Vnesi  broj na koloni na matricata A i broj na redici na matricata B"<<endl;
    cout<<"l="; cin>>l;
    cout << "Vnesi  broj na koloni na matricata B"<<endl;
    cout<<"n="; cin>>n;
    cout << "Vnesete gi elementite na matricata A: " << endl;
   vnesi_matrica(m,l,A);
    cout<<"Ja vnesovte matricata A:"<<endl;
    pecati_matrica(m,l,A);
    cout << "Vnesete gi elementite na matricata B: " << endl;
    vnesi_matrica(l,n,B);
    cout<<"Ja vnesovte matricata B:"<<endl;
    pecati_matrica(l,n,B);
    mnozi_matrici(A,B,C,m,l,n);
    cout<<"\nProizvodot na matricite A i B e matricata C:"<<endl;
    pecati_matrica(m,n,C);
cout<<endl;
return 0;
}




Да се генерира Таблицата множење како дводимензионална низа.
Да се пресмета збирот на елементите на дводимензионалната општа низа [ai,j]mxn.
Дадена е дводимензионалнта низа [ai,j]mxn . Да се пресмета збирот на секоја редица и збирот на секоја колона посебно.
Да се пресмета збирот и производот на елементите од p-та редица и q-та колона на дводимензионалното поле [ai,j]nxn.
За дводимензионалната низа [ai,j]nxn да се пресмета збирот на елемен­тите од главната дијагонала и збирот на елементите од споредната дијаго­нала.
Да се најде елементот со најголема и елементот со најмала вредност во дводимензионалната низа [ai,j]mxn.
Да се пресмета збирот на дводимензионалните низи A=[ai,j]mxn и B=[bi,j]mxn
Да се замени p-тата редица со q-тата колона во дводимензионалната низа [ai,j]nxn.
Во дводимензионалната низа [ai,j]mxn да се заменат редиците со коло­ните.
Да се избришат i-тата редица и ј-тата колона од дводимензионал­ната низа [ai,j]mxn .
Да се пресмета производот на дводимензионалните низи A=[ai,j]mxn и B=[bi,j]mxn.
Дадена е дводимензионалнта низа [ai,j]mxn . Да се пресмета збирот на секоја редица и збирот на секоја колона посебно.
Да се пресмета збирот и производот на елементите од p-та редица и q-та колона на дводимензионалното поле [ai,j]nxn.


No comments: