1. Постановка задачи
Напишите программу, находящую значение из заданного интервала, отсутствующее в массиве.
2. Исходные данные
- (из Консоли) В качестве исходных данных пользователь должен ввести интервал для чисел, которые будут сравниваться, затем указать размер массива и ввести элементы.
- (из Файл) Первые два числа – интервал сравнения, все последующие – массив для сравнения.
3. Особые ситуации
- Существует сохранение резултатов выполнения программы в файл;
- Полное имя файла не должно содержать пробелы и кириллицу;
- Присутствует 2 заголовочных файла, в которых описаны прототипы функций и модульные тесты;
- Нижняя граница не может быть “больше” верхней;
- Обработка ввода через консоль и проверка имени файла (запрет чтения файлов:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 )
- Обработка ввода из файла - если файл содержит что-то кроме цифр, то выведется соответствующее сообщение.
4. Математические методы и алгоритмы решения задач
- Сортировка пузырьком.
Элементы с большим значением всплывают вверх наподобие больших пузырьков. При первом проходе вдоль массива, начиная проход "снизу", берется первый элемент и поочередно сравнивается с последующими. При этом:
- если встречается более "легкий" (с меньшим значением) элемент, то они меняются местами;
- при встрече с более "тяжелым" элементом, последний становится "эталоном" для сравнения, и все следующие сравниваются с ним.
В результате наибольший элемент оказывается в самом верху массива. Сложность:
- Бинарный поиск.
Бинарный поиск производится в упорядоченном массиве.
5. Форматы представления данных
Программа использует следующие переменные:
Таблица 1 – Переменные, используемы в программе
Имя |
Тип |
Описание |
arr |
int* |
Массив для сравнения |
size |
size |
Размер массива |
file_name |
сhar[] |
Имя файла |
is_successful |
bool |
Корректность тестов |
a,b |
int |
Интервал от a до b |
6. Cтруктура программы
Таблица 2 – Функции, составляющие программу
Имя |
Описание |
SortedArr |
Сортировка по не убыванию |
BinSearch |
Бинарный поиск |
ArrayCompare |
Проверка вхождения числа из интервала в заданный массив |
InputArrConsole |
Ввод массива через консоль |
InputArrFile |
Ввод массива через файл |
SaveResult |
Сохранить результат в файл |
...
К программе также прикреплён отчёт по программе, который содержит следующие пункты:
- Постановка задачи
- Исходные данные
- Особые ситуации
- Математические методы и алгоритмы решения задач
- Форматы представления данных
- Cтруктура программы
- Описание хода выполнения лабораторной работы
- Результаты работы программы
- Исходный текст программы
(ВАЖНО)
Программа выполнена в среде разработки Visual Studio 2017. Если возникают проблемы при запуске, то измените версию инструментов среды на более раннюю:
Откройте свойства проекта -> Раздел "Общие" -> Набор инструментов платформы
kostyaLem