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

Сегмент 1.3. Функция SUMMA1 - student2.ru Обр1 35 Результаты

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru Обр2 15 ‘SU= ‘,SU

5/6.Для решения задачи применяется метод пошагового проектирования.

Задача разбита на 4 подзадачи:

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

Для реализации вспомогательных алгоритмов на TP 7.0 используются процедура общего назначения(поскольку ее выходной параметр массив) и 3 функции(поскольку они имеют по одному выходному параметру).

7. Аномалии:

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

8. Тесты:

Назначение Контрольные значения исходных данных Контрольные значения выходных данных
Получение положительного результата   Результаты    
Получение отрицательного результата   Результаты    

II. Основной алгоритм программы:

Сегмент 1.3. Функция SUMMA1 - student2.ru

Начало

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Ввод: {A}

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Вывод: по обр.1

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Определить {S} по

процедуре SUMJ ({A},N)

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Определить К по

Функции MINJ ({S},N)

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Да Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru
Сегмент 1.3. Функция SUMMA1 - student2.ru

Определить SU по

функции SUMMA1

({S}, MINJ)

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Вывод: SU, по обр.2

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.1. Процедура SUMJ.

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

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

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

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

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

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

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

Сегмент 1.3. Функция SUMMA1 - student2.ru

Начало

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Задать: {A},N

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru J: =1

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru
Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

S1(J):=0

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

I:=1

Сегмент 1.3. Функция SUMMA1 - student2.ru

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

S1(J):=S1(J)+A(I,J)

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

I: =I+1

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru I>N

Сегмент 1.3. Функция SUMMA1 - student2.ru Да

Сегмент 1.3. Функция SUMMA1 - student2.ru

J: =J+1

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru J>N

Сегмент 1.3. Функция SUMMA1 - student2.ru Да

Сегмент 1.3. Функция SUMMA1 - student2.ru

Передать: {S1}

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Конец

Сегмент 1.2. Функция MINJ.

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

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

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

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

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

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

Сегмент 1.3. Функция SUMMA1 - student2.ru

Начало

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Задать: {S2}, N

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

MIN:=S2(1)

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

K: =1

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

J: =1

Сегмент 1.3. Функция SUMMA1 - student2.ru

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Да Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru S2(J)≤MIN

Сегмент 1.3. Функция SUMMA1 - student2.ru

MIN: =S2(J)

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

K: =J

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru J: =J+1

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru J>N

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Да

Сегмент 1.3. Функция SUMMA1 - student2.ru

Передать: K

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru Конец

Сегмент 1.3. Функция SUMMA1.

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

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

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

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

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

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

Сегмент 1.3. Функция SUMMA1 - student2.ru

Начало

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Задать: {S}, К

 
 
SU: =0

Сегмент 1.3. Функция SUMMA1 - student2.ru

J: =1

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

SU: =SU + S3(J)

 
  Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru J: = J+1

Сегмент 1.3. Функция SUMMA1 - student2.ru

Сегмент 1.3. Функция SUMMA1 - student2.ru J>К Нет

Сегмент 1.3. Функция SUMMA1 - student2.ru Да

Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Сегмент 1.3. Функция SUMMA1 - student2.ru Передать: SU

Конец

Наши рекомендации