Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Использование Процедур и функций



Одной из наиболее употребительных конструкций является функция – система операторов, используемая для вычисления переменной, именем которой представлено ее значение. Для вычисления функции используется некоторый набор переменных, передаваемых с сохранением типа из главной программы, из какой-либо процедуры или из другой вычисляемой функции. Эти переменные являются фактическими или глобальными параметрами, необходимыми для вычисления функции.

При самом же вычислении функции могут использоваться как переменные, передаваемые из блока более высокого уровня (при описании внутри процедуры определения функции они называются формальными параметрами), так и новые переменные, определяемые только внутри процесса вычисления самой функции. Они носят как бы вспомогательный, временный характер и называются локальными. Фактическое существование их прекращается с прекращением вычислительного процесса. Рассмотрим один из вариантов создания и использования функций.

Program AnFun1; {Надо выдать на печать значения функции y(x) на отрезке [a;b] с шагом изменения аргумента 0.1*(b-a), если эта функция определяется по одной из формул y = Exp(x) / x, если x>0 и формулой y = Arctan(x), если x <= 0. }

Function funy (c,d,x: Real): Real; { Описание функции, начало }

Begin

If x> 0 Then funy:= Exp(x)/x Else funy:= Arctan(x)

End; { Описание функции, конец }

Var

a,b,x: Real; { Блок описания данных в основной программе }

i,n: Integer;

Begin { Начало основной программы }

Write (’Введите границы участка ’); ReadLn (a,b); x:=a;

For i:=1 to 100 Do

x:=x+(b-a)/10;

If x<=b Then

Begin

{В следующем операторе выполняется обращение к вычислению функции}

WriteLn (’x= ’,x:10:2,’ y= ’,funy(a,b,x):10:2);

End;

End.

В этом примере имена переменных, с которыми вычисляется функция (кроме переменной x), не совпадают с именами тех же по сути переменных, которые используются в основной программе. В принципе, это не имеет особой целесообразности и пользователь волен поступать по своему усмотрению.

Процедура выполняет целый ряд запланированных действий и связывается с основной программой специальными передаваемыми параметрами, которые в основной программе являются фактическими, а в описании процедуры – формальными, тип и порядок следования которых должны быть одинаковыми в верхней и нижней конструкции. Рассмотрим пример программы, в которой используется процедура:

Program Funpro; {Вычисление площади треугольника по координатам вершин}

Function Ras (a1,b1,a2,b2: Real): Real; {Функция реализует вычисление длины отрезка по координатам его начальной и конечной точек}

Begin

Ras:=Sqrt(Sqr(a1-a2)+Sqr(b1-b2));

End;

Procedure Plo (v1,w1,v2,w2,v3,w3: Real; Var s: Real);

{Процедура вычисляет площадь треугольника по формуле Герона. Следует обратить внимание на описание переменных в процедуре. Передаваемая переменная s описывается отдельно.}

Var

s1,s2,s3,p: Real;

Begin

s1:=ras(v1,w1,v2,w2);

s2:=ras(v1,w1,v3,w3);

s3:=ras(v2,w2,v3,w3);

p:=(s1+s2+s3)/2;

s:=Sqrt(p*(p-s1)*(p-s2)*(p-s3));

WriteLn (’s = ’,s:10:3);

End;

{Начало основной программы}

Var

x1,y1,x2,y2,x3,y3,s: Real;

Begin

Write (’Координаты 1-й точки ’); ReadLn (x1,y1);

Write (’Координаты 2-й точки ’); ReadLn (x2,y2);

Write (’Координаты 3-й точки ’); ReadLn (x3,y3);

Plo (x1,y1,x2,y2,x3,y3,s);

WriteLn (’Площадь треугольника = ’,s:10:3); ReadLn;

End.

Одна и та же процедура может использоваться в разных программах. Для этого не обязательно включать её текст в основную программу, существуют и другие механизмы её подключения.

При формировании переменных, с которыми будет работать процедура, следует выполнять определённые правила, а именно:

а) все переменные, общие для процедуры и более высокой структуры, описываются в заголовке процедуры, при этом:

- переменные, которые не изменяются в процедуре и не требуют возврата в более высокую структуру, описываются только своим типом, совпадающим с типом в более высокой структуре;

- переменные, которые в процедуре изменяются и передаются в более высокую структуру в изменённом виде, описываются после заголовка Var;

б) локальные переменные описываются после заголовка программы по общим стандартным правилам, изложенным ранее.

Например:

Procedure Forat(af,ret: Real; j,tu,: Integer; Var ss: Real);

Var i1,j1: Byte;

В этой процедуре переменными, общими с основной программой, являются переменные af, ret, j, tu, ss, однако лишь последняя после выполнения процедуры поступит в основную программу в изменённом виде.

Это общее правило относится не только к переменным, но и к массивам, множествам, любым другим структурам.

Порядок выполнения работы:

2) Ознакомитесь с теоретической частью. Изучите возможности:

o задания функций и процедур;

o передачи данных.

2) Разработайте алгоритм решения задачи в соответствии с заданием и составьте программу.

6) Запустите программу Turbo Pascal;





Дата публикования: 2015-09-18; Прочитано: 251 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.015 с)...