Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Паскаль 2014 студентам.doc
Скачиваний:
151
Добавлен:
31.05.2015
Размер:
805.38 Кб
Скачать
    1. Процедуры пользователя

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

Формат:

Procedure <имя>[( формальные параметры )];

Пример.

Procedure Sort (A : integer; В : real);

Procedure Kvadr (Alpha, Beta : integer; var Gamma: boolean);

Procedure SumVed; {алгоритм, реализованный процедурой, не требует формальных параметров}

Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе:

Procedure <имя> [( формальные параметры )];

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

begin

<раздел операторов>

end;

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

Формат: <идентификатор процедуры> <(параметр, … т, параметр)>;

Пример.

Sort (А1,В1); {параметры – значения переменных}

Kvadr (14,25, True); {параметры – непосредственно значения}

Sunf/ed; {фактические параметры не указаны, так как в вызываемой процедуре нет формальных параметров}

Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными начальными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно-однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. Ниже приведена программа, реализующая с помощью процедуры без параметров очищение экрана, установку курсора в его центр и вывод слова 'СПРАВОЧНИК'.

Program DemoProcedure;

Procedure Ekran;

begin

ClrScr;

GoToXY(30,12);

Write(‘ СПРАВОЧНИК’)

end;

Begin

Ekran; {вызов процедуры Ekran}

End.

Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова Var.

    1. Функции пользователя

Хотя набор встроенных функций языка ПАСКАЛЬ достаточно широк, он вряд ли может удовлетворить требованиям каждого программиста. Поэтому пользователю предоставлена возможность самому реализовать нужные ему алгоритмы в виде функций и обращаться к ним из программ по мере необходимости.

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

Формат.

Function < имя> < (Формальные параметры)> :< тип результата >

Пример.

Function Prov (X, Y, T : integer) : real;

Function Zx : boolean;

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

Тело функции представляет собой локальный блок, по структуре аналогичный программе:

Function <имя> {( Формальные параметры )> : <тип результата>

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

begin

<раздел операторов>

end;

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

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

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

Program DewoFunction;

Var

Z : integer; К : real;

Function Step (F : real; Exp : integer) : real;

Var

С : integer; T: real;

begin

if Exp = 0 then Step := 1 else

begin

T := F;

for С : = 2 to Abs(Exp) do T : - T * F;

if Exp < О then Step := 1 / T

else Step : = T;

end

end;

Begin

wri teln (' Введите число:');

read (Z);

writeln (Step(Z,3)); {вывод Z в 3-й степени}

wri teln (Step(Z,4)); {вывод Z в 4-й степени}

К: =1.4;

wri teln (Step(K,4)) {вывод К в 4-й степени}

End.