
Вариант 18 / Практика 2
.docx
-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
ОТЧЕТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ №2 |
|
по дисциплине |
|
«Алгоритмические основы обработки данных»
|
|
|
|
Выполнил студент группы
|
|
Принял старший преподаватель
|
Ю.С. Асадова |
Практическая работа выполнена |
«__»_______2024г. |
|
|
«Зачтено» |
«__»_______2024г. |
Москва 2024
-
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МИРЭА – Российский технологический университет»
РТУ МИРЭА
Институт информационных технологий
Кафедра вычислительной техники
Выполнено ____________________//
Зачтено ____________________/А.С. Асадова/
Задание на практическую работу №2
Дисциплина: «Алгоритмические основы обработки данных»
Студент Шифр Группа
1. Тема: «Двумерные массивы».
2. Срок сдачи студентом законченной работы: 29.09.2024г.
3. Исходные данные: Дана целочисленная матрица из n строк и m столбцов (1<n<=100, 1<m<=50)
4. Задание: Циклический сдвиг строк вниз на k позиций.
5. Содержание отчета:
титульный лист;
задание;
оглавление;
введение;
основные разделы отчета;
заключение;
список использованных источников;
Руководитель работы Ю.С. Асадова ____________ «___» ____________ 2024г.
подпись
Задание принял к исполнению ____________ «___» ____________ 2024г.
подпись
СОДЕРЖАНИЕ
Y
ВВЕДЕНИЕ 4
1 ОСНОВНОЙ РАЗДЕЛ 5
2 БЛОК–СХЕМА АЛГОРИТМА 6
3 ИСХОДНЫЙ КОД 7
4 ПРИМЕР РАБОТЫ ПРОГРАММЫ 8
Заключение 10
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 11
ВВЕДЕНИЕ
В данной практической работе требуется применить двумерные массивы на примере циклического сдвига строк вниз на k позиций.
Постановка задачи:
Разработать программу, запрашивающую ввода количества элементов массива и его элементы.
В качестве параметров число элементов в массиве и ввод элементов этого массива, поиск часто встречающееся число в массиве. В программе количество элементов и сами элементы будут храниться как переменных целочисленного типа.
Необходима реализация проверки ввода на логичность введенных (количество элементов массива не равно нулю или отрицательному числу).
При успешном вводе данных пользователю должен быть выдан ответ наиболее часто встречающее число.
1 ОСНОВНОЙ РАЗДЕЛ
Во время работы программы пользователь вводит параметр n – количество элементов массива.
После ввода необходимых данных с помощью одномерного массива будет произведена проверка введенных данных, и, при несоответствии с исходными, будет выведено сообщение об ошибке и завершена работа программы.
После успешного прохождения проверки сторон, пользователь сможет ввести параметры i и j — элементы массива и количество вхождение элементов.
Затем будет произведена количество вхождений в элементах массива больше количество элементов:
(1)
где j – количество вхождение элементов, n – количество элементов массива.
Если это условие является истинным, то программа приравняет j к i. Далее программа перейдет к условию для обновления результата:
(2)
(3)
где count – подсчет количества вхождений текущего элемента массива, maxCount – хранит максимальное количество вхождений для всех чисел, которые уже проверялись в массиве до текущего элемента, arr[i] – массив из элементов, result – результата представляющий из себя одномерный массив.
Если это условие является истинным, то программа выдаст ответ, виде числа который чаще всего встречается в массиве.
2 БЛОК–СХЕМА АЛГОРИТМА
Представим описание алгоритма в графическом виде на рисунке 2.1.
Рисунок 2.1 – Блок-схема алгоритма программы
3 ИСХОДНЫЙ КОД
Программная реализация алгоритма для решения задачи представлена ниже.
Листинг 3.1 – Процедура нахождение наиболее часто встречающееся число массива
#include <iostream> using namespace std; int main() { int n; cout << "Введите количество элементов массива: "; cin >> n; // Проверка на некорректное значение n if (n <= 0 || n > 100) { cout << "Некорректное значение" << endl; return 1; } int arr[100]; cout << "Введите элементы массива: "; for (int i = 0; i < n; ++i) { cin >> arr[i]; } int maxCount = 0; int result = arr[0]; for (int i = 0; i < n; ++i) { int count = 0; for (int j = 0; j < n; ++j) { if (arr[j] == arr[i]) { count++; } } if (count > maxCount || (count == maxCount && arr[i] > result)) { maxCount = count; result = arr[i]; } } cout << "Наиболее часто встречающееся число: " << result << endl; return 0; } |
4 ПРИМЕР РАБОТЫ ПРОГРАММЫ
Пример работы программы, когда неверный ввод n=0−1 представлен на рисунке 4.1.
Рисунок 4.1– Пример работы программы – Неверный ввод
Пример работы программы, когда неверный ввод n=abыф представлен на представлен на рисунке 4.2.
Рисунок 4.2 – Пример работы программы – Неверный ввод
Пример работы программы, когда выводится самое большое число в массиве n = 4, i = 100; −100; 0; 333 представлен на рисунке 4.3.
Рисунок 4.3 – Пример работы программы – попадает в треугольник
Пример работы программы, когда выводит часто встречающие число n =4, i = 100; 5; 5; −5 представлен на рисунке 4.4.
Рисунок 4.4 – Пример работы программы – попадает в квадрат
Пример работы программы, когда выводит часто встречающие число если в массиве одинаковое элементов выводится самое большое из них n = 7, i = −988; 3; 3; 3; 8; 8; 8 представлен на рисунке 4.5.
Рисунок 4.5 – Пример работы программы – попадание в точки фигур
Заключение
В ходе выполнения данной практической работы была реализована программа с одномерным массивом. Также были приобретены навыки работы с математическими и логическими выражениями на языке программирования C++.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Лозовский В.В. Алгоритмические основы обработки данных: учебное пособие / Лозовский В.В., Платонова О.В., Штрекер Е.Н. — М.: МИРЭА – Российский технологический университет, 2022. – 337 с.
Платонова О.В. Алгоритмические основы обработки данных: методические указания / Платонова О.В., Асадова Ю.С., Расулов М.М. — М.: МИРЭА – Российский технологический университет, 2022. — 73 с.
Белик А.Г. Алгоритмы и структуры данных: учебное пособие / А.Г. Белик, В.Н. Цыганенко. — Омск: ОмГТУ, 2022. — 104 с. — ISBN 978-5-8149-3498-7. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/343688 (дата обращения: 17.09.2024)
Павлов Л.А. Структуры и алгоритмы обработки данных / Л.А. Павлов, Н.В. Первова. — 2-е изд., стер. — Санкт-Петербург: Лань, 2022. — 256 с. — ISBN 978- 5-507-44105-1. — Текст: электронный // Лань: электронно-библиотечная система.
Пантелеев Е.Р. Алгоритмы и структуры данных: учебное пособие / Е.Р. Пантелеев, А.Л. Алыкова. — Иваново: ИГЭУ, 2018. — 142 с. — Текст: электронный // Лань: электронно-библиотечная система. — URL: https://e.lanbook.com/book/154576 (дата обращения: 21.09.2024)