Сегмент 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 подзадачи:

  1. Сформировать массив из сумм элементов в столбцах заданной матрицы.
  2. Определить номер минимального элемента заданного одномерного массива.
  3. Определить сумму элементов столбцов до К-ого столбца.
  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.

Внутренняя спецификация

 

  1. Подзадача:

 

Определение суммы элементов столбцов заданной матрицы.

 

  1. Состав данных:

 

Тип Имя Смысл Структура
Входные данные
Вещ A Заданная матрица Массив, двумерный 5 строк, 5 столбцов
Цел N Количество строк и столбцов заданной матрицы Простая переменная
Выходные данные
Вещ S1 Массив из сумм элементов в столбцах {A} Массив, одномерный 5 элементов
Промежуточные данные
Цел I Номер строки Простая переменная
Цел J Номер столбца Простая переменная

 

 

  1. Аномалии:

 

Аномалии не анализируются.

 


 

Вспомогательные алгоритмы:

Вспомогательный алгоритм 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.

Внутренняя спецификация

  1. Подзадача:

 

Определить номер минимального элемента заданного одномерного массива.

 

  1. Состав данных:

 

 

Тип Имя Смысл Структура
Входные данные
Вещ S2 Заданный массив Массив, одномерный
Цел N Количество элементов заданного массива Простая переменная
Выходные данные
Цел К Номер минимального элемента заданного массива Простая переменная
Промежуточные данные
Цел J Номер очередного элемента массива Простая переменная
Вещ MIN Очередной минимальный элемент Простая переменная
  1. Аномалии:

 

Аномалии не анализируются.

 

Вспомогательный алгоритм 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. Подзадача:

 

Определить сумму элементов заданного одномерного массива до К-ого.

 

  1. Состав данных:

 

Тип Имя Смысл Структура
Входные данные
Вещ S Заданный массив Массив, одномерный, 5 элементов
Цел К Заданный номер столбца Простая переменная
Выходные данные
Вещ SU Сумма элементов столбцов до К-ого Простая переменная
Промежуточные данные
Цел J Номер элемента массива Простая переменная

 

 

  1. Аномалии:

 

Аномалии не анализируются.

 

 

Вспомогательный алгоритм 1.3. :

 

 

Начало

 

Задать: {S}, К

 

 

 
 
SU: =0


 

J: =1

 

 


SU: =SU + S3(J)

 

 
 


J: = J+1

 

J>К Нет

 

Да

 

Передать: SU

 

Конец