Похожие презентации:
2_процедуры и функции часть 4
1. Процедуры и функции часть 4
12. Параметры-процедуры и параметры-функции Ранее мы говорили о 4 видах формальных параметров: параметры-значения,
параметры-переменные, параметрыпроцедуры, параметры-функции). Первыедва вида параметров мы рассмотрели,
переходим к остальным двум.
2
3. Вводится новое понятие: процедурный тип. В литературе существует две точки зрения на процедурный тип: 1) существует два типа:
тип- процедура и тип –функция;
2) существует 1 процедурный тип, но в нем два
подвида: тип- процедура и тип – функция.
Процедурный тип описывается в разделе
описания в подразделе описания типов.
3
4. Для объявления процедурного типа нужно записать заголовок процедуры или функции с указанием списка формальных параметров (если
они есть) без ее имени.type
proc1=procedure;
proc2=procedure (var a,b:real);
func1=function: string;
func2=function (S: string): real;
4
5. type Func2=function (S:string): real; … procedure name (F1: Func2;B1: real); F1 - имя функции (формальный параметр) Func2 -
процедурный типПри описании процедур с параметрами процедурного
типа: не указывается список ее (процедурного типа)
формальных параметров.
При вызове
name (F , B);
5
6. Когда используется процедурный тип? Процедура или функция B используется как параметр процедуры A, если B должна вычисляться во
время выполнения A и если Bпредставляет собой различные процедуры или
функции в различных обращениях к A.
Пример: составить процедуру вывода значений
произвольной вещественной функции одного
аргумента. Процедура должна иметь следующие
формальные параметры: вещественную
функцию, нижнюю границу аргумента, верхнюю
границу аргумента, шаг по аргументу.
6
7. F – произвольная вещественная функция, low - нижняя граница аргумента, vp - верхняя граница аргумента, step - шаг по аргументу,
(vp1-low1)/step1 - число точек, в которыхвычисляется функция F,
sinus – подпрограмма-функция для вычисления
значений синуса, т.к. стандартные функции нельзя
передавать как фактический параметр
pr – подпрограмма-функция для вычисления
значений параболы
7
8.
Схема вызовов подпрограммГлавная
программа
Подпрограммапроцедура TAB
( sinus, low, vp, step)
Подпрограммапроцедура TAB
(pr, low, vp, step)
Подпрограммафункция
sinus (x)
Подпрограммафункция
pr (x)
8
9.
1 procedure TForm1.Button1Click( );2 type FUNC=function (x1:real): real;
2a var low,vp,step:real;
3 Function sinus (x1: real): real;
4 begin
5
sinus:=sin (x1)
6 end;
7 Function pr (x1: real): real;
8 begin
9
pr:=x1*x1
10 end;
9
10.
11 procedure TAB (F: FUNC; low1, vp1, step1: real);12 var
13 x: real;
14 i: integer;
15 s: string;
16 begin
17 x:= low1;
18 for i:=0 to trunс ((vp1-low1)/step1) do begin
19
s:=floattostr (x)+’ ‘+floattostr (F(x));
20
memo1.Lines.Add(s);
21
x:= x+step1
22 end;
23 end;
10
11.
24 begin25 low:=strtofloat(edit1.text);
26 vp:=strtofloat(edit2.text);
27 step:=strtofloat(edit3.text);
28 tab(sinus, low, vp, step);
29 tab(pr, low, vp, step);
30 end;
11
12. Строка 1 - заголовок главной программы Строки 2-23 раздел описания главной программы, состоит из 2 подразделов: 1) строка 2 –
подраздел описания типов, где описывается тип-функция2) строки 3-23 – подраздел описания процедур и функций, где
описывается:
строки 3-6 – подпрограмма-функция sinus
строки 7-10 – подпрограмма функция pr
строки 11-23 – подпрограмма- процедура tab
cтрока 11 – заголовок подпрограммы- процедуры tab
строки 12-15 - раздел описания локальных переменных подпрограммыпроцедуры tab
строки 16-23 – раздел исполняемых операторов подпрограммыпроцедуры tab
строка 19 – вызов подпрограммы F C УКАЗАНИЕМ ПАРАМЕТРА Х
строки 24-30 раздел исполняемых операторов главной программы
строки 28 и 29 – вызовы подпрограммы-процедуры tab с фактическими
параметрами-функциями sinus и pr
12
Программирование