Описание процедуры:
Procedure Name (параметры – переменные: тип; VAR параметры- значения: тип);
VAR
Локальные переменные: тип;
Begin
Тело процедуры;
End;
Name – имя процедуры (любое лат. буквами); Все переменные, которые описывают в процедуре являются формальными (от слова формула), т.е. на их место можно подставлять любые значения и переменные из основной программы.
Параметры – переменные – это те значения, которые поступают из основной программы в процедуру в качестве исходных данных.
Параметры – значения – это те значения, которые передаются в основную программу в качестве результата работы процедуры.
Вызов процедуры: Name(список фактических параметров); - фактические параметры подставляются на место формальных параметров в процедуре, поэтому количество фактических и формальных параметров должно быть одинаковым.
Описание функции:
Function Name(параметры- переменные: тип): тип;
Var
Локальные переменные: тип;
Begin
Тело функции
End;
Все переменные используемые в программе делятся на глобальные и локальные. Глобальные переменные могут использоваться в основной программе и в процедурах. Описывают их в основной программе. Локальные переменные действуют внутри процедуры, там же и описываются.
|
|
Формальные переменные используются в процедуре и передают свои значения фактическим параметрам, при условии:
1. Количество формальных и фактических переменных должно быть одинаковым.
2. Должно быть соответствие типов формальных и фактических параметров.
3. Должен сохраняться порядок следования параметров.
Пример:
Вызов процедуры поиска максимального из двух чисел МАХIMUM(5.7.Мах): Где MAXIMUM - имя процедуры. 5.7. Мах - фактические параметры.
PROCEDURE MAXIMUM (A, B: Integer: VAR С: Integer):
Begin IF А>В THEN: C:=A Else C:=B:
End;
A.B- параметры значения поступают в процедуру. С- параметр-переменная является результатом процедуры.
При вызове процедуры ее переменные А получает значение 5. В получает значение 7. после выполнения процедуры переменная Мах получает значение С.
Задача.
Найти значение выражения
W= МАХ(А+В,С)- MIN(A,B.C)+ MAX(A-C.B-C)*MIN(A+B.C -А.С-В)
Значения А.В.С вводятся с клавиатуры.
Программа:
Program demo:
Var
W.A.B.C.RI.R2.R3.R4: Integer;
PROCEDURE DVA(X.Y: Integer; VarZ:Integer):
Begin
If X>Y Then Z:=X Else Z:=Y;
End;
PROCEDURE TRI (X,Y,Z: Integer; Var F: Integer):
Begin
If (X<Y)And(X<Z) Then F:= X;
If (Y<X)And(Y Z) Then F:=Y;
If (Z < X)And(Z< Y) Then F:=Z;
End;
Begin CLRSCR:
WriteLn(Введите три числа'); ReadLn(А.В.С): DVA(A.+B.C.R1): TRI(A.B.C.R2)
DVA(A-C,B-C,R3);
TRI(A+B, C+A,C+B,R4);
W:=RI-R2+R3*R4:
WriteLn(‘ Результат выражения W=’,W);
End.
Функция – это частный случай процедуры. Ее отличие состоит в том, что она не имеет парамегров результатов. а сама является результатом.
Заголовок функции: FUNCTION NAME (список формальных параметров): тип результата;
Пример:
Вызов функции МАХ, которая является МАХ значением из двух: МАХ(5.7):
FUNCTION МАХ (А.В: Integer): Integer:
Begin
If А -В Then MAX:=A Else Max:-B:
End; Результат выполнения функции можно использовать в вычислениях.