Использование процедур

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

Программный код процедуры, определяется в разделе описаний. Описание процедуры имеет такую же структуру, что и основная программа, т.е. состоит из заголовка, описательной части и выполняемой части. Заголовок процедуры записывается в соответствии со следующим синтаксисом:

Procedure <имя процедуры> [(<список формальных параметров>)];

Конструкция <имя процедуры> определяет уникальный идентификатор процедуры, используемый для ее вызова.

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

Элементы списка параметров разделяются запятыми. При определении параметров задается их тип. В том случае, если передается массив элементов, то используется тип массива, определенный в разделе “Type” основной программы.

Перед элементом списка может быть задан признак способа передачи параметра "Var". Признак "Var", показывает, что аргумент передается по ссылке, т.е. "By Reference". По умолчанию данные передаются по значению, т.е. "By Value". Все выходные параметры должны передаваться по ссылке.

Пример, задания заголовка процедуры

Procedure (A: Ta1; N:Integer; Var S: Real);

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

<имя процедуры> [(<список фактических параметров>)];

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

Program PrjSred;

{$APPTYPE CONSOLE}

Uses

SysUtils;

Type

TA1 = Array[1..40] Of Integer;

Var

A:TA1;

Sr:Real;

I,N:Integer;

Procedure SredAr(A:TA1; N:Integer; Var Sr:Real);

Var

I,S: Integer;

Begin

S:=0;

For I:= 1 To N Do

S:=S + A[I];

SR:= S/N;

End;

Begin

Writeln('Vvedite razmernost');

Readln(N);

Writeln ('Massiv');

For I:= 1 To N Do

Read(A[I]);

SredAr(A,N,Sr);

Writeln('Sr=',Sr:6:2);

Readln;

Readln;

End.

При обработке экономической информации, в качестве параметра, может использоваться массив записей.

Пример.

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

Во-первых, название месяца. Реквизит представлен в символьном виде.

Во-вторых, объем произведенной продукции. Реквизит представлен в числовом виде.

Программный код обеспечивает выдачу на экран названия месяцев в порядке убывания объемов произведенной продукции.

Программный код включает процедуру, обеспечивающую сортировку массива по убыванию реквизита "объем произведенной продукции".

Program PrjSortMetMB;

{$APPTYPE CONSOLE}

Uses

SysUtils;

Type

TProdM = Record

Month: String [10];

Prod: Real;

End;

TAProdm = Array[1..40] Of TProdm;

Var

ProdM:TAProdm;

I,N:Integer;

Procedure SortMetMB (Var Prodm:TAProdm; N:Integer);

Var I,J: Integer;

W:TProdM;

Begin

For I:= 1 To N-1 Do

For J:= I+1 To N Do

If Prodm[I].Prod < Prodm[J].Prod Then

Begin

W:=Prodm[I]; Prodm[I]:= Prodm[J];

Prodm[J]:=W;

End;

End;

Begin

Writeln('Vvedite chislo mesjacev');

Readln(N);

For I:= 1 To N Do

Begin

Writeln ('Mesjac');

Readln(Prodm[I].Month);

Writeln ('Prodykcija');

Readln(Prodm[I].Prod);

End;

SortMetMB(ProdM,N);

For I:= 1 To N Do

Writeln(Prodm[I].Month);

Readln;

End.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: