Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- const unsigned short SIZE = 5;
- void startInit(int matrix[][SIZE])
- {
- for (int i = 0; i < SIZE; i++) {
- for (int j = 0; j < SIZE; j++) {
- matrix[i][j] = SIZE - i;
- }
- }
- }
- void printArray(int matrix[][SIZE]) {
- for (int i = 0; i < SIZE; i++) {
- for (int j = 0; j < SIZE; j++) {
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- }
- void arrayCopyMatrix(const int matrix[][SIZE], int copyArr[][SIZE]) {
- for (int i = 0; i < SIZE; i++) {
- for (int j = 0; j < SIZE; j++) {
- copyArr[i][j] = matrix[i][j];
- }
- }
- }
- void makeZeroUnderGeneralDiagonal(int matrix[][SIZE]) {
- unsigned short choose = -1;
- int copyArr[SIZE][SIZE];
- do
- {
- cout << "Choose action:\n[1] Change main matrix\n[2] Make copy on main matrix\n[0] Return to general menu\n:";
- cin >> choose;
- switch (choose)
- {
- case 1:
- for (int i = 1; i < SIZE; i++) {
- for (int j = 0; j < i; j++) {
- matrix[i][j] = 0;
- }
- }
- printArray(matrix);
- choose = -1;
- break;
- case 2:
- arrayCopyMatrix(matrix, copyArr);
- for (int i = 1; i < SIZE; i++) {
- for (int j = 0; j < i; j++) {
- copyArr[i][j] = 0;
- }
- }
- printArray(copyArr);
- choose = -1;
- break;
- default:
- break;
- }
- } while (choose < 0 || choose > 2);
- }
- void makeCircle(int matrix[][SIZE]) {
- unsigned short choose = -1;
- int copyArr[SIZE][SIZE];
- const unsigned short centralIndex = SIZE / 2;
- do
- {
- cout << "Choose action:\n[1] Change main matrix\n[2] Make copy on main matrix\n[0] Return to general menu\n:";
- cin >> choose;
- switch (choose)
- {
- case 1:
- for (int i = 0; i < centralIndex; i++)
- {
- for (int j = i; j < SIZE - i; j++) {
- for (int g = i; g < SIZE - i; g++) {
- matrix[j][g] = SIZE - i;
- }
- }
- }
- matrix[centralIndex][centralIndex] = centralIndex + 1;
- printArray(matrix);
- choose = -1;
- break;
- case 2:
- arrayCopyMatrix(matrix, copyArr);
- for (int i = 0; i < centralIndex; i++)
- {
- for (int j = i; j < SIZE - i; j++) {
- for (int g = i; g < SIZE - i; g++) {
- copyArr[j][g] = SIZE - i;
- }
- }
- }
- copyArr[centralIndex][centralIndex] = centralIndex + 1;
- printArray(copyArr);
- choose = -1;
- break;
- default:
- break;
- }
- } while (choose < 0 || choose > 2);
- }
- void makeNullDiagonalAndSort(int matrix[][SIZE]) {
- unsigned short choose = -1;
- int copyArr[SIZE][SIZE];
- unsigned short counter = 0;
- unsigned short number = 1;
- do
- {
- cout << "Choose action:\n[1] Change main matrix\n[2] Make copy on main matrix\n[0] Return to general menu\n:";
- cin >> choose;
- switch (choose)
- {
- case 1:
- for (int i = 0; i < SIZE; i++) {
- matrix[i][counter] = 0;
- for (int j = counter + 1; j < SIZE; j++) {
- matrix[j][counter] = number;
- number++;
- }
- counter++;
- }
- for (int i = counter - 1; i > 0; i--) {
- for (int j = counter - 2; j >= 0; j--) {
- matrix[j][counter - 1] = number;
- number++;
- }
- counter--;
- }
- printArray(matrix);
- choose = -1;
- counter = 0;
- number = 1;
- break;
- case 2:
- arrayCopyMatrix(matrix, copyArr);
- for (int i = 0; i < SIZE; i++) {
- copyArr[i][counter] = 0;
- for (int j = counter + 1; j < SIZE; j++) {
- copyArr[j][counter] = number;
- number++;
- }
- counter++;
- }
- for (int i = counter - 1; i > 0; i--) {
- for (int j = counter - 2; j >= 0; j--) {
- copyArr[j][counter - 1] = number;
- number++;
- }
- counter--;
- }
- printArray(copyArr);
- choose = -1;
- counter = 0;
- number = 1;
- break;
- default:
- break;
- }
- } while (choose < 0 || choose > 2);
- }
- void makeSpiralOfNumber(int matrix[][SIZE]) {
- unsigned short choose = -1;
- int copyArr[SIZE][SIZE];
- unsigned short counter = 0;
- unsigned short number = 1;
- do
- {
- cout << "Choose action:\n[1] Change main matrix\n[2] Make copy on main matrix\n[0] Return to general menu\n:";
- cin >> choose;
- switch (choose)
- {
- case 1:
- matrix[0][0] = 1;
- for(int i = 1; i < SIZE * SIZE; i++)
- printArray(matrix);
- choose = -1;
- counter = 0;
- number = 1;
- break;
- case 2:
- arrayCopyMatrix(matrix, copyArr);
- for (int i = 0; i < SIZE; i++) {
- copyArr[i][counter] = 0;
- for (int j = counter + 1; j < SIZE; j++) {
- copyArr[j][counter] = number;
- number++;
- }
- counter++;
- }
- for (int i = counter - 1; i > 0; i--) {
- for (int j = counter - 2; j >= 0; j--) {
- copyArr[j][counter - 1] = number;
- number++;
- }
- counter--;
- }
- printArray(copyArr);
- choose = -1;
- counter = 0;
- number = 1;
- break;
- default:
- break;
- }
- } while (choose < 0 || choose > 2);
- }
- int main()
- {
- int matrix[SIZE][SIZE];
- unsigned short choose = -1;
- // Default matrix array values
- startInit(matrix);
- do
- {
- cout << "Choose action:\n[1] Make null under general diagonal\n[2] Make circle matrix\n[3] Make null diagonal and sort numbers\n:";
- cin >> choose;
- switch (choose)
- {
- case 1:
- makeZeroUnderGeneralDiagonal(matrix);
- choose = -1;
- break;
- case 2:
- makeCircle(matrix);
- choose = -1;
- break;
- case 3:
- makeNullDiagonalAndSort(matrix);
- choose = -1;
- break;
- case 4:
- makeSpiralOfNumber(matrix);
- choose = -1;
- break;
- default:
- break;
- }
- } while (choose < 0 || choose > 4);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement