Відмінності між версіями «Повернення значень функцією»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
(Створена сторінка: == Повернення значень з функції == По завершенні роботи функції часто буває корисно пове…)
 
 
(не показані 4 проміжні версії цього учасника)
Рядок 1: Рядок 1:
 
 
== Повернення значень з функції ==
 
== Повернення значень з функції ==
  
Рядок 5: Рядок 4:
 
По завершенні роботи функції часто буває корисно повернути деяке значення, для чого результат виклику функції зазвичай присвоюють деякої змінної. Функції можуть повертати значення будь-яких типів, у тому числі масиви та списки. Приклад наведено в лістингу 4.2, де функція calculate_cost () обчислює податок з заданої суми і повертає загальну суму разом з податком. Перш ніж переходити до розгляду лістингу, перегляньте короткий опис алгоритму на псевдокоді:<br>
 
По завершенні роботи функції часто буває корисно повернути деяке значення, для чого результат виклику функції зазвичай присвоюють деякої змінної. Функції можуть повертати значення будь-яких типів, у тому числі масиви та списки. Приклад наведено в лістингу 4.2, де функція calculate_cost () обчислює податок з заданої суми і повертає загальну суму разом з податком. Перш ніж переходити до розгляду лістингу, перегляньте короткий опис алгоритму на псевдокоді:<br>
 
<br>
 
<br>
    * Перед викликом функції задати значення змінних: $ price (ціна товару) і $ tax (податкова ставка).<br>
+
* Перед викликом функції задати значення змінних: $ price (ціна товару) і $ tax (податкова ставка).<br>
    * Оголосити функцію calculate_cost (). Коли Ви функція отримує два параметри: податкову ставку і ціну товару.<br>
+
* Оголосити функцію calculate_cost (). Коли Ви функція отримує два параметри: податкову ставку і ціну товару.<br>
    * Обчислити ціну з урахуванням податку і повернути її командою return.<br>
+
* Обчислити ціну з урахуванням податку і повернути її командою return.<br>
    * Викликати calculate_cost () і привласнити значення, повернене функцією, змінної $ total_cost.<br>
+
* Викликати calculate_cost () і привласнити значення, повернене функцією, змінної $ total_cost.<br>
    * Вивести відповідне повідомлення.<br><br>
+
* Вивести відповідне повідомлення.<br><br>
  
 
Лістинг 4.2. Створення функції для обчислення податку<br>
 
Лістинг 4.2. Створення функції для обчислення податку<br>
Рядок 33: Рядок 32:
 
/ / $ Total cost = 26.49<br><br>
 
/ / $ Total cost = 26.49<br><br>
  
Функції, не повертають значень, також називаються процедурами.
+
Функції, не повертають значень, також називаються процедурами.<br><br>
 +
 
 +
 
 +
Функція також може повертати '''відразу кілька значень''' за допомогою списку. Продовжуючи кулінарну тему, давайте напишемо функцію, яка б повертала три кращих року для зазначеного сорту вина. Функція приведена в лістингу 4.4, але спочатку прочитайте алгоритм на псевдокоді:<br><br>
 +
 
 +
* Оголосити функцію best_years (), що викликається з одним параметром. Параметр $ label визначає сорт вина, для якого користувач хотів би дізнатися три рекомендованих року.<br>
 +
* Оголосити два масиви, $ merlot і $ zinfandel. У кожному масиві зберігається три рекомендованих року для відповідного сорту вина.<br>
 +
* Написати команду return, яка б використовувала особливі можливості змінних. Вираз $ $ label спочатку інтерпретує змінну $ label, а потім інтерпретує отримане значення як ім'я другій змінної. У цьому прикладі масив merlot повертається у вигляді списку, і кожен повертається рік займає свою позицію в списку, для якого викликалася функція.<br>
 +
* Вивести повідомлення з інформацією про рекомендовані роках.<br><br>
 +
 
 +
Лістинг 4.4. Повернення функцією декількох величин<br>
 +
 
 +
/ / Сорт вина, для якого виводяться кращі роки<br>
 +
 
 +
$ Label = "merlot";<br>
 +
 
 +
/ / Функція використовує масиви і "змінну у змінній"<br>
 +
 
 +
/ / Для повернення кількох значень.<br>
 +
 
 +
function best_years ($ label) (<br>
 +
 
 +
$ Merlot = array ("1987", "1983", "1977");<br>
 +
 
 +
$ Zinfandel = array ("1992", "1990", "1989");<br>
 +
 
 +
return $ $ label;<br>
 +
 
 +
)<br><br>
 +
 
 +
/ / Функція list () використовується отримання повертаються значень.<br>
 +
 
 +
list ($ yr_one, $ yr_two. $ yr_three) = best_years ($ label);<br>
 +
 
 +
print "$ label had three particularly remarkable years: $ yr_one. $ yr_two, and $ yr_three.";<br><br>
 +
 
 +
Програма виводить наступний результат:<br><br>
 +
 
 +
merlot has three particularly remarkable years: 1987, 1983 and 1977.<br><br>

Поточна версія на 10:53, 29 квітня 2010

Повернення значень з функції

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

  • Перед викликом функції задати значення змінних: $ price (ціна товару) і $ tax (податкова ставка).
  • Оголосити функцію calculate_cost (). Коли Ви функція отримує два параметри: податкову ставку і ціну товару.
  • Обчислити ціну з урахуванням податку і повернути її командою return.
  • Викликати calculate_cost () і привласнити значення, повернене функцією, змінної $ total_cost.
  • Вивести відповідне повідомлення.

Лістинг 4.2. Створення функції для обчислення податку

$ Price = 24.99; $ tax = .06;

function calculate_cost ($ tax, $ price) (

$ Sales_tax = $ tax;

return $ price + ($ price * $ sales_tax);

)

/ / Зверніть увагу на повернення значення функцією calculate_cost (). $ Total_cost =
calculate_cost ($ tax. $ Price);

/ / Округлити ціну до двох десяткових цифр.

$ Total_cost = round ($ total_cost. 2);

print "Total cost: $". $ total_cost;

/ / $ Total cost = 26.49

Функції, не повертають значень, також називаються процедурами.


Функція також може повертати відразу кілька значень за допомогою списку. Продовжуючи кулінарну тему, давайте напишемо функцію, яка б повертала три кращих року для зазначеного сорту вина. Функція приведена в лістингу 4.4, але спочатку прочитайте алгоритм на псевдокоді:

  • Оголосити функцію best_years (), що викликається з одним параметром. Параметр $ label визначає сорт вина, для якого користувач хотів би дізнатися три рекомендованих року.
  • Оголосити два масиви, $ merlot і $ zinfandel. У кожному масиві зберігається три рекомендованих року для відповідного сорту вина.
  • Написати команду return, яка б використовувала особливі можливості змінних. Вираз $ $ label спочатку інтерпретує змінну $ label, а потім інтерпретує отримане значення як ім'я другій змінної. У цьому прикладі масив merlot повертається у вигляді списку, і кожен повертається рік займає свою позицію в списку, для якого викликалася функція.
  • Вивести повідомлення з інформацією про рекомендовані роках.

Лістинг 4.4. Повернення функцією декількох величин

/ / Сорт вина, для якого виводяться кращі роки

$ Label = "merlot";

/ / Функція використовує масиви і "змінну у змінній"

/ / Для повернення кількох значень.

function best_years ($ label) (

$ Merlot = array ("1987", "1983", "1977");

$ Zinfandel = array ("1992", "1990", "1989");

return $ $ label;

)

/ / Функція list () використовується отримання повертаються значень.

list ($ yr_one, $ yr_two. $ yr_three) = best_years ($ label);

print "$ label had three particularly remarkable years: $ yr_one. $ yr_two, and $ yr_three.";

Програма виводить наступний результат:

merlot has three particularly remarkable years: 1987, 1983 and 1977.