Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
У першому рядку функції записано заголовок, де вказано її ім'я й означення параметрів. Наприкінці заголовка обов'язково записується ім'я типу значень, що обчислюються в результаті виконання викликів функції. Ці значення називаються такими, що повертаються.
Параметрів у функції може не бути, тоді й дужки відсутні, а виклик такої функції є просто її ім'ям.
Після заголовка структура функції повторює структуру програми за винятком лише точки в кінці. У функції можна визначати свої змінні, сталі та функції. Проте функція істотно відрізняється від програми тим, що:
1) функція записується серед означень програми;
2) ім'я самої програми ніде в програмі не вказується, тоді як серед операторів функції обов'язково повинні бути оператори присвоювання з ім'ям функції в лівій частині, причому при виконанні виклику функції хоча б один із них повинен бути виконаним.
Виклик функції є виразом того типу, який указано в її заголовку. І він, як усякий вираз, може бути частиною складнішого виразу. Наприклад, за необхідності ми могли б написати d1:=sqr(dd(x1, y1, 1, 2)+1).
Повернемося до прикладу. Нескладно написати функцію обчислення меншого з двох значень:
function min(x1, x2 : real):real;
begin
if x1
else min:=x2
end;
і помістити її слідом за функцією dd у програмі minimdis. З її використанням обчислення мінімального зі значень змінних d1, d2, d3 можна в тілі програми задати так:
m:=min(d1, d2); m:=min(m, d3)
або навіть так:
m:=min(min(d1, d2), d3)
При обчисленні останнього виразу спочатку виконується "внутрішній" виклик min(d1, d2). Значення, обчислене при його виконанні, стає аргументом у "зовнішньому" виклику.
Задачі
3.13.* Написати функцію even, тобто "парне", що задає обчислення ознаки парності цілого.
3.14. Написати функцію обчислення за дійсним параметром x:
а) його знака (sign(x)=-1, 0 або 1 відповідно при x<0, x=0, x>0);
б)* ceil(x) – найменшого цілого, що не менше, ніж значення параметра (для від'ємних значень параметра можливі два варіанти означення).