// 5_4.cpp: Задание 4
#include <iostream>
#include <ctime>
using namespace std;
/*
* Запрашивает номер программы
* Возвращает номер программы
*/
int response()
{
int response;
cout << "Введите номер программы: ";
cin >> response;
cout << endl;
return response;
}
/*
* Процедура генерации целлочисленной матрицы с заданным диапазоном
*/
void arrGen(int** arr, int n)
{
int a;
int b;
do {
cout << "Введите левую границу диапазона случайных чисел: ";
cin >> a;
cout << "Введите правую границу диапазона случайных чисел: ";
cin >> b;
if (a > b)
{
cout << endl << "Вы ввели некорректный диапазон, попробуйте ещё раз!" << endl << endl;
}
else
{
break;
}
} while (true);
for (int i = 0; i < 2 * n + 1; i++)
{
arr[i] = new int[2*n + 1];
for (int j = 0; j < 2 * n + 1; j++)
{
arr[i][j] = a + rand() % b;
}
}
}
/*
* Процедура вывода целочисленной матрицы
*/
void arrOut(int** arr, int n)
{
cout << endl << "Вывод массива: " << endl;
for (int i = 0; i < 2 * n + 1; i++)
{
for (int j = 0; j < 2 * n + 1; j++)
{
cout << arr[i][j] << "\t";
}
cout << endl;
}
cout << endl << endl;
}
/*
* Процедура меняющаю местами стлобцы относительно середины
*/
void verticalImage(int** arr, int n)
{
int old;
for (int j = 0; j < n; j++)
{
for (int i = 0; i < 2 * n + 1; i++)
{
old = arr[i][j];
arr[i][j] = arr[i][2 * n - j];
arr[i][2 * n - j] = old;
}
}
arrOut(arr, n);
}
/*
* Решение индивидуальной задачи
* Ничего не возвращает
*/
void program_3()
{
int n;
int m;
cout << "Введите n: ";
cin >> n;
cout << endl;
int** arr = new int* [2 * n + 1];
// Генерация массива
arrGen(arr, n);
// Вывод массива
arrOut(arr, n);
// Логика программы
verticalImage(arr, n);
}
void main()
{
setlocale(LC_CTYPE, "rus"); // вызов функции настройки локали
int number;
do
{
number = response();
switch (number)
{
case 0:
{
break;
}
case 1:
{
break;
}
case 2:
{
break;
}
case 3:
{
program 3();
break;
}
default:
cout << "Такой программы не существует! Попробуйте ещё раз!" << endl << endl;
break;
}
} while (number!= 0);
}
5. Контрольный пример:
Отчет по индивидуальному заданию 6.1.20
1. Задание:
Заполнить файл последовательного доступа N вещественными числами, полученными с помощью датчика случайных чисел. Найти сумму минимального и максимального элементов этого файла.
2. Описание алгоритма программы:
Рис. 16. Схема алгоритма
Описание переменных и структур данных, которые применяются в программе
Имя переменной или объекта программы | Тип данных | Назначение |
N | int | Хранит вводимое значение |
fout | ofstream | объект для записи файла |
program_4() | void | Функция, содержащая логику программы |
i | int | Переменная для цикла |
Имя переменной или объекта программы | Тип данных | Назначение |
sum | int | сумма |
max | int | максимальное значение |
min | int | Минимальное значение |