Similar presentations:
Подпрограммы
1.
ПодпрограммыПредставляют собой самостоятельные
фрагменты программы, оформленные особым
образом и снабженные именем. Упоминание
этого имени в тексте программы называется
вызовом подпрограммы.
2.
Существует два типа подпрограмм:Процедуры и Функции
3. Процедуры
Предназначена для выполнения определённойпоследовательности действий
4. Синтаксис описания процедуры
Procedure <имя_процедуры>(<формальные параметры>);begin
{тело процедуры - операторы}
end;
5. Пример процедуры
Type arr=array[1..5,1..5] of integer;
Procedure write_matr(x:arr);
Var i,j:integer;
Begin
For i:=1 to 5 do begin
For j:=1 to 5 do
write(x[i,j]:5);
Writeln;
End;
End
;
6. Функция
Предназначена для вычисления какоголибо параметра
7. Синтаксис описания функции
Function <имя_функции>(<форм.параметры>): <тип результата>;
Begin
{тело функции}
<имя_функции>:=<результат>
End;
8. Пример функции
Function fact(n:integer): longint;
Var f,i:longint;
Begin
F:=1;
For i:=1 to n do
F:=f*i;
Fact:=f
End;
9. Отличие функции от процедуры
В заголовке функции указывается тип результата.
Внутри тела функции ей хотя бы один раз должно
быть присвоено какое-нибудь значение.
Результатом исполнения функции всегда является
некоторое значение, поэтому обращение к функции
можно использовать в соответствующих выражениях
наряду с переменными и константами
10. Параметры подпрограмм
По области действия параметры бывают:
Глобальные — описаны в основной
программе и действуют внутри неё,
включая и все подпрограммы,
Локальные — описаны в подпрограмме и
действуют только внутри неё
11.
Связь основной программы с
подпрограммой осуществляется через
глобальные параметры, используя
1) непосредственно имена глобальных
параметров
2)через механизм формальных
параметров
12.
Формальные параметры13. Нужны для
Для связи основной программы с
подпрограммой
14. Показывают
С какими параметрами нужно
обращаться к подпрограмме —
количество, тип, последовательность
этих параметров
15. Определяют
Класс задач, решаемых по данному
алгоритму
16. Описываются
Во время описания подпрограммы
17.
Фактические параметры18. Указываются
В исполнительной части основной
программы в момент вызова
подпрограммы
19. Пример
Посчитать число сочетаний из 10
элементов по 3
20.
Program a1;
Var c:integer;
Function fact(n : integer) : longint;
Var f, i: longint;
Begin
F:=1;
For i:=1 to n do
F:=f*i;
Fact:=i
End;
21.
Begin
writeln(fact(10) div fact(3) div fact(7))
End.
22.
Способы передачиформальных параметров
23.
Разрешают или запрещаютизменение параметра внутри
подпрограммы
24. Способы передачи формальных параметров
По значению
Как переменную
Как константу
25. По значению
Procedure <имя>(<имя_пар1>:<тип>;<имя_пар2>,<имя_пар3>:<тип>);
26. Как переменную
Procedure <имя>(var<имя_пар1>:<тип>; var <имя_пар2>,<имя_пар3>:<тип>);
27. Как константу
Procedure <имя>(const<имя_пар1>:<тип>; const<имя_пар2>,<имя_пар3>:<тип>);
28. Примеры
Procedure summa (const z:arr; var x,y:integer);var i,j:integer;
begin
x:=0; y:=0;
for i:=1 to 5 do
for j:=1 to 5 do
if z[i,j]>0 then x:=x+z[i,j]
else y:=y+z[i,j]
end;
29.
Procedure mno (const z: arr; var x: arr);var i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
x[i.j]:=z[i,j]*5
end;
30.
Procedure umn ( var x: arr);var i,j:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
x[i.j]:=x[i,j]*5
end;