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

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

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

Программы существовали задолго до появления ЭВМ, например музыкальная партитура—это программа для музыканта, кулинарный рецепт — программа для повара. Можно обнаружить много общих свойств между любыми программами, выполняемыми одним процессором.
1) Команды выполняются последовательно, если нет других указаний, начиная с первой до последней. Указания могут нарушить последовательность выполнения программы, например, требованием повторить часть музыкального произведения.
2) Процесс должен иметь результат — выведенные на терминал числа и символы, звуки музыки.
3) Часто перед командами программ располагается описание объектов, которые программа обрабатывает. В кулинарных рецептах дается список продуктов для приготовления блюда. В некоторых языках программирования необходимо описать данные перед командами.
54 \
V,
!
1
4) Часто программы строятся так, что автор не знает, какие | вычисления будет выполнять процессор,— это зависит от обрабатываемых данных, но всегда должен быть указан критерий
выбора пути вычислений.
5) В программах применяются указания на необходимость повторения команды или последовательности команд более одного раза. В этом случае указывается либо точное число повторений (например, 100 раз), либо критерий, который зависит от процесса (повторять, пока точность вычислений не достигнет заданной 8 = 10” 6).
Спецификой программ для ЭВМ является тот важнейший факт, что любая программа может быть построена с помощью следующих четырех базовых конструкций:
1. Последовательность команд.
2. Принятие решения (альтернатива).
3. Повторение (цикл).
4. Процедура.
Первые три конструкции имеют тот же смысл, что и в 2.2,— это базовые логические схемы, где вычислительный блок есть группа команд или команда (см. рис. 2.5—2.7).
Процедура—это группа команд, которая заменяется одной командой. Например, кулинарная книга содержит процедуру приготовления бульона, а затем ссылается на эту процедуру в каждом рецепте, требующем бульона.
Процедуры в программировании ЭВМ уменьшают размеры программы и придают ей иерархическую структуру «сверху вниз» — от сложного к простому.
В архитектуре алгоритма вычислительный блок можно рассматривать как процедуру.
2.4.1. Программирование структуры блоков алгоритма. Рассмотрим общие вопросы программирования алгоритма, спроектированного по принципам структурной алгоритмизации 2.2 на уровне готовых вычислительных блоков. Иными словами, будем считать, что весь алгоритм состоит из уже написанных процедур.
Тогда процесс программирования алгоритма состоит из программирования:
1) ввода и вывода данных;
2) обращения к процедурам;
3) программирования трех логических схем.
Для программирования применяются различные языки, которые облегчают трудоемкий процесс перевода алгоритма в машинные команды. Однако следует помнить, что алгоритм, записанный на языке программирования, отличном от языка машинных команд, не может быть выполнен на ЭВМ непосредственно. Он должен быть переведен с этого языка специальной программой ЭВМ (например, транслятором для языка фортран, паскаль и т. п.).
Профессиональные программисты, владеющие несколькими языками программирования, твердо уверены, что лучше всего нужно
55
владеть русским языком. Если пользователь может изложить на русском языке структуру алгоритма так, чтобы другой пользователь смог ее понять, то у него не будет проблем с программированием на любом языке.
В различных языках программирования существуют свои правила записи элементов программирования. Поэтому, чтобы написать программу на конкретном языке, необходимо в следующих ниже программах заменить элементы 1)—3), написанные на русском языке, их соответствующими эквивалентами.
Для языка фортран соответствующие эквиваленты описываются в гл. 3.
Напишем программу алгоритма, приведенного на рис. 2.19, где схему повтореьуга заменим одной процедурой вычисления скалярного произведёния (рис. 2.20).
Нумерацию точек входа, выхода сохраним (рис. 2.19).
1. Ввести .вещественные матрицу Аи, вектор Ъь К/, у’^50. Обратиться к процедуре решения системы линейных уравнений Ах = Ь, получить вектор хь 1 ^ ^ 50. Обратиться к процедуре вычисления ||* || = шах | ** |, 1 ^ 50, получить || * ||.
3. Если ||*|| >1, то выполнять 6, иначе:
Обратиться к процедуре вычисления вектора г = х + Ь, получить 2.
5. Вывести А, Ъ, *, ||*||, 2.
6. Ввести вещественный вектор уь 1^/^50. Обратиться к про-
50
цедуре вычисления #= ? Х(У1, получить #.
1-1
9. Вывести А, Ь, *, 11*11, #.
10. ...
В приведенной выше программе использованы команды программирования ввода, вывода (1., 5., 6., 9.), обращения к процедурам (строки, начинающиеся словом «обратиться»), программирование последовательной логической схемы между 1. и 3., программирование альтернативной логической схемы—команды между 3. и 10. Причем первой ветви (блоку 1) соответствуют команды между 3. и 5., второй ветви (блоку 2)—команды между 6. и 9.
Альтернативная схема (рис. 2.21) общего вида программируется следующим образом. Если условие выполняется, то вычисления:
Предыдущая << 1 .. 15 16 17 18 19 20 < 21 > 22 23 24 25 26 27 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed