Здавалка
Главная | Обратная связь

Формальные параметры – значения



Слово Var не ставится.

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

Пример:

:

Procedure Xxx(A,B,C:Integer; Var D:Real);{A,B,C – формальные параметры – значения; D – формальный параметр – переменная; }

:

Xxx(M,N,X,Y);{M,N,X – могут быть выражениями; Y – только переменная}

Рассмотрим на примерах различия при использовании параметров-значений и параметров-переменных :

Пример1.

Program A1;

Var X:Integer;

Procedure Zamena(Y:Integer);

Begin

Y:=1;

End;

Begin

X:=0; Zamena(X);

Writeln(’X=’,X);

End.

Результат: X=0

 

Пример2.

Program Pr2;

Var X:Integer;

Procedure Zamena(Var Y:Integer);

Begin

Y:=1;

End;

Begin

X:=0; Zamena(X);

Writeln(’X=’,X);

End.

Результат: X=1

Задача:

Составить программу обращения к процедуре вычисления натуральной степени числа A (Z=Ak)

Program Proc2;

Var A,K,Z:Integer;

Procedure Nstep(X:Real;N:Integer;Var Y:Real);{Y=Xn}

Var I:Integer;

Begin

Y:=1;

For I:=1 to N do

Y:=Y*X;

End;

Begin

Readln(A,K);

Nstep(A,K,Z);

Writeln(’Z=’,Z);

End.

Переменная I, описанная в процедуре, называется локальной по отношению к процедуре. Локальная – местная, имеющая местное значение. Как только процедура выполнится, значение локальной переменной I забудется.

Задачи

1. В программе описана процедура Р с формальными параметрами X,Y и процедура Q с формальными параметрами S,T. Среди операторов программы встречаются операторы процедуры P(1,A) и Q(B,D+F). Какие из формальных параметров процедур P и Q заведомо являются параметрами-значениями?

2. Даны числа A, B, C, D. Найти значение выражения K=M*N+K, где M=Max(A,B); N=Max(B,C,D); K=Max(A,B,C,D);. Использовать процедуру нахождения максимального из 2-х чисел.

3. Даны натуральные числа A, B, C, D, X. Найти значение выражения M=(X*A)A+BC*(D*X)C. Использовать процедуру вычисления натуральной степени числа.

4. Составить программу обращения к процедуре вычисления целой степени числа А (Z=Ak) (К-целое число)

5. Даны натуральные числа K, M. Требуется вывести на экран рамку из звездочек высота которой – K строк, ширина – M знаковых позиций. Описать процедуру Zvezda(S,N), обращение к которой дает вывод данной рамки.

 

Описание функций

Функция – это подпрограмма, результатом выполнения которой является одно единственное значение. Это значение присваивается имени функции. Таким образом, функция не требует введения формальных параметров, играющих роль результата, так как эту роль играет имя самой функции.

Функция состоит из заголовка и блока:

Заголовок функции:

Function Xxx(P1:T1;P2:T2;…Pn:Tm):Q;

Xxx - имя функции (любой идентификатор);

P1,P2,…,Pn - формальные параметры;

T1,T2,…,Tm – типы формальных параметров;

Q – тип значений, которые способна принимать функция в результате ее выполнения;

Особенности раздела операторов функции:

Раздел операторов функции должен содержать оператор присваивания, в котором слева помещено имя функции.

Обращение к функции:

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

Z:=Xxx[(B1,B2,…,Bn)];

 

Задача.

Составить программу вычисления максимального из 4-х чисел, используя функцию вычисления максимального из 2-х чисел.

Program func1;

Var A,B,C,D,M1,M2,M3:Integer;

Function Max(X,Y:Integer):Integer;

Begin

If X>Y Then Max:=X Else Max:=Y;

End;

Begin

Readln(A,B,C,B);

m1:=Max(A,B);

m2:=Max(C,D);

m3:=Max(M1,M2);

Writeln(’Max=’,M3);

End.

Задачи:

Из параграфа 9.4 решить задачи №№ 2,3,4,5, используя обращение к функции.

Стандартные модули

Модули можно использовать для создания библиотек стандартных подпрограмм и данных. В Турбо Паскале в настоящее время имеется большое количество стандартных подпрограмм и данных, объединенных в несколько стандартных модулей:

Модуль System

Модуль автоматически подключается к любой программе

В модуль System входят следующие подпрограммы:

- арифметические функции; {рассмотрены в параграфе 3.3}

- функции для величин порядкового типа;

- функции преобразования типов;

- процедуры и функции работы со строками;

- процедуры и функции работы с файлами;

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.