Постановка задачи
Дана квадратная матрица. Увеличить все элементы строки с минимальной суммой элементов на среднее арифметическое элементов матрицы, лежащих выше главной диагонали.
Состав данных
Тип
| Имя
| Смысл
| Структура
| Диапазон
значений
| Точность
| Поле
|
Исходные данные
|
Вещ
| A
| Заданная матрица.
| Массив, двумерный
5 строк
5 столбцов
| |A(i,j)|≤100.0
| 0.01
|
|
Выходные данные
|
Вещ
| B
| Матрица {А}, измененная по условию.
| Массив, двумерный
5 строк
5 столбцов
| |B(i,j)|≤100.0
| 0.01
|
|
Промежуточные данные
|
Цел
| I
| Номер строки.
| Простая переменная
|
|
|
|
Цел
| J
| Номер столбца.
| Простая переменная
|
|
|
|
Вещ
| SRA
| Среднее арифметическое значение элементов матрицы, лежащих выше главной диагонали.
| Простая переменная
|
|
|
|
Цел
| MINNA
| Номер строки матрицы {A},содержащий минимальную сумму.
| Простая переменная
|
|
|
|
Вещ
| SUMSA
| Суммы строк матрицы {A}.
| Массив одномерный 5 элементов
|
|
|
|
Форма ввода
1 6 35 80
<A(1,1)>
| …
| <A(1,5)>
|
|
…………….
|
<A(5,1)>
| …
| <A(5,5)>
|
|
…
4. Выходная форма
Среднее арифметическое равно нулю.
Матрица не изменена
<A(1.1)> <A(1.2)>... <A(1.5)>
<A(2.1)> <A(2.2)>... <A(2.5)>
............
<A(5.1)> <A(5.2)>... <A(5.5)>
|
Изменяется первая строка при совпадении минимальных сумм
Измененная матрица
<B(1.1)> <B(1.2)>... <B(1.5)>
<B(2.1)> <B(2.2)>... <B(2.5)>
............
<B(5.1)> <B(5.2)>... <B(5.5)>
|
5. / 6.
Для решения применяется метод пошагового проектирования.
Задача разбита на 4 подзадачи:
1) Сформировать массив из сумм элементов строк матрицы.
2) Найти номер минимального элемента массива.
3) Найти среднее арифметическое элементов матрицы, лежащих выше главной диагонали.
4) Увеличить все элементы строки на число.
Аномалии.
Вычислительных аномалий нет, прочие не анализируются.
Тесты
№
| Назначение
| Контрольные значения
|
Исходные данные
| Выходные данные
|
| Получение положительного результата выполнения программы (Вывод по образцу 2).
|
1 2 3 4 1
0 9 9 9 9
1 1 1 1 1
9 9 9 9 9
1 1 1 1 1
| Результаты
Изменяется первая строка при совпадении минимальных сумм
Измененная матрица
1 2 3 4 1
0 9 9 9 9
6 6 6 6 6
9 9 9 9 9
1 1 1 1 1
|
| Получение частного положительного результата (Вывод по образцу 3)
|
1 0 0 0 0
0 9 0 0 0
1 1 1 0 0
9 9 9 9 0
1 1 1 1 1
| Результаты
Среднее арифметическое равно нулю.
Матрица не изменена.
1 0 0 0 0
0 9 0 0 0
1 1 1 0 0
9 9 9 9 0
1 1 1 1 1
|
II. Основной алгоритм программы
III. Сегменты
Внутренняя спецификация сегмента 1.1
Подзадача
Сформировать массив из сумм элементов каждой строки матрицы.
Состав данных
Тип
| Имя
| Смысл
| Структура
|
Входные данные
|
Вещ
| X
| Заданная матрица
| Массив, двумерный
M строк
N столбцов
|
Цел
| M
| Количество строк матрицы {X}
| Простая переменная
|
Цел
| N
| Количество столбцов матрицы {X}
| Простая переменная
|
Выходные данные
|
Вещ
| SUMSX
| Суммы элементов строк матрицы {X}
| Массив, одномерный
M элементов
|
Промежуточные данные
|
Цел
| I
| Номер строки
| Простая переменная
|
Цел
| J
| Номер столбца
| Простая переменная
|
· Процедура NSUMS({X}, M, N, {SUMSX}).
· Подзадача сегмента представлена в Turbo Pascal 7.0 как процедура общего назначения, поскольку выходной параметр - массив.
Внутренняя спецификация сегмента 1.2
Подзадача
Найти номер минимального элемента массива.