Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Министерство образования Республики Беларусь2.docx
Скачиваний:
4
Добавлен:
29.09.2019
Размер:
95.99 Кб
Скачать

Министерство образования Республики Беларусь

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

БЕЛОРУССКО – РОССИЙСКИЙ УНИВЕРСИТЕТ

(УО БРУ)

Кафедра «Автоматизированные системы управления»

ОТЧЕТ

ПО ОБЩЕИНЖЕНЕРНОЙ ПРАКТИКЕ

051.1-53 01 02.№ 101916.№ 16.81-01

К защите допущен: Выполнил: студент гр. АСОИ-111

«__»__________ Кузьмин Егор Сергеевич

Защитил: Проверил: ст. преподаватель каф АСУ

«__»__________ _____________ Вайнилович Ю.В.

Оценка__________

Комиссия

__________________

___________________

Могилев 2012

Задача 1

  1. Условие задачи

Дана целочисленная квадратная матрица. Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов; минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы; образовать новую матрицу путём деления каждого элемента исходной матрицы на среднее арифметическое её элементов.

  1. Входные данные

    1. Размерность матрицы.

Назначение: определение размерности матрицы и создаваемого для её хранения двумерного массива данных.

Обозначение в программе: переменная n.

Тип: целочисленный (int).

Диапазон допустимых значений: [2; 32767].

    1. Элементы исходной матрицы (aij).

Назначение: исходные данные для необходимых действий над матрицей

Обозначение в программе: массив a.

Тип: вещественный (float).

Диапазон допустимых значений: [3.4E-38; 3.4E+38]

  1. Выходные данные

    1. Сумма элементов в тех столбцах, которые не содержат отрицательных элементов

Обозначение в программе: переменная r1.

Тип: вещественный (float).

    1. Минимум среди сумм модулей диагоналей, параллельных побочной диагонали матрицы.

Обозначение в программе: переменная r2.

Тип: вещественный (float).

    1. Матрица, образованная путём деления каждого элемента исходной матрицы на среднее арифметическое её элементов

Обозначение в программе: массив c.

Тип: вещественный (float).

  1. Описание функций

    1. Название: filequestion.

Назначение: определение способа ввода исходных данных (в окне программы либо из файла); определение необходимости сохранения результатов в текстовый файл

Указания по вызову и использованию: для определения способа ввода исходных данных следует передать в функцию в качестве параметра число 1, для определения необходимости сохранения результатов в текстовый файл следует передать число 2.

Список формальных параметров:

  • pos

Тип: целочисленный (int).

Назначение: определение назначения функции как определяющей способ ввода исходных данных либо как определяющей необходимость сохранения результатов в текстовый файл.

Описание внешних эффектов: в зависимости от определенного для функции назначения и правильности её вызова в программе выдаются сообщения, просящие пользователя выбрать способ ввода данных; сохранять результаты в файл или нет. В случае неправильного вызова функции выводится сообщение об ошибке в программе.

    1. Название: enter_int

Назначение: считывание вводимой информации и, в случае ввода целого числа, его возвращение

Указания по вызову и использованию: следует использовать при необходимости ввода целочисленных данных

Описание внешних эффектов: в случае ввода нецелочисленной информации выводится сообщение о том, что введено не целое число

    1. Название: enter_float

Назначение: считывание вводимой информации и, в случае ввода вещественного числа, его возвращение

Указания по вызову и использованию: следует использовать при необходимости ввода вещественных данных

Описание внешних эффектов: в случае ввода невещественной информации выводится сообщение о том, что введено не вещественное число.

    1. Название: enter_string

Назначение: считывание вводимой информации в строку

Указания по вызову и использованию: следует использовать при необходимости ввода строки

Список формальных параметров:

  • *str

Тип: символьный (char)

Назначение: строка, в которую записываются введённые данные

    1. Название: sum

Назначение: подсчёт суммы элементов в тех столбцах матрицы, которые не содержат отрицательных элементов

Указания по вызову и использованию: функция может некорректно работать с массивами нечисловых типов.

Список формальных параметров:

  • **mas

Тип: любой

Назначение: массив исходных данных

  • ms1

Тип: целочисленный (int).

Назначение: количество строк матрицы

  • ms2

Тип: целочисленный (int).

Назначение: количество столбцов матрицы

    1. Название: mindiag

Назначение: подсчет минимума среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы

Указания по вызову и использованию: функция может некорректно работать с массивами нечисловых типов.

Список формальных параметров:

  • **mas

Тип: любой

Назначение: массив исходных данных

  • ms

Тип: целочисленный (int).

Назначение: размер квадратной матрицы

    1. Название: newmatrix

Назначение: заполнение матрицы элементами исходной матрицы, делёнными на их среднее арифметическое

Указания по вызову и использованию: функция может некорректно работать с массивами нечисловых типов.

Список формальных параметров:

  • **mas

Тип: любой

Назначение: массив исходных данных

  • ms1

Тип: целочисленный (int).

Назначение: количество строк матрицы

  • ms2

Тип: целочисленный (int).

Назначение: количество столбцов матрицы

- **res

Тип: любой

Назначение: заполняемый массив

    1. Название: t1

Назначение: решение и вывод результатов всех трёх пунктов задачи

Описание внешних эффектов: на начальном этапе выполнения выводится сообщение, приглашающее пользователя выбрать целочисленный либо вещественный тип элементов матрицы. В случае ввода данных из файла выводится сообщение, приглашающее ввести имя файла. В случае невозможности открыть файл с введённым именем, выводится сообщение с названием ошибки. При успешном открытии файла происходит считывание размерности исходной матрицы и её элементов.

В случае ввода данных клавиатурой выводятся сообщения, приглашающие пользователя ввести сначала размерность матрицы, затем элементы её строк.

По завершении вычислений выводится сообщение, сопровождаемое результатами работы функции. В случае необходимости сохранения результатов в текстовый файл, выводится сообщение, приглашающее ввести имя файла для сохранения. В случае невозможности создать файл с введённым именем, выводится сообщение с названием ошибки. При успешном открытии файла, в него записывается сообщение с результатами работы функции, идентичное выведенному на экран.

  1. Тестирование

Исходные данные: матрица 4х4

2

6

-10

4

5

3

3

1

15

2

3

-9

1

2

-8

1

Аналитическое решение:

  • Сумма элементов в тех столбцах, которые не содержат отрицательных элементов r1=2+5+15+1+6+3+2+2=36

  • Минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы r2=2+3+1=6

  • Новая матрица, образованная путём деления каждого элемента исходной матрицы на среднее арифметическое её элементов:

(2+6-10+4+5+3+3+1+15+2+3-9+1+2-8+1)/16=1.3125

2/1.3125

6/1.3125

-10/1.3125

4/1.3125

5/1.3125

3/1.3125

3/1.3125

1/1.3125

15/1.3125

2/1.3125

3/1.3125

-9/1.3125

1/1.3125

2/1.3125

-8/1.3125

1/1.3125

1.5238

4.5714

-7.619

0.853

1.067

2.2857

2.2857

0.7619

11.4286

1.5238

2.2857

-1.92

0.7619

1.5238

-6.0952

0.7619

Результаты работы программы:

r1=36.000000

r2=6.000000

Новая матрица:

1.523810 4.571429 -7.619048 3.047619

3.809524 2.285714 2.285714 0.761905

11.428572 1.523810 2.285714 -6.857143

0.761905 1.523810 -6.095238 0.761905