Лабораторная работа № 11. Программирование процедур и функций

1. Что такое подпрограмма? Перечислите виды подпрограмм.

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

1. Подпрограмма-функция – это подпрограмма для вычисления функции, которая возвращает какое-либо значение.

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

2. Какие элементы входят в описание подпрограммы?

Как правило, описание подпрограммы включает заголовок, разделы описаний и раздел операторов, начинающийся словом begin, а заканчивающийся словом end и точкой с запятой (;).

3. Что такое формальные и фактические параметры? Чем они отличаются?

Формальные параметры – переменные, которые объявляются в заголовке подпрограммы.

Фактические параметры – переменные или значения, которые подставляются вместо формальных параметров в момент конкретного вызова подпрограммы.

4. Что такое параметры-значения и параметры-переменные? Чем они отличаются?

Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова.

Параметры-переменные – параметры со словом var, значения которых могут использоваться после выполнения подпрограммы.

5. Что такое локальные и глобальные параметры? Чем они отличаются?

Локальные переменные – переменные, используемые только внутри подпрограммы.

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

6. Какой вид имеет заголовок описания функции? Что это означает?

Заголовок описания функции имеет вид:

function Func ( FormPar1 : T1 , … ) : T ;

Это означает, что задаётся подпрограмма-функция с именем Func, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также вычисляющая значение типа T.

7. Какой вид имеет вызов функции? Что это означает?

Вызов функции из основной программы или другой подпрограммы имеет вид:

Func ( FaktPar1 , … )

Это означает, что вычисляется значение функции Func, зависящей от фактических параметров FaktPar1 и т.д., причём вызов функции может осуществляться в составе выражения.

8. Какой вид имеет заголовок описания процедуры? Что это означает?

Заголовок описания процедуры имеет вид:

procedure Proc ( FormPar1 : T1 , … ) ;

Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также выполняющая какие-либо действия.

9. Какой вид имеет вызов процедуры? Что это означает?

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

Proc ( FaktPar1 , … );

Это означает, что выполняются действия в теле процедуры Proc, зависящей от фактических параметров FaktPar1 и т.д., причём вызов процедуры не может осуществляться в составе выражения.

10. Напишите, что означает каждая строка в вышеприведённых программах.

Program Lab6a; Var A:array[0..100] of real; описание массива B,C,x:real; описание переменных i,n:integer; Function Step(a,b:real):real; заголовок функции begin Step:=exp(b*ln(a)); функция end; Begin writeln('Введи n,x'); read(n,x); ввод размернгости массива и переменной Х writeln('Введи массив A'); for i:=0 to n do read(A[i]); ввод массива B:=Step(2.1,5)+Step(7,0.3); вычисление В при помощи функции Step C:=0; for i:=0 to n do C:=C+A[i]*Step(x,i); writeln('B=',B:10:3,' C=',C:10:3); End.  
 
 
 
Program Lab6b; Const m=3; n=4; описание констант Type TT=array [1..m,1..n] of real; описание массива Var A:TT; i,j:integer; s,p:real; Procedure SumPro(B:TT; m,n:integer; var s,p:real); заголовок процедуры var i,j:integer; begin процедура поиска суммы и произведения отрицательных элементов s:=0; p:=1; for i:=1 to m do for j:=1 to n do if B[i,j]<0 then begin s:=s+B[i,j]; p:=p*B[i,j]; end; end; Begin writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); ввод массива SumPro(A,3,4,s,p);вызов процедуры writeln(s,p); вывод результата End.  
 
 
 

11. Напишите программу к одной из задач дополнительного задания.

Вычислить Лабораторная работа № 11. Программирование процедур и функций - student2.ru с использованием подпрограммы-функции вычисления тангенса.

Program Lab6a;

Var

X,y,z:real;

Function tg(a:real):real;

begin

tg:=sin(a)/cos(a);

end;

Begin

writeln('Введи X,Y'); read(x,y);

z:=tg(x)+tg(y);

writeln('z=',z:10:3);

End.


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