15260
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите с задачкой для borland'a , заранее спасибо Задача. Даны действительные числа a1,a2,…..an и действительная квадратная матрица порядка n(n>=6). Получить новую действительную матрицу размера n*(n+1), вставив в исходную матрицу между 5 и 6 столбцами новый столбец с элементами а1,а2,…, аn. вот нашел для visual, помогите переделать для borlanda for win-) Код: #include <iostream> #include <vector> using namespace std; class CMatrix { vector<vector<int> > m_Data; public: explicit CMatrix(int col,int row) { m_Data.resize(col); for(int i = 0;i<col;i++) m_Data[i].resize(row); } ~CMatrix(void){}; size_t GetCol(void)const{return m_Data.size();} size_t GetRow(void)const{return m_Data[0].size();} void SetValue(size_t col,size_t row,int value) { if((col<m_Data.size())&&(row<m_Data[0].size())) m_Data[col][row] = value; } int GetValue(size_t col,size_t row)const{return m_Data[col][row];} friend ostream& operator<<(ostream& os,CMatrix& matrix) { for(size_t i = 0;i<matrix.GetCol();i++) { for(size_t j = 0;j<matrix.GetRow();j++) os << matrix.GetValue(i,j) << ' '; os << endl; } return os; } void InsertCol(size_t col,int* pArray,size_t length) { if(m_Data[0].size()>=col) for(size_t i = 0;i < m_Data.size();i++) { if(i>=length) m_Data[i].insert(m_Data[i].begin()+col,0); else m_Data[i].insert(m_Data[i].begin()+col,(pArray[i])); } } }; int main(void) { CMatrix matrix(6,6); cout << matrix << endl; int Array[]={1,2,3,4}; matrix.InsertCol(5,Array,sizeof(Array)/sizeof(int)); cout << matrix; return 0; } |
| Всего записей: 2 | Зарегистр. 04-02-2009 | Отправлено: 09:46 04-02-2009 | Исправлено: 15260, 11:54 04-02-2009 |
|