
Московский Энергетический Институт (Технический университет)
Расчетное задание по информатике.
Студент: Демьяненко А.Н.
Группа: ТФ-09-08
Преподаватель: Архипов О.Г.
Москва 2009
I. Внешняя спецификация программы
Постановка задачи:
Определить столбец прямоугольной матрицы с максимальной суммой элементов и, если его номер больше заданного, сформировать матрицу из столбцов исходной до найденного столбца, иначе сформировать массив из элементов заданного столбца.
Состав данных:
Тип |
Имя |
Смысл |
Структура |
Диапазон |
Точность |
Поле |
Исходные данные |
||||||
Вещ |
A |
Заданная матрица |
Массив, двумерный 5 строк, 6 столбцов |
|A(i,j)|≤100.0 |
0.1 |
6 |
Цел |
N |
Заданный номер столбца |
Простая переменная |
1≤N≤6 |
- |
1 |
Выходные данные |
||||||
Вещ |
В |
Матрица, составленная из столбцов |
Массив, двумерный 5 строк, 6 столбцов |
|B(i,j)|≤100.0 |
0.1 |
6 |
Вещ |
С |
Массив, составленный из элементов столбца м. А |
Массив, одномерный 5 элементов |
|C(i,j)|≤100.0 |
0.1 |
6 |
Промежуточные данные |
||||||
Цел |
i |
Номер строки |
Простая переменная |
- |
- |
- |
Цел |
j |
Номер столбца |
Простая переменная |
- |
- |
- |
Вещ |
SU |
Суммы элементов столбцов матрицы А |
Массив, одномерный 6 элементов |
- |
- |
- |
Форма ввода
1 6 36 80
<A(1,1)> |
… |
<A(1,6)> |
|
|
……………. |
||||
<A(5,1)> |
… |
<A(5,6)> |
|
|
<N> |
|
1
…
5
6
4. Выходная форма
1 80
Обр1 35 Результаты
10
B(1,1)…B(1,6)
Обр2 : :
B(5,1)…B(5,6)
Обр3 10 C(1)…C(5)
5/6.
Для решения применяется метод пошагового проектирования.
Задача разбита на 4 подзадачи:
Сформировать массив из сумм элементов в столбцах заданной матрицы.
Определить номер максимального элемента заданного одномерного массива
Сформировать матрицу из столбцов заданной матрицы до заданного столбца
Сформировать массив из элементов заданного столбца заданной матрицы
Для реализации представленных ниже вспомогательных алгоритмов на Turbo Pascal 7.0 используются процедуры общего назначения (для 1, 3, 4 подзадачи) и функция (для 2-ой подзадачи).
7. Аномалии не анализируются
8. Тесты
№ |
Назначение |
Контрольные значения исходных данных |
Контрольные значения выходных данных |
1 |
Получение положительного результата |
0.0 -12.2 -13.3 14.4 15.5 99.0 16.6 17.7 18.8 19.9 -20.0 -100.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 2.0 2.0 2.0 2.0 2.0 6 |
Результаты
{C}: 99.0 -100.0 1.0 0.0 2.0 |
2 |
Получение положительного результата |
0.0 -12.2 -13.3 14.4 15.5 99.0 16.6 17.7 18.8 19.9 -20.0 -100.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 2.0 2.0 2.0 2.0 2.0 2.0 3 |
Результаты
{B}: 0.0 -12.2 -13.3 14.4 16.6 17.7 18.8 19.9 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 2.0 2.0 2.0 2.0 |
II. Основной алгоритм программы:
Начало
Ввод: {A},N
Вывод по Обр1
Сегмент 1.1
Определить SU
по проц. SUMST({A})
Сегмент 1.2
Определить
MST
по проц. MST({SU},6)
Да
Нет
MST>N
Сегмент 1.3 Сегмент 1.4
Определить {B} по проц. Определить {C} по проц.
SOZMATR({A},MST) SOZMAS({A},N)
Вывод: {B} по Обр2 Вывод: {C} по Обр3
Конец
III. Сегмент 1.1
Внутренняя спецификация
Подзадача:
Сформировать массив из сумм элементов в столбцах заданной матрицы.
Состав данных:
Тип |
Имя |
Смысл |
Структура |
Входные данные |
|||
Вещ |
A |
Заданная матрица |
Массив, двумерный 5 строк, 6 столбцов |
Выходные данные |
|||
Вещ |
S1 |
Матрица из сумм элементов в столбцах {A} |
Массив, одномерный 6 элементов |
Промежуточные данные |
|||
Цел |
i |
Номер строки |
Простая переменная |
Цел |
j |
Номер столбца |
Простая переменная |
Вещ |
S1 |
Матрица из сумм элементов в столбцах {A} |
Массив, одномерный 6 элементов |
3. Данная подзадача реализована в Turbo Pascal 7.0 как процедура общего назначения, поскольку ее выходной параметр – массив.
Имя процедуры – SUMST.
4. Аномалии не анализируются.
Сегмент 1.2
Внутренняя спецификация
1. Подзадача:
Определить номер максимального элемента заданного одномерного массива
2. Состав данных:
Тип |
Имя |
Смысл |
Структура |
Входные данные |
|||
Вещ |
S2 |
Заданный массив |
Массив, одномерный |
Цел |
D |
Количество элементов заданного массива |
Простая переменная |
Выходные данные |
|||
Цел |
MST |
Номер максимального элемента заданного массива |
Простая переменная |
Промежуточные данные |
|||
Цел |
i |
Номер очередного элемента массива |
Простая переменная |
Вещ |
M |
Очередной максимальный элемент |
Простая переменная |
3. Данная подзадача реализована в Turbo Pascal 7.0 как функция, поскольку она имеет один выходной параметр.
Имя функции – MST.
Аномалии не анализируются.
Сегмент 1.3
Внутренняя спецификация
Подзадача:
Сформировать матрицу из столбцов заданной матрицы до заданного столбца
2. Состав данных:
Тип |
Имя |
Смысл |
Структура |
Входные данные |
|||
Вещ |
A |
Заданная матрица |
Массив, двумерный 5 строк, 6 столбцов |
Цел |
N1 |
Заданный номер столбца |
Простая переменная |
Выходные данные |
|||
Вещ |
B1 |
Полученная матрица |
Массив, двумерный 5 строк, 6 столбцов |
Промежуточные данные |
|||
Цел |
j |
Номер столбца |
Простая переменная |
Цел |
i |
Номер строки |
Простая переменная |
3. Данная подзадача реализована в Turbo Pascal 7.0 как процедура общего назначения, поскольку ее выходной параметр – матрица.
Имя процедуры – SOZMATR.
4. Аномалии не анализируются.
Сегмент 1.4
Внутренняя спецификация
1. Подзадача:
Сформировать массив из элементов заданного столбца заданной матрицы.