Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <string>
- #include <iostream>
- #include <iomanip>
- using namespace std;
- class MatrixCombo
- {
- public:
- int row;
- int col;
- int *mtrI;
- MatrixCombo (int r, int c)
- {
- row= r; col= c;
- }
- ////////////
- ~MatrixCombo()
- {
- delete [] mtrI;
- cout << "Освобождаем ранее занятую память..." << endl;
- }
- ////////////////////
- void MakeIntMatr()
- {
- mtrI= new int [row*col]; if (mtrI==NULL) throw 11;
- for (int rr= 0; rr< row; rr++)
- {
- for (int cc= 0; cc< col; cc++)
- {
- mtrI[rr*col+cc]= rr*10+cc;
- }
- }
- }
- //////////////////
- void ChangeColumn(int c1, int c2)
- {
- if (c1<0 || c1>col) { cout << "Индекс первого столбца некорректен... c1=0" << endl; c1=0; }
- if (c2<0 || c2>col) { cout << "Индекс второго столбца некорректен... c2= максиммальный" << endl;
- c2=col-1; }
- if (c1==c2) { cout << "Индексы столбцов равны... c1=0 и c2= максиммальный " << endl;
- c1=0; c2= col-1; }
- int tmp;
- for (int r=0; r< row; r++)
- {
- tmp= mtrI[r*col+c1];
- mtrI[r*col+c1]= mtrI[r*col+c2];
- mtrI[r*col+c2]= tmp;
- }
- }
- ///////////////
- void OutMatr()
- {
- for (int rr= 0; rr< row; rr++)
- {
- for (int cc= 0; cc< col; cc++)
- {
- cout << mtrI[rr*col+cc] << '\t';
- }
- cout << endl;
- }
- }
- };
- int main(int argc, char **argv)
- {
- system("chcp 1251 > nul"); // Руссификация сообщений
- setlocale(LC_ALL, "Russian");
- MatrixCombo mc(5,7);
- try { mc.MakeIntMatr(); mc.OutMatr();
- cout << endl << "Поменяем указанные столбцы..." << endl;
- int c1,c2; cin >> c1 >> c2;
- mc.ChangeColumn(c1,c2); mc.OutMatr(); }
- catch (int i)
- {
- switch (i)
- {
- case 11: cout << "Ошибка выделения памяти..." << endl; exit(1); break;
- }
- }
- system("pause"); // system("pause > nul");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement