I. Внешняя спецификация программы
1. Постановка задачи:
Если К-й столбец прямоугольной матрицы имеет минимальную сумму элементов, определить сумму элементов столбцов до К-ого, иначе сумму элементов столбцов после К-ого.
2. Состав данных:
Тип | Имя | Смысл | Структура | Диапазон | Точность | Поле |
Исходные данные | ||||||
Вещ | A | Заданная матрица | Массив, двумерный 5 строк, 5 столбцов | |A(I,J)|≤10.0 | 0.01 | |
Цел | М | Заданный номер столбца | Простая переменная | 1≤М≤5 | - | |
Выходные данные | ||||||
Вещ | SU | Сумма элементов до (после) К-ого столбца | Простая переменная | |SU|≤200 | 0.1 | |
Промежуточные данные | ||||||
Цел | I | Номер строки | Простая переменная | - | - | - |
Цел | J | Номер столбца | Простая переменная | - | - | - |
3. Форма ввода:
1 8 40 80
<A(1,1)> | … | <A(1,5)> | ||
……………. | ||||
<A(5,1)> | … | <A(5,5)> | ||
<М> | ||||
…
6
4. Форма вывода:
1 80
Обр1 35 Результаты
Обр2 15 ‘SU= ‘,SU
5/6. Для решения задачи применяется метод пошагового проектирования.
Задача разбита на 4 подзадачи:
- Сформировать массив из сумм элементов в столбцах заданной матрицы.
- Определить номер минимального элемента заданного одномерного массива.
- Определить сумму элементов столбцов до К-ого столбца.
- Определить сумму элементов столбцов после К-ого столбца.
Для реализации вспомогательных алгоритмов на TP 7.0 используются процедура общего назначения(поскольку ее выходной параметр массив) и 3 функции(поскольку они имеют по одному выходному параметру).
7. Аномалии:
Аномалии не анализируются
8. Тесты:
№ | Назначение | Контрольные значения исходных данных | Контрольные значения выходных данных |
Получение положительного результата | Результаты | ||
Получение отрицательного результата | Результаты |
II. Основной алгоритм программы:
Начало
Ввод: {A}
Вывод: по обр.1
Определить {S} по
процедуре SUMJ ({A},N)
Определить К по
Функции MINJ ({S},N)
Да Нет
Определить SU по
функции SUMMA1
({S}, MINJ)
Вывод: SU, по обр.2
Сегмент 1.1. Процедура SUMJ.
Внутренняя спецификация
- Подзадача:
Определение суммы элементов столбцов заданной матрицы.
- Состав данных:
Тип | Имя | Смысл | Структура |
Входные данные | |||
Вещ | A | Заданная матрица | Массив, двумерный 5 строк, 5 столбцов |
Цел | N | Количество строк и столбцов заданной матрицы | Простая переменная |
Выходные данные | |||
Вещ | S1 | Массив из сумм элементов в столбцах {A} | Массив, одномерный 5 элементов |
Промежуточные данные | |||
Цел | I | Номер строки | Простая переменная |
Цел | J | Номер столбца | Простая переменная |
- Аномалии:
Аномалии не анализируются.
Вспомогательные алгоритмы:
Вспомогательный алгоритм 1.1.:
Начало
Задать: {A},N
J: =1
S1(J):=0
I:=1
S1(J):=S1(J)+A(I,J)
I: =I+1
Нет
I>N
Да
J: =J+1
Нет
J>N
Да
Передать: {S1}
Конец
Сегмент 1.2. Функция MINJ.
Внутренняя спецификация
- Подзадача:
Определить номер минимального элемента заданного одномерного массива.
- Состав данных:
Тип | Имя | Смысл | Структура |
Входные данные | |||
Вещ | S2 | Заданный массив | Массив, одномерный |
Цел | N | Количество элементов заданного массива | Простая переменная |
Выходные данные | |||
Цел | К | Номер минимального элемента заданного массива | Простая переменная |
Промежуточные данные | |||
Цел | J | Номер очередного элемента массива | Простая переменная |
Вещ | MIN | Очередной минимальный элемент | Простая переменная |
- Аномалии:
Аномалии не анализируются.
Вспомогательный алгоритм 1.2.:
Начало
Задать: {S2}, N
MIN:=S2(1)
K: =1
J: =1
Да Нет
S2(J)≤MIN
MIN: =S2(J)
K: =J
J: =J+1
Нет
J>N
Да
Передать: K
Конец
Сегмент 1.3. Функция SUMMA1.
Внутренняя спецификация
1. Подзадача:
Определить сумму элементов заданного одномерного массива до К-ого.
- Состав данных:
Тип | Имя | Смысл | Структура |
Входные данные | |||
Вещ | S | Заданный массив | Массив, одномерный, 5 элементов |
Цел | К | Заданный номер столбца | Простая переменная |
Выходные данные | |||
Вещ | SU | Сумма элементов столбцов до К-ого | Простая переменная |
Промежуточные данные | |||
Цел | J | Номер элемента массива | Простая переменная |
- Аномалии:
Аномалии не анализируются.
Вспомогательный алгоритм 1.3.:
Начало
Задать: {S}, К
|
|
|
J: = J+1
J>К Нет
Да
Передать: SU
Конец