Реферат: Шпаргалки по Fortrany

рассмотренный массив marks является статическим - его размер не может быть изменен в процессе вычислений,

поэтому мы вынуждены задать 6го размер с некоторым запасом (чтобы иметь возможность использовать массив

для любой студенческой группы). Это приводит к тому, что про­грамма, как правило, занимает больше памяти,

чем это требуется на самом деле. Подобного перерасхода памяти можно избежать, если применить ди­намический

массив и каждый раз выделять под него столько памяти, Сколько нужно. Работа с динамическим массивом происходит так:

выполняется объявление размещаемого массива. В отличие от статиче­ских размещаемые массивы объявляются с атрибутом ALLOCATABLE.

Кроме того, каждое измерение размещаемого массива задается в виде

двоеточия, например:
integer, allocatable, dimension(:) :: marks

определяется размер массива;

  • оператором ALLOCATE выделяется память под массив;

  • после выполнения вычислений выделенная память освобождается. Это

  • выполняется оператором DEALLOCATE;

  • после этого массиву вновь может быть выделена свежая область памяти.

При размещении массива параметр STAT= позволяет узнать, удалось ли разместить массив.

Этот параметр может быть опущен, но тогда любая не­удача при выделении памяти приведет к ошибке этапа исполнения и остановке

программы. Параметр указывается в операторе ALLOCATE последним. При удачном выделении памяти целочисленная статусная переменная

ierr возвращает нуль, в противном случае возвращается код ошибки размещения. Причиной ошибки может быть, например,

недостаток памяти или "попытка разместить ранее размещенный и не освобожденный оператором DEALLOCATE объект.

Аналогичную роль играет необязательный параметр STAT= и в операторе DEALLOCATE.

Сечение массива

В Фортране можно получить доступ не только к отдельному элементу массива, но и к некоторому подмножеству его элементов.

Такое подмноже­ство элементов массива называется сечением массива. Сечение массива мо­жет быть получено в результате применения

индексного триплета или век­торного индекса, которые при задании сечения подставляются вместо од­ного из индексов массива.

Индексный триплет имеет вид: [нижняя граница] : [верхняя граница] [.шаг]

Каждый из параметров триплета является целочисленным выражением. Шаг изменения индексов может быть и положительным и

отрицательным, но не может равняться нулю. Все параметры триплета являются необяза­тельными.

Индексный триплет задает последовательность индексов, в которой пер­вый элемент равен его нижней границе,

а каждый последующий больше (меньше) предыдущего на величину шага. В последовательности находятся все

задаваемые таким правилом значения индекса, лежащие между грани­цами триплета. Если же нижняя граница больше

К-во Просмотров: 593
Бесплатно скачать Реферат: Шпаргалки по Fortrany