-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ №6 |
|
по дисциплине |
|
«Алгоритмические основы обработки данных»
|
|
|
|
Выполнил студент группы
|
|
Принял старший преподаватель
|
Ю.С. Асадова |
Практическая работа выполнена |
«__»_______2024г. |
|
|
«Зачтено» |
«__»_______2024г. |
Москва 2024
-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
Выполнено ____________________//
Зачтено ____________________/А.С. Асадова/
Задание на практическую работу №6
Дисциплина: «Алгоритмические основы обработки данных»
Студент Шифр Группа
1. Тема: «Модульное программирование».
2. Срок сдачи студентом законченной работы: 23.10.2024г.
3. Исходные данные: Разработать программу, выполняющую операции над целочисленным динамическим массивом из n элементов (n<=100):
ввод массива;
вывод массива на экран;
дополнительные операции.
Алгоритмы выполнения операций оформить в виде функций. В алгоритмах выполнения операций добавления и удаления элементов предусмотреть проверку возможности выполнения операций. Программа должна выводить текстовое меню для тестирования операций.
4. Задание: Операция 1 Количество чисел массива, принадлежащих диапазону [x,y].Операция 2 Добавление после последнего максимального числа числа х
5. Содержание отчета:
титульный лист;
задание;
оглавление;
введение;
основные разделы отчета;
заключение;
список использованных источников;
Руководитель работы Ю.С. Асадова ____________ «___» ____________ 2024г.
подпись
Задание принял к исполнению ____________ «___» ____________ 2024г.
подпись
Содержание
Y
ВВЕДЕНИЕ 4
1 ОСНОВНОЙ РАЗДЕЛ 5
2 БЛОК–СХЕМА АЛГОРИТМА 7
3 ИСХОДНЫЙ КОД 8
4 ПРИМЕР РАБОТЫ ПРОГРАММЫ 11
Заключение 13
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 14
Введение
В данной практической работе используется модульное программирование для программы выполняющую операции над целочисленным динамическим массивом.
Постановка задачи:
Разработать программу, выполняющую операции над целочисленным динамическим массивом из n элементов (n<=100):
ввод массива;
вывод массива на экран;
дополнительные операции.
Алгоритмы выполнения операций оформить в виде функций. В алгоритмах выполнения операций добавления и удаления элементов предусмотреть проверку возможности выполнения операций. Программа должна выводить текстовое меню для тестирования операций.
В качестве параметров выступают четыре функции input(int* &a, int &n) содержит ссылку на указатель на динамический массив и ссылку на переменную содержащею количество элементов массиве. output(int* a, int n) Указатель на массив и количество элементов массива. countInRange(int* a, int n, int x, int y) Указатель на массив, в котором производится подсчет, количество элементов массива, нижняя граница диапазона, верхняя граница диапазона. addAfterMax(int* &a, int &n, int x) Ссылка на указатель на массив, чтобы изменить его при добавлении нового элемента, ссылка на количество элементов, которая обновляется после добавления, значение, которое будет добавлено после последнего максимального элемента.menu() Эта функция не имеет параметров, она просто выводит текстовое меню.
Необходима реализация визуального меню и выбор пунктов меню.
При выборе пункта меню выводило выбор пользователя которое соответствует поставленной задачи.
1 Основной раздел
Во время работы программы пользователь должен выбрать нужный пункт меню которое отображается с помощью функции menu().
Если выбран первый пункт меню:
Вызывается функция input(int* &a, int &n);
Программа запрашивает у пользователя количество элементов массива (значение n);
Проверяется, чтобы n было в пределах от 1 до 100. Если не подходит, выводится сообщение об ошибке, и массив не создается;
Если n корректен, выделяется память для динамического массива и запрашиваются элементы массива;
Элементы сохраняются в динамический массив a.
Если пользователь выбрал второй пункт меню:
Вызывается функция output(int* a, int n);
Программа проходит по всем элементам массива и выводит их на экран.
Если пользователь выбрал третий пункт меню:
Программа запрашивает у пользователя ввод границ диапазона x и y;
Вызывается функция countInRange(int* a, int n, int x, int y);
Программа проходит по массиву и подсчитывает количество элементов, которые лежат в заданном диапазоне, и выводит результат.
Если пользователь выбрал четвертый пункт меню:
Программа запрашивает ввод числа x, которое нужно добавить после последнего максимального элемента;
Вызывается функция addAfterMax(int* &a, int &n, int x);
Программа находит индекс последнего максимального элемента массива;
Создается новый массив, в который копируются все элементы до максимального, добавляется новое число, и затем копируются остальные элементы;
Указатель a обновляется на новый массив, а размер n увеличивается.
Если выбран пятый пункт меню программа освобождает выделенную память для массива (если она была выделена) и завершает выполнение. После выполнения выбранной операции программа снова возвращается к меню, где пользователь может выбрать следующую операцию или завершить программу.
Программа будет продолжать активно работать, позволяя пользователю выполнять операции до тех пор, пока не будет выбран пункт 5 для завершения.