русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Функції


Дата додавання: 2014-11-28; переглядів: 811.


Головним результатом дії функції є значення. На відміну він процедури, кожна функція обов’язково має фіксований тип результату.

Наприклад, якщо звернутись до стандартних функцій, то функція sin має дійсне значення, strtoint – ціле, floattostr – рядкове.

Розглянемо загальний вигляд функції:

 

function ім'я_функції(опис параметрів) : тип;

блок опису локальних констант, змінних, типів;

Begin

послідовність операторів;

ім’я_функції := остаточне_значення_функції;

end;

 

Зазначимо, що остаточне_значення_функції має бути того ж типу, що і сама функція.

 

Наприклад:

 

function extent (a:real; b:integer; var bb:boolean): real;

var

s:real;

begin

 

s:=exp(b*ln(a));

bb:=true;

extent:=s;

 

end;

 

Функція extent має 3 параметри, які передаються їй керуючою програмою, модулем чи іншою підпрограмою. Перші два параметри a та b (дійсний та цілий) передаються у функцію для використання, причому їх значення функцією не повертаються у батьківську підпрограму (тобто підпрограму, звідки викликається ця функція). Третій же параметр (булевського або логічного типу) також використовується у функції, але його значення повертається до батьківської підпрограми.

Тому допустимими є виклики цієї функції

 

var

i, j: integer;

ab : boolean;

s1, s2, s3 : real;

 

ab:=false;

s1:=extent (1.5, 3, ab);

s2:=4.5;

i:=3;

s1:=extend(s2, i, ab);

...

і недопустимими

 

...

s1:= extent (1.5, 3, false);

...

 

Недопустимість виклику виникає з того, що після виконання усіх операторів функції extent у батьківську підпрограму передається крім самого значення функції ще й значення параметру (у нашому випадку це третій параметр bb:boolean), яке не може передатись через те, що третім параметром виступає не змінна, а її значення.


<== попередня лекція | наступна лекція ==>
Підпрограма. | Локальні та глобальні змінні.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн