Автоматические массивы
В процедуре может быть задан локальный массив, размеры которого могут меняться при разных вызовах процедуры.
Такие массивы, так же как и локальные строки переменной длины (разд. 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 содержит в скобках данные о длине символьного объекта. Если длина не задана,
то по умолчанию она принимается равной единице.
DO-Циклы. Операторы EXIT и CYCLE
Простейшая конструкция DO
[имя:] DO
БОК
END DO (имя]
задает бесконечный цикл. Поэтому такой цикл должен содержать по крайней мере
один оператор, например EXIT [имя], обеспечивающий выход из этого цикла.
Имя конструкции, если оно присутствует, должно появляться в операторах DO и END DO.
Рекомендуемая форма DO-цикла с параметром:
[имя:] DO dovar = start, stop [, inc]
БОК END DO [имя]
dovar - целая переменная, называемая переменной цикла или параметром цикла;
start, stop - целые скалярные выражения, задающие диапазон изменения dovar;
inc - целое скалярное выражение, задающее лаг изменения dovar. Значение incне может
быть равным нулю. Если параметр incотсутствует, то он принимается равным единице.
Рекомендуемая форма DO WHILE-цикла:
[имя] DO WHILE(ЛB)?
БОК
END DO [имя]
Если DO WHILE-цикл не содержит операторов прерывания цикла,
БОК выполняется до тех пор, пока истинно скалярное ЛВ.
DO-цикл, DO-цикл с параметром и DO WHILE-цикл могут быть
рваны операторами GOTO, EXIT и CYCLE, а также в результате
выполнения оператора RETURN, обеспечивающего возврат из подпрограммы.
Оператор EXIT [имя}
передает управление из DO-конструкции на первый следующий за kohi рукцией
выполняемый оператор. Если имя опущено, то EXIT обеспечив; выход из текущего цикла,
в противном случае EXIT обеспечивает выход цикла, имя которого присутствует в операторе EXIT.
Оператор CYCLE [имя]
передает управление на начало DO-конструкции. При этом оператор расположенные
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.