Здавалка
Главная | Обратная связь

Функції користувача



Якщо результатом підпрограми є тільки одне значення, то має сенс оформити таку підпрограму не у вигляді процедури, а у вигляді функції. Функція користувача аналогічна процедурі, але є дві відмінності.

· Функція передає в програму результат своєї роботи - єдине значення, носієм якого є ім'я самої функції.

· Ім'я функції може входити у вираз як операнд. Функція повертає результат у точку свого виклику.

Функція, визначена користувачем, складається з заголовка і тіла функції. Заголовок містить зарезервоване слово functіon, ім'я функції, обмежений круглими дужками необов'язковий список формальних параметрів і, на відміну від процедури, тип значення, що повертається функцією:

functionІм’яФункції(ФормальніПараметри): ТипРезультату;

Наприклад:

function fibo(n: integer): integer;

function instep(a,b: real): real;

function normrandom : double;

 

Ім'я функції унікальне в межах програми. Тіло функції за своєю структурою аналогічне звичайній програмі:

function Ім’яФункції(ФормальніПараметри) : ТипРезультату;

{ Описова частина функції }

Begin

{ Інструкції виконуваної частини функції }

Ім’яФункції := Результат;

end;

У розділі операторів функції повинен знаходитися принаймні один оператор, що присвоює її імені значення, яке повертається як результат роботи функції. Якщо таких присвоювань декілька, то результатом виконання функції буде значення останнього оператора присвоєння. Якщо ж такий оператор відсутній чи не був виконаний, то значення, яке повертається функцією, не визначено.

На відміну від процедури, виклик функції не оформляється у вигляді окремого оператора. Звертання до функції здійснюється шляхом використання вказівника функції в якості операнда в деякому виразі. Вказівник функції являє собою ім'я функції з необов'язковим списком аргументів - фактичних параметрів. Вимоги до них такі ж, як і у випадку процедури.

 

Для допитливих !!!

Приклад.

У 1202 р. італійський математик Леонард Пізанський, відомий під ім'ям Фібоначчі, запропонував наступну задачу. Пара кроликів кожен місяць дає приплід - двох кроликів (самця і самку), від яких через два місяці уже виходить новий приплід. Скільки пар кроликів буде через рік, якщо на початку року ми мали одну пару тільки що народжених кроликів? Звертається увага на те, що числа, які відповідають кількості пар кроликів по місяцях, складають послідовність

1, 1, 2, 3, 5, 8, 13, 21.34 , ....

Кожний із членів цієї послідовності, починаючи з третього, дорівнює сумі двох попередніх членів. Ця послідовність називається рядом Фібоначчі, а її члени - числами Фібоначчі. Числа Фібоначчі мають багато цікавих властивостей. Ряд Фібоначчі визначають так:

F0 = F1 = 1; … Fn = Fn-1 + Fn-2.

Програма обчислення членів ряду Фібоначчі

function fibo(n: integer): integer;

{ функція обчислення чисел Фібоначчі }

var fn,fnl,fn2,k: integer;

begin

fnl:=1;

fn:=0;

for k:=l to n do

begin

fn2:=fnl;

fnl:=fn;

fn:= fnl+fn2;

end;

fibo:= fn; { імені функції присвоюється значення, яке повертається }

end;

{ основна програма }

var i, n: integer;

begin

write('Введіть число членів ряду Фібоначчі: '); readln(n);

for i:= 1 to n do writeln(fibo(i)); { викликв функції }

end.

 

Завдання 1.

Виконати завдання з використанням умови завдання 2 лабораторної роботи 28 із використанням процедури для оформлення результатів у вигляді таблички. Горизонтальні лінії якої виділити різним кольором (за допомогою звернення до процедури).

 

Завдання 2.

Скласти програму з використанням процедури для обчислення виразу:

1. S = 1 + 3 + 5 + 7 + … + (2n - 1);

2. S = 1 + 9 + 25 + … + (2n - 1)2;

3. S = 1 + 27 + 125 + … + (2n - 1)3;

 
 


4. S =

 
 


5. P =

 
 


  1. S =

 
 


  1. S =

 

  1. S = 2 + 4 + 6 + 8 + … + 2n ;

9. S = 2 + 4 + 16 + … + ( 2n )2;

  1. S = 8 + 64 + 216 + … + ( 2n )3

 
 


  1. S =

 
 


  1. S =

 

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.