
- •Символы схем алгоритмов по гост 19.002-80 и 19.003-80
- •4.2. Составление исходной программы
- •4.2. Основы алгоритмизации
- •4.2.1. Базовые алгоритмические структуры
- •4.2.1.1. Следование
- •4.2.1.2. Ветвление
- •4.2.1.3. Цикл
- •1. Основные элементы языка turbo-pascal
- •1.1. Основные символы
- •1.2. Зарезервированные слова
- •1.3. Разграничители
- •2. Стандартные типы скаляров
- •2.1. Целочисленный тип /Integer/
- •2.2. Байтовый тип /Byte/
- •2.3. Вещественный тип /Real/
- •2.4. Булевский тип /Boolean/
- •Структура построения программы в языке Pascal приведена ниже.
- •3.2.1. Раздел описания меток
- •3.2.2. Раздел определения констант
- •3.2.3. Раздел определения типов
- •3.2.4. Раздел описания переменных
- •3.2.5. Раздел описания процедур и функций
- •Основные стандартные процедуры и функции
- •3.2.5.1. Подпрограмма - функция
- •3.2.5.2. Подпрограмма - процедура
- •3.3. Раздел операторов
- •3.3.1. Оператор присвоения
- •3.3.2. Ввод – вывод данных
- •Кафедра вычислительной техники и инженерной кибернетики
- •Кафедра вычислительной техники и
- •3.3.3. Оператор безусловного перехода /goto/
- •3.3.4. Условные операторы
- •3.3.4.1. Оператор if
- •3.3.4.2. Оператор выбора /Case/
- •3.3.4.3. Операторы повтора for, while и repeat
- •Оператор For
- •Оператор while. Цикл с предусловием
- •Список литературы
3.2.5.1. Подпрограмма - функция
Подпрограммы - функции описываются вслед за разделом описания глобальных переменных и располагаются перед группой операторов основной программы. Функция состоит из заголовка, описания локальных переменных и тела (группы операторов). Общий вид подпрограммы - функции таков:
Function имя (а1;...;аn): тип результата;
Раздел
описания локальных меток, констант и
переменных
B
Группа
операторов
End;,
где а1;...;an - список формальных параметров с указанием типа.
Функция передает в вызывающую программу единственное значение (результат) через свое имя. Тип передаваемого значения результата определяется в заголовке функции. В тексте подпрограммы - функции имени функции обязательно должно быть присвоено рассчитанное значение результата, т.е. имя функции должно хотя бы один раз присутствовать в левой части оператора присваивания.
Список формальных параметров и раздел описания локальных меток и переменных могут отсутствовать. В этом случае в тексте подпрограммы -функции используются глобальные параметры, описанные в основной программе. При наличии формальных параметров и локальных переменных их тип должен быть определен.
Пример А. Оформить в виде подпрограммы - функции алгоритм возведения в целочисленную степень у=хn.
Function rez1 (n:integer; x:real) : real;
var i:integer;
begin
rez1:=1;
for i:=1 to n do
rez1:=rez1*x;
end;
Пример Б. Оформить в виде подпрограммы - функции алгоритм возведения вещественного числа в вещественную степень y=ax.
Function rez2(x:real; a:real) : real;
begin
Rez2:=exp(x*ln(a));
end;
В примере Б подстепенное выражение не может принимать отрицательное значение или быть равным нулю. В примере А может быть и отрицательным.
Переменные n, x, i примера A определены только в теле подпрограммы -функции. Вне тела функции они не определены, т.е. не существуют. Аналогичными переменными являются параметры а, х в примере Б.
Обращение к подпрограмме-функции осуществляется по имени функции с указанием в скобках вместо формальных параметров фактических. Причем имена формальных и фактических параметров могут и не совпадать, но их последовательность, количество и тип должны обязательно соответствовать друг другу. Так, обращение к функции rez2 примера Б может быть таким:
у:=а*rez2(n,х);,
что соответствует решению задачи у=а*хn. Здесь переменная n обязательно должна быть описана как переменная вещественного типа.
В примере Б переменные х и а являются формальными параметрами - переменные, формально присутствующие в подпрограмме и определяющие тип и место подстановки фактических значений, передаваемых из вызывающей программы. Конкретные (фактические) значения передают фактические параметры при обращении в вызывающей программе. Так, при рассмотренном выше обращении к функции rez2 фактическими параметрами являются переменные n и x.
Описание функции служит для определения той части программы, которая выполняет определенные вычисления и передает полученный результат. Функция выполняется сразу, как только имя функции встречается как часть предложения программы.