// 5_3.cpp: Задание 3
#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;
}
} while (a > b);
for (int i = 0; i < n; i++)
{
arr[i] = a + rand() % b;
}
}
|
|
/*
* Процедура вывода целочисленного массива
*/
void arrOut(int* arr, int n)
{
cout << endl << "Вывод массива: " << endl;
for (int i = 0; i < n; i++)
{
cout << arr[i] << "\t";
}
cout << endl << endl;
}
/*
* Процедура сортирует n элементов массива по возрастанию методом "вставка-сдвиг" и выводит массив
*/
void sortAscending(int* arr, int n)
{
int old;
int g = 0;
for (int i = 0; i <= n - 1; i++)
{
for (int j = i; j <= n - 1; j++)
{
if ((arr[i] > arr[j]))
{
old = arr[j];
for (int h = j - 1; h >= i; h--)
{
arr[h + 1] = arr[h];
}
arr[i] = old;
}
}
}
arrOut(arr, n);
}
/*
* Решение индивидуальной задачи
* Ничего не возвращает
*/
void program_3()
{
int n;
cout << "Введите кол-во элементов в массиве: ";
cin >> n;
cout << endl;
int* arr = new int[n];
// Генерация массива
arrGen(arr, n);
// Вывод массива
arrOut(arr, n);
// Логика программы
sortAscending(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. Контрольный пример: