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



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. Напишите программу к одной из задач дополнительного задания.

Вычислить  с использованием подпрограммы-функции вычисления тангенса.

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.


Дата добавления: 2018-04-04; просмотров: 1019; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!