Лабораторная работа № 6
Программирование задач с использованием функций и подпрограмм
.
Цель работы:
-
Изучить типы процедур и их структуры.
-
Научиться разрабатывать схемы для задач с использованием функций и подпрограмм.
-
Освоить приёмы перехода от схемы алгоритма к программе.
Порядок выполнения работы
-
Изучение типов процедур.
-
Изучение структуры функций и подпрограммы.
-
Изучение правил разработки схем алгоритмов для задач с использованием функций и подпрограмм.
-
Изучение приёмов перехода от схемы алгоритма к программе.
-
Разработка математического описания, схемы алгоритма и программы для задач, выданных преподавателем.
Краткие теоретические сведения.
-
Процедуры в Фортране
Программными компонентами в Фортране 90/95 являются главная программа и процедуры (функции и подпрограммы).
Главная программа должна быть единственной, иначе у операционной системы не будет возможности определить точку входа — место, с которого начинается исполнение всей программы.
Подпрограммы и функции имеют сходные и различающие их признаки, которые будут разобраны ниже, однако простое правило, позволяющее различать ситуации, в которых нужно использовать подпрограммы или функции, состоит в следующем:
Подпрограмма применяется тогда, когда нужно вычислить (говорят еще “возвратить”) значения нескольких переменных, возможно разных типов и разной структуры. Подпрограмма может даже ничего не возвращать, а выполнить некоторые действия. Например, открыть файл, вывести данные в файл или прочесть данные из файла, закрыть файл.
Функция – специальный вид подпрограммы, отличающаяся тем, что возвращает значение одной переменной (простой, как скаляр, или составной, как массив). В функции также можно выполнять действия, не связанные с вычислениями, но это не может быть результатом функции.
В точку вызова функции возвращается результат, присваиваемый имени функции. Поэтому функции можно использовать в выражениях.
-
Структура функции
Функция - именованный программный компонент, который оформляется следующим образом:
<тип функции> function <имя функции> (список формальных параметров)
операторы описания формальных параметров
операторы описания внутренних (локальных) переменных
… исполняемые операторы (тело функции) … |
end [ function [ <имя функции>]]
В теле функции хотя бы один раз в левой части оператора присваивания должно появиться имя функции. Это означает, что функция получила значение, которое она возвратит при вызове.
-
Структура подпрограммы
Подпрограмма – именованный программный компонент, который оформляется следующим образом:
subroutine < имя_подпрограммы> [(список формальных параметров)]
операторы описания формальных параметров
операторы описания локальных переменных
… исполняемые операторы (тело подпрограммы) … |
end [subroutine [< имя_подпрограммы>]]
-
Вызов функции и подпрограммы
Вызов функции не требует специального оператора. Достаточно указать имя функции со списком фактических параметров в выражении, записанном в правой части оператора присвоения или в списке вывода операторов print и write.
Вызов подпрограммы осуществляется специальным оператором call:
call <имя_подпрограммы> [(список фактических параметров)]