}& operator<<(ostream & os, const R_Matrix &mtr)
{(unsigned i = 0; i < mtr.columns; ++i)
{(unsigned j = 0; j < mtr.rows; ++j)
{(! mtr.Check(i, j)) << "0 ";
{(list<data>::const_iterator c_itr = mtr.lst.cbegin(); c_itr != mtr.lst.cend(); c_itr++)
{(i == c_itr->i && j == c_itr->j) << c_itr->val << " ";
}
}<< endl;
}os;
}main()
{unsigned n = 5;unsigned m = 4;**mtr1; **mtr2;
#pragma region= new UserType*[n];mtr2 = new UserType*[n];(int i = 0; i < n; ++i)
{[i] = new UserType[m];[i] = new UserType[m];
}
#pragma endregion
#pragma region (int i = 0; i < n; ++i) (int j = 0; j < m; ++j)
{[i][j] = 0;[i][j] = 0;
}[0][2] = 4;[0][1] = 3;[1][3] = 1;[3][2] = 7;[4][0] = 3;[3][1] = 2;
[0][0] = 12;[0][3] = 5;[2][3] = 2;[3][3] = 15;[4][0] = 3;
#pragma endregion_Matrix r_mtr1(mtr1, n, m); _Matrix r_mtr2;_mtr2.AddR_Matrix(mtr2, n, m);_Matrix res;= r_mtr1 + r_mtr2; << "Firs matrix: " << endl << r_mtr1 << endl; << "Second matrix: " << endl << r_mtr2 << endl;<< "Result matrix: " << endl << res << endl;
system("pause");0;
}
ДОДАТОК Г. КОД ПРОГРАМИ ДО ЗАВДАННЯ 4
#include <iostream>
#include <string>namespace std;Domino{left,right;
};DominoSeq{* seq;count;length;sum;
};DominoSeq maxLength;
static DominoSeq maxSum;
//ф-ція визначення суми на фішках, що не використані
int ComputeSum(Domino* pack, int* usingDomino, int count){sum=0;(int i = 0; i < count; i++)
{(usingDomino[i]==0)+=pack[i].left + pack[i].right;
}sum;
}PrintDominoSeq(DominoSeq ds){<<" Послiдовнiсть - ";(int i = 0; i<ds.length; i++)<<ds.seq[i].left<<"|"<<ds.seq[i].right<<" ";
cout<<endl;
}
//ф-ції перевірки та додання нової фішки до послідовності
int TryAppend(Domino a, Domino b){(a.right==b.left || a.right == b.right)1;0;
}Append(Domino* pack, int a, int b, int* usingDomino, DominoSeq &ds){(pack[a].right == pack[b].right){tmp = pack[b].left;[b].left = pack[b].right;[b].right = tmp;
}.seq[ds.length++]=pack[b];[b]=1;
}
//перевірка можливості продовженняCanContinue(Domino* pack, int startDominoIndex, int* usingDomino, int count){(int i=0; i<count; i++)(usingDomino[i]!=1 && i!=startDominoIndex && TryAppend(pack[startDominoIndex],pack[i]))1;0;
}Compute(Domino* pack, int startDominoIndex, int* usingDomino, int count, DominoSeq &ds){(int j=0; j<count; j++){(!CanContinue(pack, startDominoIndex, usingDomino, count)){(ds.length>maxLength.length)=ds;.sum=ComputeSum(pack,usingDomino,count);(ds.sum>maxSum.sum)=ds;
}(j==startDominoIndex);(usingDomino[j]!=1 && TryAppend(pack[startDominoIndex],pack[j])){* tmpUsingDomino = new int[count];(tmpUsingDomino,usingDomino,count*sizeof(int));* tmpDominoPack = new Domino[count];//так як фішки можуть обертатися (2|3 -> 3|2) потрібно зберігати проміжні масивии фішок(tmpDominoPack,pack,count*sizeof(Domino));tmpDS;.count = count;.length = ds.length;.seq = new Domino[count];//зберігання поточної послідовності фішок(tmpDS.seq,ds.seq,count*sizeof(Domino));(tmpDominoPack, startDominoIndex, j, tmpUsingDomino, tmpDS);(tmpDominoPack, j, tmpUsingDomino, count, tmpDS);
}
}
}ArrayReverse(Domino* pack, int count){ //поворот масиву фішок(int i = 0; i < count; i++)
{tmp = pack[i].left;[i].left = pack[i].right;[i].right = tmp;
}
}main()
{(0,".1251");count=0;>>count;* pack = new Domino[count];(int i = 0; i < count; i++)>>pack[i].left>>pack[i].right;.length=0;.sum=-1;(int steps=0;steps<2;steps++){(int i = 0; i < count; i++)
{
//ініціалізація масиву використаних фішок* usingDomino = new int[count];(int j=0; j<count; j++) [j]=0;[i]=1;
//-----ds;.count=count;.seq = new Domino[count];.length=1;.sum = ComputeSum(pack, usingDomino, count);.seq[0]=pack[i];(pack, i, usingDomino, count, ds);
delete[] usingDomino;
}
//поворот перших фішок та повтор(pack,count);
}<<"Макс. довжина : "<<maxLength.length;
PrintDominoSeq(maxLength);<<"Макс. сума : "<<maxSum.sum;(maxSum);[] pack;("pause");
return 0;
}