Функции
Подпрограмма-функция обрабатывает данные, переданные ей из главной программы, и затем возвращает полученный результат (в отличие от процедуры). Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, имя, список формальных параметров (заключенный в скобки) и тип возвращаемого функцией значения. Тело функции представляет собой локальный блок, по структуре сходный с программой.
Общий вид описания функции:
Function (): ;
Const …; u
… y блок описания
Var ….; u
begin
end;
В разделе операторов должен находиться, хотя бы один оператор, присваивающий имени функции значение. Обращение к функции осуществляется по имени с указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам и иметь тот же тип.
Пример 1. Найти значение следующего выражения: F(t) – F(c), где F(x)=Ox +2x2 +3x
Program m; Uses crt; Var t, c, r : real; Function F(x: real) : real; Begin F:= sqrt(x)+ 2*sqr(x) + 3*x; End; Begin Clrscr; Write(‘Введите числа’); Readln (t, c); r:= F(t) – F(c); write(‘результат =’, r:8:3); {8 символов на все число, 3 – на дробную часть} end.
Пример 2. Найти наибольшее из четырех чисел, используя подпрограмму нахождения наибольшего из двух чисел.
Program max; Uses crt; Var a, b, c, d, m, p, q:real; Function Bid(x, y: real) : real; Begin If x>y then bid:=x else bid:=y; End; Begin Clrscr; Write(‘Введите числа’); Readln (a, b, c, d); p:=bid(a, b); q:= bid(c, d); m:=bid(p, q); write(‘наибольший элемент’, m:8:3); end.