Программирование и комп-ры

Шпаргалки по Fortrany


Автоматические массивы
В процедуре может  быть  задан  локальный  массив,  размеры  которого  могут
меняться при разных вызовах процедуры.
Такие массивы, так же как и локальные строки переменной длины (разд.  10.4),
относятся к автоматическим объектам.

Рекурсивные процедуры

Фортран поддерживает рекурсивные  вызовы  внешних,  модульных  и  внутренних
процедур.
Процедура называется рекурсивной,  если  она  обращается  сама  к  себе  или
вызывает другую процедуру, которая, в свою очередь,
вызывает первую процедуру. В первом случае рекурсия  называется  прямой,  во
втором - косвенной.
Оператор объявления  рекурсивной  процедуры  должен  предваряться  префиксом
RECURSIVE. Внутри рекурсивной
 процедуры интерфейс к этой процедуре является явным (см. разд. 16.4.3).
Пример. Разработать подпрограмму subst, которая  в  данной  строке  заменяет
все вхождения подстроки sub1
 на подстроку sub2. Так, если дана строка 'abc1abc2abc3' и sub1 =  'abc',  a
sub2 = ' d', то результатом должна быть строка ' dl d2 d3'.
program stgo
 character(len = 20) :: st = 'abc1abc2abc3'
call subst(st, 'abc', d')
   ! subst содержит прямую
write(*, *)   st
         ! рекурсию d1 d2 d3
end
recursive subroutine subst(st, subl, sub2)
character(len = *) st, sub1, sub2
                 ! Длина каждой строки определяется

integer ip ! длиной соответствующего

ip = index(st, sub1)
                             ! фактического параметра

if(ip > 0) then
 st = st(:ip - 1) // sub2 // st(ip + len(subl):)
call subst(st, subl, sub2)  ! Рекурсивный вызов подпрограммы

endif
                                                  ! выполняется до тех пор,
пока
end   ! не выполнены все замены subl на sub2
Если функция содержит прямую  рекурсии,  то  есть  непосредственно  вызывает
сама себя, результату необходимо дать имя,
отличное от имени Функции. Это  выполняется  путем  добавления  в  заголовок
функции предложения RESULT.
В случае косвенной рекурсии имя результирующей  пе-Ременнрд  и  имя  функции
могут совпадать.
Символьные типы данных
Символьный тип данных позволяет задать объект, состоящий из
последовательности символов.
 Такую  последовательность мы будем строкой. Символьный тип данных могут
иметь объекты: переменные,
константы и функции. Символьный тип является встроенным типом данных для
него существует одна
 встроенная операция - операция конкатенации (обозначается двумя слешами
//), позволяющая выполнять
 объединение отдельных строк или подстрок символов. Объявление
символьных.данных выполняется
 оператором CHARACTER, например:
character :: ch = 'а'  ! Символьная переменная длиной в 1 символ
character(len = 20) st ! Символьная переменная из 20 символов
st = 'Example'   ! Присвоим значение символьной переменной
st == st // '_' // ch  ! Возвращает: Example_a
Оператор CHARACTER содержит в скобках данные о  длине  символьного  объекта.
Если длина не задана,
 то по умолчанию она принимается равной единице.


смотреть на рефераты похожие на "Шпаргалки по Fortrany "