Научная литература
booksshare.net -> Добавить материал -> Математика -> Боглаев Ю.П. -> "Вычислительная математика и программирование " -> 20

Вычислительная математика и программирование - Боглаев Ю.П.

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 14 15 16 17 18 19 < 20 > 21 22 23 24 25 26 .. 168 >> Следующая

Теперь программирование алгоритма состоит в программировании:
1) обращений к базовым вычислительным блокам;
51
2) базовых логических схем;
3) элементарных арифметических действий.
Проектирование алгоритма по указанным выше правилам будем
называть структурной алгоритмизацией. Для дальнейшего изучения рассмотренных в этом пункте вопросов следует обратиться к [1 ].
ф 2.3. Поток данных
После того как алгоритм спроектирован, т. е. построена его структурно-логическая схема, необходимо описать поток данных, проходящих через него. Основные алгоритмы вычислительной математики имеют как на входе, так и на выходе данные в виде чисел. Внутри алгоритм количество данных может изменяться, часть из них может запоминаться для дальнейших вычислений, часть — затерта записью на их место других данных. Внутри алгоритма возможна организация ввода и вывода данных. Если учесть, что размер памяти ЭВМ, имеющийся в распоряжении пользователя, ограничен определенной величиной, то станет понятной важность описания прохождения данных (потока данных) через алгоритм.
2.3.1. Карта данных алгоритма. Полное описание потока данных алгоритма—это представление всех данных на структурно-логической схеме алгоритма во всех точках входа в вычислительные блоки и выхода из них. Пусть имеется схема алгоритма (рис. 2.19),
где цифрами от 1 до 10 обозначены все точки входа и выхода
вычислительных блоков данного алгоритма. В каждой точке
1 —10 необходимо указать все данные, которые имеет алгоритм в этой точке для схем без повторений. Для схем с повторениями указываются данные в точке 7 при входе в схему, в точке 8—перед выходом. В каждой точке составляется карта данных алгоритма. Таким образом, алгоритм, приведенный на рис. 2.19, имеет 10 пронумерованных карт.
Алгоритм, приведенный на рис. 2.19, решает следующую задачу: в точке
1 вводится матрица А, вектор Ь. В точке 2 имеем решение системы линейных уравнений
Ах = Ь,
\
ч,
С х1(*и). )
б, =тох(1х1(^)-у1 (^) I) 1*1*2 __________________
бг-тох (1х1(^)-у1(^)1) 1^1 ^2
Рис. 2.18
52
Рис. 2.19
поэтому в карте 2 добавляется вектор л; к входным данным. В точке 3 вычисляется значение нормы \\х\\ = тах|*г|. Далее проверяется условие: если норма ||*||<1, то переход на 4, если ||*||>1, то на 6. Пусть ||*||<1; тогда в точке 5 имеем сумму вектора правых частей и решения г = х + Ь. Поэтому в карте 4 добавляется вектор 2. Если ||*||>1, то переход на 6, где вводится вектор у. Схема повторений вычисляет скалярное произведение векторов * и у:
50
д= X х,у,.
1=1
Поэтому перед выходом из схемы повторений кроме данных карты 7 имеем еще число <7. Полный набор всех карт алгоритма следующий.
Карта 1. Двумерный массив вещественных чисел—матрица Аф 1^/^50, 1^у'^50, одномерный массив вещественных чисел Ъь 1^/^50.
Карта 2. Аф одномерный массив вещественных чисел хь 1 ^/^50.
Карта 3. Ац, Ьь хь ||*||.
Карта 4. Совпадает с картой 3.
Карта 5. Аф Ь{, х(, одномерный массив вещественных чисел
Карта 6. Аи, Ьь хь одномерный массив вещественных чисел Уь 1</^50.
Карта 7. Совпадает с картой 6.
Карта 8. Аф Ьь хь у1—вещественное число <7.
Карта 9. Совпадает с картой 8.
Карта 10. Совпадает с картой 5 или 9.
Поясним применение термина «карта» к способу описания данных. Во-первых, данные можно размещать на картах, представляющих память ЭВМ, графически, а не давать словесного описания, как это сделано выше, тогда термин «карта» адекватен способу описания. Во-вторых, термин «карта памяти» применяется при описании распределения памяти ЭВМ, необходимого для выполнения программы алгоритма.
53
Таким образом, карта данных алгоритма играет ту же роль, что и карта памяти для программы алгоритма, но появляется на более ранней стадии решения задачи (на уровне алгоритма).
Карта данных алгоритма позволяет: 1) осуществить контроль структурно-логической схемы алгоритма; 2) документировать алгоритм так, чтобы в нем мог разобраться каждый, а не только тот, кто его спроектировал.
Приведем простой пример контроля схемы алгоритма, приведенного на рис. 2.19, описанием потока данных. Существуют распространенные вычислительные блоки решения систем линейных уравнений Ах = Ь, которые вектор решения л; записывают на место вектора правы^ частей (затирают Ь). Если применить такой блок, то в точке 2 будем иметь следующую карту.
Карта 2. одномерный массив х{.
Следовательно, ветвь алгоритма по точкам 3—4—8 уже не может быть реализована, если ||*||<1.
• 2.4. Структура программ
Процесс создания команд для ЭВМ, следуя которым ЭВМ выполнит алгоритм, называется программированием алгоритма, короче—программированием.
Программа—это последовательность команд для ЭВМ.
Считая, что этапом, предшествующим программированию, является проектирование алгоритма и описание потока данных, . можно утверждать, что программирование—это перевод структурно-логической * схемы алгоритма и потока данных на язык машинных команд—получение программы.
Программу создает пользователь ЭВМ, выполняет программу (обрабатывает команды) — процессор.
Выполняемая программа называется вычислительным процессом, короче—процессом.
Предыдущая << 1 .. 14 15 16 17 18 19 < 20 > 21 22 23 24 25 26 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed