Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <conio.h>
- #include <locale>
- using namespace std;
- HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
- #pragma region Глобальні змінні
- int mass[50][50];
- int ind_mass = 10;
- int h = 5;
- int pv_menu = -1;
- #pragma endregion
- #pragma region Функції
- void InputMas2();
- void OutputMas2();
- void Mas2Random();
- void Mas2Transpon();
- void Mas2Bottom();
- void MainMenu();
- void MasShah();
- #pragma endregion
- int main()
- {
- #pragma region мова
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- #pragma endregion
- // Ініціалізація головного меню
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- MainMenu();
- return 0;
- }
- //Ф-ція головного меню
- void MainMenu()
- {
- #pragma region запуск
- STAD:
- cout << "Введіть к-сть стовпців та рядків: "; cin >> h;
- if (h < 2)
- {
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout << "Помилка! К-сть рядків і столбців не може бути меншим 2!" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- goto STAD;
- }
- REFD:
- cout << "Як заповнити массив?\n[1] Рандомними значеннями [2] Ввести з клавіатури" << endl;
- int l = 0; cin >> l;
- if (l == 2)
- InputMas2();
- else if (l == 1)
- Mas2Random();
- else
- {
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout << "Помилка немає такого пункта!" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- goto REFD;
- }
- #pragma endregion
- // Цикл меню
- int p_menu = 0;
- do
- {
- //Вивід тексту головного меню
- p_menu = 0;
- cout << endl << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout << "Головне меню" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "1. Вивести массив" << endl;
- cout << "2. Транспонувати массив" << endl;
- cout << "3. Заповнити массив ранд значеннями" << endl;
- cout << "4. Заповнити массив 0 та 1 по діагоналі" << endl;
- cout << "5. Заповнити массив в шахматному порядку" << endl;
- cout << "6. Exit" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout << "> "; cin >> p_menu; //Ввід пункту меню
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- //Перемикач на пункти меню
- switch (p_menu)
- {
- case 1:
- {
- OutputMas2();
- break;
- }
- case 2:
- {
- Mas2Transpon();
- break;
- }
- case 3:
- {
- Mas2Random();
- break;
- }
- case 4:
- {
- Mas2Bottom();
- break;
- }
- case 5:
- {
- MasShah();
- break;
- }
- case 6:
- break;
- default:
- // Підсвідка
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- cout << "Даного пункта меню не існує!" << endl << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- break;
- }
- } while (p_menu != 6);
- }
- //Ф-ція вводу значень
- void InputMas2()
- {
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "Введення двохвимірного масиву розмірності " << h << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- // Цикл X
- for (int i = 0; i < h; i++)
- {
- // Цикл Y
- for (int o = 0; o < h; o++)
- {
- //Запис значення з клавіатури в массив
- cout << "mass[" << i << "][" << o << "]= "; cin >> mass[i][o];
- //mass[i][o] = rand() % (100 - 50) - 50;
- }
- }
- // Підсвідка
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "Массив успышно заповнено!" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- }
- //Ф-ція виводу значень
- void OutputMas2()
- {
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << endl << "Вивід массиву" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- // Цикл X
- for (int i = 0; i < h; i++)
- {
- // Цикл Y
- for (int o = 0; o < h; o++)
- {
- // Підсвідка
- #pragma region color
- if (mass[i][o] == 1)
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- else if (mass[i][o] == 0)
- SetConsoleTextAttribute(handle, FOREGROUND_RED);
- #pragma endregion
- //Вивід значення в точці X Y
- cout << mass[i][o] << "\t";
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- }
- // абзац
- cout << endl;
- }
- }
- //Ф-ція ініціалізації массиву ранд значеннями
- void Mas2Random()
- {
- cout << endl;
- //Зманні максимуму та мінімуму
- int max = 0, min = 0;
- //Вивід повідомлення
- cout << "Введіть мінімум і максимум рандому" << endl;
- //Ввід мінімуму
- cout << "Мінімум = "; cin >> min;
- //Ввід максимуму ранд.
- cout << "Максимум = "; cin >> max;
- // Цикл X
- for (int i = 0; i < h; i++)
- {
- // Цикл Y
- for (int o = 0; o < h; o++)
- {
- //Запис рандомного значення в массив
- mass[i][o] = rand() % (max - min) - min;
- }
- }
- }
- //Ф-ція транспонування массиву
- void Mas2Transpon()
- {
- //Змінні
- double s;
- //Цикл Х
- for (int i = 0; i < h; i++)
- {
- //Цикл Y
- for (int o = i + 1; o < h; o++)
- {
- //Міняєм місцями столбець і рядок
- s = mass[i][o];
- mass[i][o] = mass[o][i];
- mass[o][i] = s;
- }
- }
- // Підсвідка
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "Матрицю успішно транспоновано" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- }
- //Ф-ція ініалізації матриці 0 та 1 по діагоналі
- void Mas2Bottom()
- {
- //Цикл Х
- for (int i = 0; i < h; i++)
- {
- // Цикл Y
- for (int o = 0; o < h; o++)
- {
- //Паше - не трогати
- if (i < o)
- {
- //Запис в массив
- mass[i][o] = 0;
- }
- else
- {
- //Запис в массив
- mass[i][o] = 1;
- }
- }
- }
- // Підсвідка
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "Матрицю успішно змінено!" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- }
- void MasShah()
- {
- //Змінна
- int d = 0;
- //Цикл Х
- for (int i = 0; i < h; i++)
- {
- //Перевірка що і не дорівню є 0
- if (i != 0)
- {
- //Задаємо значення 1 числу рядка
- if (mass[i-1][0] == 0)
- d = 0;
- else
- d = 1;
- }
- // Цикл Y
- for (int o = 0; o < h; o++)
- {
- //Перевірка на 0 чи 1
- if (d == 0)
- {
- //Записуємо в массив 1
- mass[i][o] = 1;
- //Д = 1
- d = 1;
- }
- else
- {
- //Записуємо в массив 0
- mass[i][o] = 0;
- //Д = 0
- d = 0;
- }
- }
- }
- // Підсвідка
- SetConsoleTextAttribute(handle, FOREGROUND_GREEN);
- cout << "Матрицю успішно змінено!" << endl;
- SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement