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

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

Боглаев Ю.П. Вычислительная математика и программирование — Высшая школа, 1990. — 546 c.
ISBN 5-06-00623-9
Скачать (прямая ссылка): vychmatiprog1990.djvu
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 168 >> Следующая

Функция-подпрограмма и подпрограмма называются процедурами фортрана.
Поясним общую структуру произвольной программы. Программы могут иметь простую и модульную структуру. Программа простой структуры представляет собой последовательность невыполняемых и выполняемых операторов, из которых хотя бы один должен быть выполняемый, последний оператор END. Имеем
51
52
SN
Оператор SN есть END. Программа модульной структуры состоит из нескольких самостоятельных единиц (подпрограмм, функций-подпрограмм), одна из которых — главная программа. Главная программа может обращаться к подпрограммам, эти подпрограммы—к другим и т. д. Выполнение программы начинается первым выполняемым оператором главной программы и заканчивается в главной программе.
Следует отметить, что предпочтительнее писать программы модульной структуры. Накапливая подпрограммы, пользователь
86 \
V,
в дальнейшем, как из кирпичиков, строит здание программы в узкой, специальной области, все меньше и меньше затрачивая усилий на программирование. Таким образом, мы приходим к организации личной библиотеки программ пользователя, а также к использованию уже готовых библиотек и пакетов программ.
Описание библиотеки фортран-программ по основным разделам вычислительной математики приведено в гл. 12.
3.2.11. Невыполняемые операторы. Как уже отмечалось, программа состоит из последовательности невыполняемых и выполняемых операторов.
Выполняемые операторы приводят к определенным действиям, невыполняемые служат для описания величин, массивов, формата ввода и вывода, распределения памяти. Выполняемые операторы — это операторы присваивания, управления, ввода, вывода.
Невыполняемые операторы:
1) Операторы описания типа (INTEGER, REAL, DOUBLE PRECISION, LOGICAL, COMPLEX)
2) EXTERNAL
3) DIMENSION
4) COMMON
5) EQUIVALENCE
6) Оператор начальных данных DATA
7) Оператор FORMAT
8) Оператор определения функции FUNCTION
9) Оператор определения подпрограммы SUBROUTINE
Порядок следования в программе невыполняемых операторов
с 1) по 6), указанный выше, желателен при программировании. Операторы с 1) по 6) должны быть расположены до первого выполняемого оператора.
Некоторые из невыполняемых операторов уже были определены. В этом пункте описываются четыре невыполняемых оператора:
COMMON, EQUIVALENCE, EXTERNAL, DATA Как уже отмечалось, переменные в самостоятельных программных единицах (главная программа, функция-подпрограмма, подпрограмма) имеют локальное определение.
Чтобы переменные различных программных единиц имели глобальное определение во всей программе, употребляется оператор COMMON (общий).
Иногда говорят, что через оператор COMMON передают значения переменных из одной программной единицы в другую. Один из способов передачи — через список входных и выходных параметров — рассмотрен в предыдущем пункте.
Оператор имеет следующую форму записи:
COMMON Р1,Р2,...,РК Здесь PI, Р2, ..., РК—наименование глобальных переменных. Этот оператор должен стоять в каждой подпрограмме и главной программе до первого выполняемого оператора. Размерность массивов можно указать в списке переменных.
87
Пример.
В вызывающей программе
COMMON A,B,C(10),Q(15,15)
END
В подпрограмме или функции-подпрограмме COMMON A,B,C(10),Q(15,15)
END
Если размерность массива описана в операторе описания типа или DIMENSION, то й операторе COMMON этого делать не нужно. Например, ^писание
REAL W(9),T(14)
COMMON W,T
и описание ‘ .
COMMON W(9),T(14)
эквивалентны.
Программа может содержать любое количество операторов COMMON. Но в этом случае каждому блоку глобальных переменных, кроме, возможно, одного, следует присвоить имя—идентификатор— и заключить между двумя наклонными чертами.
Пример.
Оператор
COMMON/STAR1/A,B,C(10)/STAR2/Q(5,5)
в одной программной единице и оператор
COMMON/STAR1/T,R,Z(10)/STAR2/D(5,5)
в другой определяют одни и те же переменные, так как транслятор отводит для них одни и те же ячейки памяти. Нужно следить только, чтобы тип, размерность и длина соответствующих переменных совпадали.
Один из возможных способов экономии памяти — это использование одного и того же места памяти для хранения разных величин, участвующих в выполнении данной программной единицы не одновременно. Этой цели служит оператор EQUIVALENCE. Формат оператора:
EQUIVALENCE (список),..., (список)
В скобках (список) идентификаторы разделены запятыми. Например,
EQUIVALENCE (A,B,C),(L,M)
Элементы А, В, С будут запоминаться в одном месте памяти (32 разряда), элементы L, М также займут только одну ячейку (16 разрядов).
88 \
V.
Чтобы установить эквивалентность массивов одинаковой размерности, нужно установить эквивалентность, например, их первых компонент:
REAL Х(10),У(10)
EQUIVALENCE (X(1),Y(1))
Если в функции-подпрограмме или подпрограмме в качестве фактического параметра используется идентификатор (имя) другой функции-подпрограммы или подпрограммы, то в вызывающей программе этот идентификатор должен быть описан с помощью оператора EXTERNAL (внешний). Вид оператора
EXTERNAL F1,F2,...,FN
где Fl, F2, ..., FN—наименование функций, подпрограмм, которые в данной программе могут передаваться в качестве фактических параметров другим функциям и подпрограммам.
Предыдущая << 1 .. 26 27 28 29 30 31 < 32 > 33 34 35 36 37 38 .. 168 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed