- •1. Основные элементы языка
- •1.1. Основные символы
- •1.2. Зарезервированные слова
- •1.3. Разграничители
- •2. Стандартные типы скаляров
- •2.1. Целочисленный тип /Integer/
- •2.2. Байтовый тип /Byte/
- •2.3. Вещественный тип /Real/
- •2.4. Булевский тип /Boolean/
- •2.5. Символьный тип /Char/
- •3. Сруктура программы
- •3.1. Заголовок программы
- •3.2. Раздел описания
- •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. Цикл с предусловием
- •Пример написания программы
- •Список литературы
- •Приложение 1 Основные стандартные процедуры и функции
- •Приложение 2 Структура построения программы в языке Pascal
- •Приложение 3 Символы схем алгоритмов по гост 19.002-80 и 19.003-80
- •Содержание
3.2.5. Раздел описания процедур и функций
В практике программирования часто возникает необходимость выполнения одной и той же последовательности операторов в различных частях программы. Наиболее простым способом реализации программы является запись последовательности операторов в тех участках программы, где это необходимо. Однако такой прием зачастую оказываетcя нерациональным. Целесообразно оформить эти операторы в виде подпрограммы - процедуры или подпрограммы - функции. Процедуры и функции позволяют записать повторяющиеся участки один раз, а в нужных местах программы приводить лишь обращение к ним. Использование процедур позволяет сократить объем, улучшить структуру программы и уменьшить вероятность наличия ошибок. Основные стандартные процедуры и функции приведены в приложении 1.
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.
Описание функции служит для определения той части программы, которая выполняет определенные вычисления и передает полученный результат. Функция выполняется сразу, как только имя функции встречается как часть предложения программы.