Функции в языке Паскаль

Материал из ПИЭ.Wiki

Перейти к: навигация, поиск

При решении сложных объемных задач часто целесообразно разбивать их на более простые. Метод последовательной детализации позволяет составить алгоритм из действий, которые, не являясь простыми, сами представляют собой достаточно самостоятельные алгоритмы. В этом случае говорят о вспомогательных алгоритмах или подпрограммах. Использование подпрограмм позволяет сделать основную программу более наглядной, понятной, а в случае, когда одна и та же последовательность команд встречается в программе несколько раз, даже более короткой и эффективной.


В языке Паскаль существует два вида подпрограмм: процедуры и функции, определяемые программистом. Процедурой в Паскале называется именованная последовательность инструкций, реализующая некоторое действие. Функция отличается от процедуры тем, что она должна обязательно выработать значение определенного типа.


Процедуры и функции, используемые в программе, должны быть соответствующим образом описаны до первого их упоминания. Вызов процедуры или функции производится по их имени.


Подпрограммы в языке Паскаль могут иметь параметры (значения, передаваемые в процедуру или функцию в качестве аргументов). При описании указываются так называемые формальные параметры (имена, под которыми будут фигурировать передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы вместе с ее именем должны быть заданы все необходимые параметры в том порядке, в котором они находятся в описании. Значения, указываемые при вызове подпрограммы, называются фактическими параметрами.


Формат описания функции:

Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>?) : <Тип результата>;

<Раздел описаний>

Begin

<Тело функции>

End;

В теле функции обязательно должна быть хотя бы команда присвоения такого вида: <Имя функции>:=<Выражение>;


Указанное выражение должно приводить к значению того же типа, что и тип результата функции, описанный выше.


Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата функции.

При вызове функций, а также процедур, необходимо соблюдать следующие правила:

1)количество фактических параметров должно совпадать с количеством формальных;

2)соответствующие фактические и формальные параметры должны совпадать по порядку следования и по типу.

Заметим, что имена формальных и фактических параметров могут совпадать. Это не приводит к проблемам, так как соответствующие им переменные все равно будут различны из-за того, что хранятся в разных областях памяти. Кроме того, все формальные параметры являются временными переменными - они создаются в момент вызова подпрограммы и уничтожаются в момент выхода из нее.

Пример

Задача: "Найти максимальное из трех введенных чисел". Для решения воспользуемся описанием функции, принимающей значение максимального из двух чисел, которые передаются в нее в виде параметров.

   Program Fn;
   Var
   A,B,C :Real;
   Function Max(A,B:Real):Real; {Описываем функцию Max с формальными}
   Begin {параметрами A и B, которая принимает }
           If A>B Then Max:=A {значение максимального из них }
           Else Max:=B {Здесь A и B - локальные переменные }
       End;
       Begin
           Writeln('Введите три числа');
           Readln(A,B,C);
           Writeln('Максимальным из всех является ', Max(Max(A,B),C))
       End.

Обратите внимание на краткость тела основной программы и на прозрачность действий внутри функции. Формальные параметры A и B, используемые в подпрограмме, не имеют никакого отношения переменным A и B, описанным в основной программе.э


Литература

1)Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982. — С. 151.

2)Вирт Н. Алгоритмы + структуры данных = программы. — М.: «Мир», 1985. — С. 406.

3)Грогоно П. Программирование на языке Паскаль. — М.: «Мир», 1982. — С. 384.

4)Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128.

5)Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528.

6)Моргун А. Н. Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576.


--Sema19 92 16:22, 5 декабря 2009 (UTC)Сёмке Иван ПИЭ-92

Просмотры
Инструменты

Besucherzahler russian mail order brides
счетчик посещений
Rambler's Top100
Лингафонные кабинеты  Интерактивные доски  Интерактивная приставка Mimio Teach