Главная страница

Отчет о лабораторной работе 4 по дисциплине Программирование Вариант 31 2022 2


Скачать 202.08 Kb.
НазваниеОтчет о лабораторной работе 4 по дисциплине Программирование Вариант 31 2022 2
Дата13.11.2022
Размер202.08 Kb.
Формат файлаodt
Имя файлаOtchet_lab_1_4.odt
ТипОтчет
#786629


Пензенский государственный университет

Факультет вычислительной техники

Кафедра «Информационно-вычислительные системы»


ФУНКЦИИ

Отчет о лабораторной работе № 4

по дисциплине «Программирование»

Вариант №31

2022

2

1 Формулировка задачи
Разработать и испытать функцию поиска количества максимальных элементов в целочисленной матрице.

2 Техническое задание

2.1 Требования к программе

Главная программа должна выполнять:

  • Ввод размеров матрицы.

  • Проверку на корректность введенных значений.

  • Заполнение матрицы случайными значениями в диапазоне от -10 до 10.

  • Вывод матрицы.

  • Вызов функции MaxElem(matrix, m, n), где «matrix» - целочисленная матрица, m - количество столбцов, n - количество строк.

  • Вывод количества максимальных элементов в матрице.

Функция MaxElem(matrix,m,n) должна выполнять:

  • Подсчет количества максимальных элементов в матрице.

  • Возврат количества максимальных элементов в главную программу.



    1. Порядок контроля и приемки



Для контроля правильности работы составлен набор данных. Набор данных нужно ввести в программу и сравнить результаты программы с результатами, полученными путем ручного расчета. Если результаты совпадут, то это будет означать, что программа удовлетворяет условию технического задания.

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.

В программе подключены следующие библиотеки:

      1. <windows.h> для русификации консольного ввода, вывода;

      2. <stdlib.h> для использования функции «rand»;

4


Рисунок 1 — Схема главной программы

5




Рисунок 2 — Схема подпрограммы-функции maxElem

6

4 Программа и методика испытаний
Проверка правильности работы программы подготовлены тестовые данные, представленные в таблице 1.
Таблица 1 тестовый набор данных

Набор данных

Исходные данные


Ожидаемый результат


Фактический результат


m

n

1

10

10

5

5

2

jfdbb

fgbf

Ошибка! Вы ввели неверные значения!

Ошибка! Вы ввели неверные значения!

3

-2

-3

Ошибка! Введены отрицательные значения!

Ошибка! Введены отрицательные значения!


Для проверки правильности работы программы необходимо запустить ее, ввести количество столбцов, количество строк в консольное окно после предложения "Введите количество столбцов(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


написать администратору сайта