ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.07.2024
Просмотров: 98
Скачиваний: 0
- 38 -
щения одной или нескольких страниц. Обмен страницами меж ду МОЗУ и МБ при обращении к элементам динамического мас сива происходит автоматически. Следовательно, пользова тель работает с динамическими массивами точно так же, как и о обычными (расположенными в МОЗУ) массивами. Общая дли на динамических массивов (при полном использовании трех МБ) может быть равна 48768 ячеек.
2.6.2.1.3.5.2. Описание динамического массива имеет вид:
REAL' |
AC °t) <D > , ...,B(j» , p<D> ' |
|
...,С(О.С0ЬЗ N /<?/)< D > , |
где А,Б,С, - идентификаторы динамических массивов, °С|?|<Н Ь - натуральные десятичные числа;
' К см. 2,6.2.1.3.4.
1> - признак динамического массива. 2.6.2.1.3.5.3. Все .динамические массивы располагаются на МБ подряд, начиная с нулевого адреса нулевого МБ. Распо ложение и длина поля страниц динамических массивов в МОЗУ определяется компилятором автоматически„ Организация всех
действий о динамическими маосивами (создание административ ной системы я реализация обращений к элементам динамических
кассявов) осуществляется с помощью написанного Б.Б.Леш |
па |
кета из четырех стандартных программ (см. 8.5. |
)•• К |
.гнуу£?ср соктдет соответствующие команды в рабочей программе 2.В.2.1.3,0. Д^мерные массивы (матрицы) распадаться в память ло отрокам.
i«5»SeI.3.7. Замечания. ,
2«6*2«1»3,7.1. Описания типа, т.е. простых переменных и злайоивоз, могут встречаться в ФОРТРАН-программе в любом козвчестзо. Все эти описания должны размещаться перед аершм ззыначняемкм оператором соответствующей программной едааицн, 2 6.2.Г.Э.7.2, Проотые переменные и массивы могут быть
аврвчаолены в лобок описания типа в произвольном порядке.
Опнсакжя
-39 -
REAL A,B(10);
. REAL B(10),A;
эквиваленты меаэду собой и совокупности описаний
REAL А; REAL В ( 1 0 ) {
2.6.2.1.3.7.3. Простые переменные, для кбторых не указан их абсолютный адрес (см. 2.6.2.1.2.), располагаются в ну
левом кубе подрад.
Массивы, для которых не указан их абсолютный адрес,
располагаются в соответствующем кубе (см. 2.6.2.1.3.3.)
подряд.
2.6.2.1.4. Описание EQUIYALEHCK
Как известно, полями для различных массивов служат
различные области памяти. Однако, имеется возможность ис пользовать одно и то »е место в памяти для хранения раз
личных массивов. Это ыокет быть весьма полезным, например, при нехйатке места в памяти и в ряде других случаев. Для этого используется описание EQUIVALEHOB , которое имеет вид:
где каждое |
EQUIVALENCE ( Ж , ) . ( K - J |
К^,(ьюкет быть только одно) называется группой |
|
ВОШУАЬВНСВ |
И, в свою очередь, имеет вид: |
|
A(ot ) , в(/» ) , ос j f \ S"),.•. |
где А,В,С... - идентификаторы массивов; |
|
oCf j j j л |
I " - натуральные десятичные числа. |
Массивы А,В,С,... должны бить предварительно описаны в данной программной единице. Эти массивы не могут бить фор
мальными параметрами.
Это означает, что элементы массивов A(ot)».B(|5 )» С( у , X" ) занимают одну и ту же ячейку в памяти.
Поскольку элементы внутри массива располагаются в памяти подрад, соответственно будут расположены и другие
элементы массивов А, В и С.
-40 -
Например, описание
EQUIVALENCE (А(1), В<1), 0(5D )j
означает, что первые элементы массива В будут расположены на том же месте в памяти, что и первые элементы массива А; кроме того, элементы массива С, начиная с 51-го, будут рас положены в тех же ячейках, что и элементы массивов А и В, начиная с 1-го. Если длина массива Л - 100 элементов, мас сива В - 50 элементов и массива С - 100 элементов, то опи санное расположение массивов в памяти может быть проиллю стрировано следующей схемой:
|
АН |
1 |
|
B I — |
лсл |
С И |
V— |
1 |
4 |
sts-f |
-too |
Запрещается в одной и той ;.;е группе EQUIVALENCE использовать массивы, принадлежащие к разным видам памяти (МОЗУ-О, МОЗУ-I, динамическая память).
Запрещается прямо или косвенно (т.е. через одну и ту же или разные группы EQUIVALENCE ) делать эквивалентными элементы одного и того же массива. Так, например, неверны описания:
EQUIVALENCE |
(А(1), |
В(1), А(2)) ; |
И |
(А(1), |
В(1), С О ) ) , (С(1), А ( 1 ) ) ; |
EQUIVALENCE |
||
массиву из описания |
EQUIVALEBCE не может быть присвоен |
абсолютный (реальный) адрес (см. 2.6.2.1.3.2.). •
х Если в описании EQUIVALENCE используется двумерный массив переменной структуры (см. 2.6.2.1.3*4.), то индекс этого массива в данном описании может состоять только из одного числа или же, как исключение, из двух чисел, первое из которых должно быть единицей.
2.6.2.1.5. Описание EXTERNAL
Если идентификатор какой-либо подпрограммы А4 пеполь-
-41 -
зуется в качестве фактического параметра при обращении к
другой подпрограмме В, то идентификатор должен быть
описан в описании EXTERNAL . Соответствующий формальный параметр подпрограммы В будет формальным параметром-под
программой и также должен быть описан в описании BXTBRNAL. Описание EXTERNAL имеет вид:
EXTERNAL /S1/A1,В1,...,/S2/A2,B2,...;
где S1, 32,... - формальные параметры-подпрограммы, каж
дый из которых образует свою группу;
A1, В1, А2, В2, ... - подпрограммы - фактические па
раметры, соответствующие формальным параметрам из своих
« групп EXTERNAL.
Если в списке формальных параметров подпрограммы В
имеется формальный параметр-подпрограмма S1 , то при об ращении к подпрограмме В в списке фактических параметров
формальному паудметру 31 мотет соответствовать любая из принадлежащих к соответствующей группе EXTERNAL, подпро грамм, т.е. А1, В1, ...
Пусть например, подпрограмма SINT вычисляет интег
рал по методу Симпсона. Тогда соответствующие кусш
ФОРТРАН-программы для вычисления интеграла от функций FUN
и FF будут иметь вид:
EXTERNAL /F/FUH,FF;
SUBROUTINE 8INT( ... ,F);
END;
FUNCTION FUN(X);
END;
FUNCTI0N F F ( X ) ;
END;
-42 -
CALL SINT(...,FUN);
CALL SINT(...,PF)J
END
Описание EXTERNAL ДОЖГЛО быть глобальным описанием (см. 2.5.2), т.е. долига находиться до первого описания
какой-либо подпрограммы в ФОРТРЛН-програше.
Одна и та же подцтрограмма может входить в несколько
разных групп EXTERNAL.
Все подпрограммы из одной и той л;е грушш EXTERNAL
должны быть описаны одинаково, т.е. у них дол;:он совпадать
тип (подпрограмма типа SUBROUTINE или подпрограьп.а-функ- циял, а также количество, порядок и типы (спецификации) формальных параметров.
Подпрограммы из одной и той л;е группы EXTERNAL не должны обращаться друг к другу,т -е. если подпрограммы А1 и В1 принадлелат к одной и той ке группе EXTERNAL , то в подпрограмме А1 не долкно быть прямого или косвенного обращения к подпрограмме В1 и наоборот.
Нормальный параметр 31 из некоторой групш: EXTERNAL
может появиться в списке формальных параметров како::-лпбо
подпрограммы ке раньше, чем будет определена (описана)
(ом. 2.6.2.6.) хотя бы одна соответствующая ему подпрограм ма -фактический параметр из той ке группы EXTERNAL (т.е.
А1 ^В-** <,.»•)#
Фактический параметр из какой-либо группы EXTERNAL ке может быть идентификатором встроенной функции (см.
2.6.3,3.).
Поэтому, если, например, требуется вычислить инте
грал также и от функции SIN(X) , то следует писать (см.
также предыдущий пример): * е »
EXTERNAL /У/ ГОЛ, РР, 3IB1;
FUNCTION SIH1 (X)-, SIN1,= SIH(X);
RETURN,
END;
• • a
CALL SINT(..., SIH1) i
*О *
END
Если иэпшлъшй яарапет^чюдпрограи.'д ьотречаетсн в
описании EXTERNAL , то это л является его спецификацией
(см. также 2.6.2.СЛ.).
J3 <1'0РТРАП-програше может бить несколько описаний
EXTERNAL.
2.6.2.2. Оператор FORMAT,
Оператор F0RMAT используется при печати па АЦПУ и содержат информацию о редактировании и преобразовании пе чатаемых данных из внутреннего представления в машине во (внешнюю) строку символов на АЦПУ.
Печать на АЦПУ осуществляется с помощью оператора PRINT (см. 2.G.I.3.I.), в котором указывается метка соот ветствующего оператора F0BMAT . Поэтому оператор PflfRMAT домен всегда бить помечен. Ссылка на эту метку может встречаться только в (возможно, нескольких) операторах
PRINT.
Оператор FftTMAT имеет вид:
где f |
mm |
< f » 1 V 2 V " , , a t i A ) - » |
\ |
- организационная информация (см.ниже); |
|||
»± |
- разделители поля. Разделителем поля может быть |
запятая, косая черта - символ "/" - или несколько символов "/", например:
/////
- 44 -
t i - описатели поля, состоящие из одного (активного
или пассивного) элемента формата или группы таких элемен
тов. Группа элементов формата (повторяемая группа), в сми очередь, имеет вид:
У ( a n ». .а 1с^1с^ *
где Г - количество повторений, причем Г не пишется при
p a l . Внутри повторяемой группы не может быть друх'ой пов торяемой группы, т.е. каждое 1^<з=1,... Д ) - один эле
мент формата; Г - натуральное десятичное число; в { , - один или несколько символов "/".
f и/зли Я<, могут отсутствовать; m может бить, незалисмаго от этого, равным нулю (оператор FgfRMAT(0) олужхт ,цля
печати остатка - см. 2.6.2.2.4.). Каждый элемент формата,
атакже символ V" реализует печать какой-либо•информации,
-либо указанной в операторе PRIKT (в случае пассивных
элементов формата), либо явно указанной в операторе P0RMAT (в случае активных элементов формата).
2.6.2.2.1. Имеются следующие элементы формата:
аХ * < текст > '
OS $4 . \ |
. |
а£. . |
|
где в - количество повторений одного элемента формата (п
может отсутствовать - тогда п=1);
w - количество печатаемых символов (т.е. ширина поля выводимой строки символов);
d - количество цифр после десятичной точки;
порядковые номера цифр - информация печатается, на-
чилая с цифры с порядковым номером V4 и кончая цифрой с порядковым номером V, .