Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по TURBO PASCAL.doc
Скачиваний:
18
Добавлен:
04.11.2018
Размер:
1.13 Mб
Скачать
    1. Процедуры

Процедура – эта независимая часть программы, которая имеет своё имя. По этому имени её можно вызывать из различных участков программы для выполнения записанных в ней действий. Структура процедуры повторяет структуру программы:

Формат записи процедуры:

procedure <Имя> ; { заголовок процедуры }

... ... { секция описаний процедуры }

begin

... { операторы }

end;

В программе процедуры записываются сразу после описания переменных:

program Р;

{pаздел описаний данных основной пpогpаммы Р}

procedure К;

{pаздел описаний пpоцедуpы К}

begin

{pаздел опеpатоpов пpоцедуpы К}

end;

begin

{pаздел опеpатоpов основной пpогpаммы Р}

end.

В секции описаний процедуры могут быть описаны локальные переменные6, локальные константы и другие элементы (в том числе и внутренние процедуры и функции).

Пример. Давайте составим программу с процедурой, которая будет приостанавливать работу программы.

program Procedure_Demo;

var a, b, s : integer;

procedure Pausa;

{так как в процедуре не используются переменные, секция описаний пропущена}

begin

writeln (’Нажмите ENTER для продолжения!’);

readln;

end;

begin

write (’Введите первое число: ’);

readln (a);

a := a*a;

writeln (’Квадрат этого числа равен: ’, a);

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

write (’Введите второе число: ’);

readln (b);

b := b*b;

writeln (’Квадрат этого числа равен: ’, b);

Pausa;

s := a + b;

writeln (’Сумма квадратов введенных чисел равна ’, s);

Pausa;

end;

Команды вызова процедуры из основной программы подчёркнуты. Когда компьютер при выполнении этой программы дойдет до строчки Pausa он начнет выполнять те действия, которые записаны в процедуре Pausa, то есть выведет на экран строчку и будет ждать нажатия клавиши Enter. После завершения работы процедуры компьютер продолжит выполнять программу с того места, откуда была вызвана подпрограмма.

    1. Аргументы процедуры

В процедуры можно передавать аргументы (параметры) – своего рода начальные данные для процедуры. Вот как изменится от этого заголовок процедуры:

Procedure Name (arg1 : type_arg1; arg2 : type_arg2; ... );

где argN – имя переменной-аргумента, type_argN – тип этой переменной (integer, real, string и т.д). Если среди аргументов есть несколько переменных одного типа, то их можно все перечислить через запятую, а потом указать тип:

Procedure Primer (a, b : integer; s : real);

Описанные в заголовке переменные используются в процедуре как обычные переменные. Например:

Program With_Procedure_Summa;

Var x, y : integer;

Procedure Summa (a, b : integer);

var s : integer; { использована локальная переменная }

begin

s := a + b;

writeln (’Сумма чисел ’, a, ’ и ’, b, ’ равна ’, s);

end;

begin

Summa (4, 7);

write (’Введите два числа: ’);

readln (x, y);

Summa (x, y)

end.

Как видите, для вызова такой процедуры надо после её имени указать в скобках значения, которые будут переданы в процедуру. Это могут быть как конкретные числа, так и переменные.

Во время выполнения этой программы на экране будет напечатано:

Сумма чисел 4 и 7 равна 11

После этого компьютер запросит ввод двух чисел, сложит их и выведет сумму на экран.