рефераты
рефераты рефераты
 логин:   
 пароль:  Регистрация 

МЕНЮ
   Архитектура
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Детали машин
Дистанционное образование
Другое
Жилищное право
Журналистика
Компьютерные сети
Конституционное право зарубежныйх стран
Конституционное право России
Краткое содержание произведений
Криминалистика и криминология
Культурология
Литература языковедение
Маркетинг реклама и торговля
Математика
Медицина
Международные отношения и мировая экономика
Менеджмент и трудовые отношения
Музыка
Налоги
Начертательная геометрия
Оккультизм и уфология
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование и комп-ры
Психология - рефераты
Религия - рефераты
Социология - рефераты
Физика - рефераты
Философия - рефераты
Финансы деньги и налоги
Химия
Экология и охрана природы
Экономика и экономическая теория
Экономико-математическое моделирование
Этика и эстетика
Эргономика
Юриспруденция
Языковедение
Литература
Литература зарубежная
Литература русская
Юридпсихология
Историческая личность
Иностранные языки
Эргономика
Языковедение
Реклама
Цифровые устройства
История
Компьютерные науки
Управленческие науки
Психология педагогика
Промышленность производство
Краеведение и этнография
Религия и мифология
Сексология
Информатика программирование
Биология
Физкультура и спорт
Английский язык
Математика
Безопасность жизнедеятельности
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Делопроизводство
Кредитование



Главная > Программирование и комп-ры > Шпаргалки по Fortrany

Программирование и комп-ры : Шпаргалки по Fortrany

Шпаргалки по 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 содержит в скобках данные о длине символьного объекта.

Если длина не задана,

то по умолчанию она принимается равной единице.




Информационная Библиотека
для Вас!



 

 Поиск по порталу:
 

© ИНФОРМАЦИОННАЯ БИБЛИОТЕКА 2010 г.