Програмування: Функції, процедури та підпрограми
Виклик функції є виразом того типу, який указано в її заголовку. І він, як усякий вираз, може бути частиною складнішого виразу. Наприклад, за необхідності ми могли б написати 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). Значення, обчислене при його виконанні, стає аргументом у "зовнішньому" виклику.
Задачі
1). Написати функцію обчислення за дійсним параметром x:
а) його знака (sign(x)=-1, 0 або 1 відповідно при x<0, x=0, x>0);
б)* ceil(x) – найменшого цілого, що не менше, ніж значення параметра (для від'ємних значень параметра можливі два варіанти означення).
2). Написати програму обчислення периметра й площі трикутника за координатами його вершин.
3). Написати тригонометричні функції з дійсним параметром, значення якого вимірюються в градусах.4). Написати функцію означення за довжинами трьох відрізків, чи утворюють вони трикутник З її використанням написати програму обчислення, скільки трикутників можна утворити з чотирьох заданих різних відрізків.
2.Процедури, підпрограми та параметри
Розглянемо задачу: довільні значення трьох змінних a, b, c переставити за необхідності так, щоб вони були упорядковані за неспаданням, тобто щоб мали місце нерівності a? b? c. Алгоритм розв'язання цієї задачі простий:
якщо a>b, то обміняти значення змінних a і b;
{гарантовано, що a? b}