Отчет о лабораторной работе 4 по дисциплине Программирование Вариант 31 2022 2
Скачать 202.08 Kb.
|
Пензенский государственный университет Факультет вычислительной техники Кафедра «Информационно-вычислительные системы» ФУНКЦИИ Отчет о лабораторной работе № 4 по дисциплине «Программирование» Вариант №31 2022 2 1 Формулировка задачи Разработать и испытать функцию поиска количества максимальных элементов в целочисленной матрице. 2 Техническое задание 2.1 Требования к программе Главная программа должна выполнять: Ввод размеров матрицы. Проверку на корректность введенных значений. Заполнение матрицы случайными значениями в диапазоне от -10 до 10. Вывод матрицы. Вызов функции MaxElem(matrix, m, n), где «matrix» - целочисленная матрица, m - количество столбцов, n - количество строк. Вывод количества максимальных элементов в матрице. Функция MaxElem(matrix,m,n) должна выполнять: Подсчет количества максимальных элементов в матрице. Возврат количества максимальных элементов в главную программу. Порядок контроля и приемки Для контроля правильности работы составлен набор данных. Набор данных нужно ввести в программу и сравнить результаты программы с результатами, полученными путем ручного расчета. Если результаты совпадут, то это будет означать, что программа удовлетворяет условию технического задания. 3 3 Описание программы 3.1 Общие сведения Программа Lab4 разработана в среде Visual Studio 2019, её текст приведен в приложении А 3.2 Функциональное назначение Программа предназначена для того, чтобы подсчитывать количество максимальных элементов в целочисленной матрице. Пользователь имеет возможность ввести размеры матрицы и получить результат в виде количества максимальных элементов в целочисленной матрице. 3.3 Описание логической структуры Алгоритм решения задачи в виде схемы главной программы представлен на рисунке 1. Решение задачи начинается c ввода пользователем значений марицы, далее следует проверка на ввод отрицательных и недопустимых значений. Далее следует цикл для заполнения матрицы случайными числами. Далее в следующем цикле заполенная матрица выводится пользователю. После следует вызов подпрограммы-функции maxElem(matrix, m, n). Алгоритм работы подпрограммы-процедуры maxElem представлен на рисунке 2. Решение подпрограммы начинается с поиска количества максимальных элементов в матрице(matrix[i][j]) Далее следует вывод количества максимальных элементов пользователю. Программа состоит из одного модуля Lab4.cpp. В программе подключены следующие библиотеки: <windows.h> для русификации консольного ввода, вывода; <stdlib.h> для использования функции «rand»; 4 Рисунок 1 — Схема главной программы 5 Рисунок 2 — Схема подпрограммы-функции maxElem 6 4 Программа и методика испытаний Проверка правильности работы программы подготовлены тестовые данные, представленные в таблице 1. Таблица 1 — тестовый набор данных
Для проверки правильности работы программы необходимо запустить ее, ввести количество столбцов, количество строк в консольное окно после предложения "Введите количество столбцов(m)", "Введите количество строк(n)" и нажать клавишу ввода на клавиатуре — enter. После получения результата необходимо нажать любую клавишу для выхода из программы. 5 Тестирование При работе программы с тестовыми данными получены результаты, приведенные в приложении Б на рисунках Б.1, Б2, Б3. Результаты совпадают с результатами ручной проверки. Таким образом, можно сделать вывод, что программа работает правильно и удовлетворяет условию технического задания. 7 6 Описание применения После запуска программы на выполнение на экране появляется окно консоли (см. Приложение Б). Пользователь должен ввести значения m, n и нажать клавишу ввода на клавиатуре. В окне консоли формируется матрица и результат подсчета количества максимальных элементов. Затем необходимо нажать на любую клавишу для выхода из программы. Выводы В ходе выполнения лабораторной работы было сформулировано и утверждено техническое задание, разработан алгоритм решения задачи для подсчета количества максимальных элементов в целочисленной матрице, составлена и отлажена программа, разработан тестовый набор данных, выполненное тестирование подтвердило, что программа работает согласно требованием технического задания Таким образом, цель лабораторной работы достигнута. Задание лабораторной работы было выполнено в полном объеме. 8 ТЕКСТ ПРОГРАММЫ Приложение А (обязательное) 9 // LaboratoryWork4.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы. // #include #include #include using namespace std; int maxElem(int matrix1[100][100],int m1, int n1) { int max = -11, kol=0; for (int i = 0; i < m1; i++) { for (int j = 0; j < n1; j++) { if (matrix1[i][j] > max) { max = matrix1[i][j]; kol = 0; } else if (matrix1[i][j] == max) kol++; } } return kol; } int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); int matrix[100][100]; int n, m; while (true) { cout << "Програма, которая находит количество максимальных элементов в целочисленной матрице" << endl; cout << "Введите количество столбцов:" << endl; cin >> m; cout << "Введите количество строк" << endl; cin >> n; if (!cin) { cin.clear(); while (cin.get() != '\n'); cout << "Ошибка! Вы ввели неверные значения! " << endl; cout << "Повторите ввод!" << endl; cout << endl; } else if ((m < 0) || (n < 0)) { cin.clear(); while (cin.get() != '\n'); cout << "Ошибка! Введены отрицательные значения!" << endl; cout << "Повторите ввод!" << endl; cout << endl; } else break; } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { matrix[i][j] = rand() % 21 - 10; } } 10 cout << "Матрица:" << endl; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << matrix[i][j] << '\t'; } cout << endl; } cout << "Количество максимальных элементов в матрице: " << maxElem(matrix, m, n) << endl; } 11 РЕЗУЛЬТАТЫ ИСПЫТАНИЙ Приложение Б (обязательное) 12 Рисунок Б.1 Рисунок Б.2 Рисунок Б.3 |