Функція та її виклики
Виклик функції є виразом того типу, який указано в її заголовку. І він, як усякий вираз, може бути частиною складнішого виразу. Наприклад, за необхідності ми могли б написати d1:=sqr (dd (x1, y1, 1, 2)+1). Цей опис є означенням імені dd, тому поміщається серед інших означень програми. Позначення цієї функції, тобто виклики її з конкретними аргументами записуються в тілі програми: При обчисленні… Читати ще >
Функція та її виклики (реферат, курсова, диплом, контрольна)
Реферат на тему:
Функція та її виклики.
Розглянемо задачу: обчислити мінімальну з відстаней між точками площини A (x1; y1), B (x2; y2) і C (1;2). Алгоритм розв «язання цієї задачі очевидний:
1) обчислити відстані d1=AB, d2=AC, d3=BC;
2) обчислити m= min{d1, d2, d3}.
і для обчислення відстаней нам необхідно тричі написати «Паскалівський «варіант цієї формули з різними наборами координат: x1, y1, x2, y2, потім x1, y1, 1, 2, потім x2, y2, 1, 2. Ці вирази досить громіздкі й задають по суті ті самі обчислення, тільки з різними наборами значень. Все це можна записати інакше.
Мова Паскаль дозволяє описати повторювані обчислення один раз, дати цьому опису ім «я і далі не описувати самі обчислення, а тільки позначати їх цим ім «ям.
Отже, у мові Паскаль є описи обчислень і є їх позначення. Опис обчислень, як правило, є параметризованим, подібно до алгоритму обчислення коренів квадратного рівняння, де параметрами були коефіцієнти рівняння. Конкретні значення, з якими треба зробити обчислення, вказуються в позначенні обчислень разом із ім «ям цього опису й називаються аргументами. Опис обчислень деякого значення називається функцією, а їх позначення — викликом функції.
У даному випадку параметрами будуть чотири координати двох точок. Назвемо їх a1, b1, a2, b2. Опис обчислень задається у вигляді функції, якій ми дамо ім «я dd:
function dd (a1, b1, a2, b2: real):real;
begin.
dd:=sqrt (sqr (a1-a2)+sqr (b1-b2)).
end;
Цей опис є означенням імені dd, тому поміщається серед інших означень програми. Позначення цієї функції, тобто виклики її з конкретними аргументами записуються в тілі програми:
program minimdis (input, output);
var x1, y1, x2, y2, d1, d2, d3, m: real;
function dd (a1, b1, a2, b2: real):real;
begin.
dd:=sqrt (sqr (a1-a2)+sqr (b1-b2)).
end;
begin.
writeln («введіть координати двох точок: »);
readln (x1, y1, x2, y2);
d1:=dd (x1, y1, x2, y2);
d2:=dd (x1, y1, 1, 2);
d3:=dd (x2, y2, 1, 2);
if d1.
if d3.
writeln («найменша відстань: », m).
end.
t.
z.
e.
e.
x245Bx5C00 $x1A00дповідним параметрам a1, b1, a2, b2 як звичайним змінним і потім обчислюється значення dd. Воно і є значенням виразу dd (x1, y1, x2, y2), що присвоюється змінній d1.
Так само, тільки з іншими аргументами, виконуються другий і третій виклики функції, і інші значення присвоюються змінним d2 і d3.
Отже, ми бачимо, що мова Паскаль дозволяє не тільки користуватися викликами «стандартних «функцій, наприклад, odd або sin, але й створювати свої власні.
Функція має такий загальний вигляд:
function ім «я (означення параметрів): ім «я типу;
означення.
begin.
послідовність операторів.
end;
У першому рядку функції записано заголовок, де вказано її ім «я й означення параметрів. Наприкінці заголовка обов «язково записується ім «я типу значень, що обчислюються в результаті виконання викликів функції. Ці значення називаються такими, що повертаються.
Параметрів у функції може не бути, тоді й дужки відсутні, а виклик такої функції є просто її ім «ям.
Після заголовка структура функції повторює структуру програми за винятком лише точки в кінці. У функції можна визначати свої змінні, сталі та функції. Проте функція істотно відрізняється від програми тим, що:
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). Значення, обчислене при його виконанні, стає аргументом у «зовнішньому «виклику.