Събиране на матрици - двумерен масив
Събиране на две матрици се извършва при равни размери - броя редове и колони в двете матрици (двумерен масив) са съответно равни.
Елементите на новополучената матрица (сбора) имащи същите индекси, са равни на сбора на съответните елементи от събираните матрици.
Това позволява с два вложени цикъла да се обходят всички елементи с едни и същи индекси и да се натрупа сумата им.
В приложения пример се ползва структура данни от тип двумерен масив.
При деклариране на всеки двумерен масив се указват равен брой редове и колони - като константи.
В приложения пример са въведени предварително стойностите на елементите в двата двумерни масива - двете матрици, които ще се събират.
Ако се промени броя на редове или колони трябва да се въведат и съответния брой стойности за всеки двумерен масив.
Реализирана програма предоставя възможност за генериране на псевдослучайни числа като стойност на елементи във всяка матрица или да се въвежда ръчно стойност за всеки елемент.
Следващата примерна програма дава решена задача за събиране на матрици:
#include <iostream>
using namespace std;
//obs-br=3 - pyrwata matrica e s 4 reda 3 koloni, a wtorata s 3 reda 2 koloni
int main()
{ int const br_red=4, br_kol=2, razmer=10;
//razmerite za broj redowe i koloni sa deklarirani kato konstanti
//wywevdane stojnosti na elementi move da se osyshestwi:
//a) pri deklarirane; b) da se wywevdat ot klawiaturata; c) kato sluchajni chisla
int mas1[br_red][br_kol] = { {1,7}, {4,0},{9,4}, {8,8} };
int mas2[br_red][br_kol] = { {2,4}, {5,5},{1,7}, {1,1} };
int mas3[br_red][br_kol];
int i,j, suma;
cout<<"Imate dwe matrici s razmeri [4][2], sydyrvashi estestweni\n";
cout<<"chisla ot interwala [0..9]. Da se systawi programa, chez koqto se\n";
cout<<"wywevdat stojnosti na elementi w dwete matrici i se izwevda\n";
cout<<"rezlultata ot tqhnoto symirane.\n";
//inicializirane na nowiq masiw - wsichki elementi da sa 0
for( i = 0; i < br_red; i++)
{ for( j = 0; j < br_kol; j++) { mas3[i][j]=0; }
}//for i
//Priswoqwane/wywevdane i pechat stojnostite za matrica 1
cout<<("Stojnosti w matrica 1: \n");
for( i = 0; i < br_red; i++)
{for( j = 0; j < br_kol; j++)
{//cout<<"Wywedete stojnost za element ["<<i<<"]["<<j<<"]: ";cin>>mas1[i][j];
mas1[i][j]=rand()%razmer;//sluchajni chisla ot interwala
cout<<" "<<mas1[i][j];} //izwevda stojnostta za wseki otdelen element
cout<<endl;
} //for i
//Priswoqwane/wywevdane i pechat stojnostite za matrica 2
cout<<("Stojnosti w matrica 2: \n");
for( i = 0; i < br_red; i++)
{for( j = 0; j < br_kol; j++)
{ //cout<<"Wywedete stojnost za element ["<<i<<"]["<<j<<"]: ";cin>>mas2[i][j];
mas2[i][j]=rand()%razmer;//sluchajni chisla ot interwala
cout<<" "<<mas2[i][j];} //izwevda stojnostta za wseki otdelen element
cout<<endl;
}//for i
cout<<("Rezultatyt ot sybiraneto na dwete matrici e matrica 3: \n");
//sumirane na matricite element po element
for( i = 0; i < br_red; i++)
{for( j = 0; j < br_kol; j++)
{ //sumata e suma ot elementi s ednakwi indeksi
cout<<mas1[i][j]<<" + "<<mas2[i][j];
suma=mas1[i][j] + mas2[i][j];
mas3[i][j] += suma;// suma ot elementi
cout<<" = "<<mas3[i][j]<<"; ";
}//for j
cout<<endl;
}//for i
cout<<("Stojnosti na elementi w matrica 3: \n");
for( i = 0; i < br_red; i++)
{for( j = 0; j < br_kol; j++)
{ //sumata e suma ot elementi w dwete matrici s ednakwi indeksi
cout<<mas3[i][j]<<" ";
}//for j
cout<<endl;
}//for i
system("pause");
return 0;
} // kraj na programa matrica suma
Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.
Начало на страницата