Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемИннокентий Войнич
1 Подпрограммы Процедуры и функции
2 Процедуры Формат описания процедуры: procedure (формальные параметры); begin end;
3 Процедуры Пример 1 Вычисление a n, где a и n –целые (n>0) procedure degree (a, n : integer; var step : integer); var i : integer; begin step:=1; for i:=1 to n do step:=step*a; end;
4 Процедуры Пример 2 Поменять местами переменные x и y procedure swap (var x, y:integer); var z:integer; begin z:=x; x:=y; y:=z end;
5 Функции Формат описания функции: function (формальные параметры): ; begin end;
6 Функции Пример Вычисление n! n!=1*2*…*n function fact (n:integer):integer; var i:integer; begin fact:=1; for i:=1 to n do fact:=fact*i; end;
7 Вызов подпрограмм Пример 1 Вычислить y = 8x 5 -3x 4 +2x 3 program pr1; var x, y, z: integer; procedure degree (a, n:integer; var step:integer); var i:integer; begin step:=1; for i:=1 to n do step:=step*a; end;
8 Вызов подпрограмм Пример 1 ( продолжение) begin readln (x); degree(x,5,z); y:=8*z; degree(x,4,z); y:=y-3*z; degree(x,3,z); y:=y+2*z; writeln(y); readln; end.
9 Вызов подпрограмм Пример 2 Вычислить 1+1/1!+1/2!+…+1/10! program pr2; var k: integer; res:real; function fact (n:integer):integer; var i:integer; begin fact:=1; for i:=1 to n do fact:=fact*i; end;
10 Вызов подпрограмм Пример 2 (продолжение) begin res:=1; for k:=1 to 10 do res:=res+1/fact(k); writeln (res:8:3); readln end.
11 Локализация имён Локальные переменные – это переменные, которые описаны внутри подпрограммы (они локализуются в ней, т.е. «невидимы» снаружи подпрограммы) Глобальные переменные – это переменные, которые объявлены в основной программе (они доступны в любой части программы, в том числе и в любой подпрограмме) Имена переменных, локализованных в подпрограмме, могут совпадать с ранее объявленными глобальными именами. В этом случае локальное имя «закрывает» глобальное и делает его недоступным в пределах данной подпрограммы.
12 Параметры Список формальных параметров необязателен и может отсутствовать. Формальные параметры могут быть двух видов: параметр-значение или параметр- переменная. Перед параметром-переменной в списке формальных параметров ставится служебное слово var, а перед параметром- значением не ставится.
13 Параметры Параметру-переменной должен соответствовать при вызове подпрограммы фактический параметр в виде переменной нужного типа. Параметру-значению при вызове может соответствовать произвольное выражение. Рассмотрим пример:
14 Параметры Пусть описана некая процедура М: var b,c,res: real; Procedure M (x: real; var r,y: real); begin y:=3*x +r end; M(5,1,res);b:=1; M(5,b,res); M(5,2*b-1,res);c:=2*b-1; M(5,c,res); M(6*b-7,c,res);
15 Параметры Если параметр определён как параметр- значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передаётся подпрограмме. Любые возможные изменения параметра- значения в подпрограмме никак не воспринимаются основной программой, так как в этом случае изменяется копия фактического параметра. Сами же фактические параметры, какими были до вызова процедуры, такими же и останутся после завершения её работы.
16 Параметры Если параметр определён как параметр- переменная, то при вызове подпрограммы передаётся адрес переменной в оперативной памяти (ссылка). Изменения параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе. Поэтому результаты работы процедуры должны передаваться через параметр- переменную.
17 Конец
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.