Процедуры пользователя

Процедура пользователя представляет собой именованную группу операторов, реализующую определенную часть обшей задачи и вызываемую при необходимости для выполнения по имени из любой позиции раздела операторов. Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова 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.

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

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

Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово 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.

ТЕМА 12. Символьные массивы. Строки

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

Символьный тип

Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов.

Стандартные функции для работы с символами:

Имя и параметры Типы параметров Тип результата Действие
ord(C) C – char целый возвращает код символа – ord('b') даст в результате 98
chr(X) X– integer char возвращает символ с кодом X – chr(98) даст в результате 'b'
pred(C) C – char char возвращает предыдущее значение – pred('b') даст в результате 'a'
succ(C) C – char char возвращает следующее значение – succ ('b') даст в результате 'c'
UpCase(C) C – char char возвращает символ C, преобразованный к верхнему регистру UpCase('b') даст в результате 'B'
LowCase(C) C – char char возвращает символ C, преобразованный к нижнему регистру LowCase ('B') даст в результате 'b'

Символьные массивы

Наиболее простым способом для работы с текстом является применение символьных переменных и линейных массивов, содержащих данные символьного типа (char).

VAR ins: array[1..80] of CHAR;

В этом случае необходимо использовать все правила, приёмы и методы обработки массивов. Но как показывает практика, такой подход не совсем удобен. Поэтому для работы с текстом в языке Pascal используется специальный тип данных, предназначенный для работы с фрагментами текста – строками (цепочками символов).

Наши рекомендации