Сегмент 1.3. Функция SUMMA1
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
Конец