Процедуры и функции
Эти два понятия можно объединить под одним именем – подпрограммы (п/п) (обособленная часть программы, которая выполняется неоднократно). Использование подпрограмм позволяет значительно уменьшить объем программы.
Любая п/п обладает той же структурой, что и программа, то есть имеет:
Заголовок
Раздел описания
Begin … end
Набор операторов, заключенных в операторные скобки
При вызове подпрограммы выполнение основной программы приостанавливается и управление передается в п/п.
После выполнения п/п управление возвращается основной программе.
Следовательно, любая п/п должна быть описана до того, как она будет вызвана в программе.
Процедуры и функции
Процедура
Особым образом оформленный фрагмент программы, имеющий собственное имя.
Упоминание этого имени в программе называется вызовом процедуры
Заголовок процедуры имеет вид:
Procedure имя;
Описывается процедура в тексте программы после раздела описания переменных
Функция
Если процедура – это законченная готовая программа, то функция отличается от нее тем, что результат ее работы возвращается в виде значения этой функции, то есть в конце тела функции ей присваивается то значение, для вычисления которой она предназначена.
Заголовок имеет вид:
Function имя(список переменных): тип результата;
На переменных остановимся подробно.
Локальные и глобальные переменные
Все переменные, которые использует п/п, могут быть либо глобальные(описанные в основной программе и доступные как программе, так и всем ее п/п), либо локальные (описанные внутри п/п и доступные только ей самой)
Обмен информацией между программой и п/п может осуществляться только с помощью глобальных переменных
Локальные переменные делятся на 2 категории:
1) параметры-значения (не меняются);
2) параметры-переменные(могут меняться), перед именем параметра-переменной записывается слово var
Пример 1. Вычислить S произвольного многоугольника
program mnogoug;
uses crt;
var a,b,c,n,i:integer;
s,s1,s2:real;
procedure wod;
begin
write('Введите стороны');
read(a,b,c);
end;
function ploshad(x,y,z:integer):real;
var q,r:real;
begin
q:=(x+y+z)/2;
r:=sqrt(q*(q-x)*(q-y)*(q-z));
ploshad:=r;
end;
begin
clrscr;
write('Введите число сторон многоугольника');
read(n);
for i:=1 to n-2 do begin
wod; {вызов процедуры}
s:=ploshad(a,b,c);
s1:=s1+s;
end;
writeln('Площадь=',s1:2:0);
readkey
end.
Пример 2. Составить программу вычисления выражения
program factorual;
uses crt;
var f1,f2,f3,n,m:integer;
r:real;
function fact(t:integer):integer;
var i,f:integer;
begin
f:=1;
for i:=1 to t do
f:=f*i;
fact:=f
end;
begin
clrscr;
write('Введите числа n,m');
read(n,m);
f1:=fact(n);
f2:=fact(m);
f3:=fact(n-m);
r:=f1/(f2*f3);
writeln('Факториал=',r:2:0);
readkey
end.
Факториал числа n (обозначается n!) — произведение всех натуральных чисел до n включительно:
По определению полагают 0! = 1. Факториал определён только для целых неотрицательных чисел.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.