Лекция: Функции, определенные пользователем

Функция — частный случай процедуры, когда у нее всего ОДИН параметр для передачи информации во вне. Его будем называть выходным параметром.

Имя выходного параметра это ИМЯфункции, поэтому необходимо указать его тип.

Описание функции :

Function <ИМЯ> (...;...):<тип>;

begin

.........

<ИМЯ>:=< выражение>;

end;

 

 

 


Вызов функции осуществляется по имени и только в выражениях.

Задача. Вычислить выражение, определив вычисление факториала с помощью функции.

max(a,c)+max(b,c)

------------------

max(a,c)

Решение.

VAR a,b,c:real;

function max(a,b:real):real;

begin

if a>b then max:=a else max:=b;

end;

BEGIN

readln (a,b,c);

writeln((max(a,c)+max(b,c))/max(a,c));

END.

Предупреждение!!! Избегайте рекурсий, т.е. вызова в теле функции самой себя. Они могут «завесить» программу.

Например, нельзя записать в нашей функции max write (max);

Или для функции убирающей из строки пробелы нельзя так:

function delspace(in:string):string;

var i:integer;

delspace:='' ;

for i:=1 to length(in) do

if in[i] <> ' ' then delspace:=delspace+in[i];!!!

end;

Как этого избежать? Завести новую переменную.

 

В языке мы уже встречались со стандартными функциями:

ABS(X), SQR(X),SIN(X),RANDOM(X),…,

Функциями для построения графических изображений, функциями работы со строками,…

 

Задания к § 33

1.Треугольник задан координатами своих вершин. Определить сумму длин его сторон. Вычисление длины стороны оформить в виде функции.

2. Написать функцию для вычисления факториала и вычислить

a! в!

-------

(а+в)!

еще рефераты
Еще работы по информатике