Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Функция - частный случай процедуры, когда у нее всего ОДИН параметр для передачи информации во вне. Его будем называть выходным параметром.
Имя выходного параметра это ИМЯ функции, поэтому необходимо указать его тип.
Описание функции:
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!в!
-------
(а+в)!
Дата публикования: 2014-11-03; Прочитано: 343 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!