
Функції з повертаними значеннями (програмування)

Перейдіть на інший план, щоб отримати більше контенту
Правда чи неправда? Ми даємо функції ім’я, щоб ми могли викликати її в програмі.
Ліна злилася разом дві маленькі програми роботи, в одну більшу... ... за допомогою функцій. Вона перетворила два розділи свого коду в дві функції ... ... і частина програми, яка використовує функції, її основна програма виглядає так: Перша інструкція - це виклик функції Start. Тоді дві різні людини введуть своє ім’я та свій вік. Програма розраховує різницю у віці, і робот повідомляє результат. Нарешті в головній програмі викликається функція «Кінець». Ліна тестує програму. Робот виконує інструкції в «Пуск»: Відкрийте очі, Покрутіть антену і увімкніть екран. Потім програма повертається з функції «Пуск» до основної програми. Він зчитує рядок, який надходить відразу після виклику функції Start. Робот просить Ліну ввести своє ім'я... ...і вік. Потім йде інструкція «Попросити користувача ввести своє ім'я» Але ми вже мали цю інструкцію! Ці п'ять рядків майже такі ж, як.. ..ці п'ять рядків, ..крім того, що спочатку, використовуються змінні "name-one" і "age-one", а потім змінні "ім'я-два" і "вік-два". Коли код повторюється, Ліна може використовувати функцію; вона це вже навчилася! Але код не зовсім однаковий в обох місцях. Назви змінних різні. Чи все одно працюватиме використання функції? Так, це спрацює, насправді. Заціни. Інструкції для функції вже існують: тут! Ліна копіює рядки і розміщує їх над основною програмою. Їй потрібно, щоб ця функція працювала для всіх імен і віків, не просто ім'я-один і вік-один, або ім'я-два і вік-два. Як вона це робить? Вона змінює змінні на "ім'я" та "вік" – дістає вона цифри. Числа будуть додані, коли функція відповість на виклик програми. І, нарешті, у функції, Ліна ставить інструкцію «Повернути ім’я та вік». Потім функція надсилає назад, повертає, значення, що міститься в змінних "name" і "age" до основної програми. Нова функція отримує назву «Hello» з двома дужками. Ліна заглядає в основну програму. Програма має порівнювати вік двох людей. Тому вона двічі викликає функцію Hello. Подобається це. А також тут. Перший раз, коли функція викликається, "name" і "age" повинні бути збережені в змінних "name-one" і "age-one". Тому вона пише це. «Ім’я-один і вік-1 клич привіт» Вона присвоює значення змінним зі знаком рівності. А ім’я та вік іншої особи зберігаються в «ім’я-два» та «вік-два». Ви бачили, що вона зробила? Була використана одна функція щоб зберегти значення в кількох різних змінних. Ліна знову тестує код. Програма запускається з виклику функції «Пуск». Робот прокидається. Програма повертається до рядка після виклику. Тепер викликається функція «Привіт». І робот запитує ім’я Ліни. «Ліна» зберігається у змінній «ім’я». - Привіт Ліна Робот запитує вік Ліни, і вона відповідає 16. «16» зберігається у змінній «вік». Значення, зазначені у змінних "ім'я" та "вік" повертаються до рядка, який викликав функцію. "Ліна" збережена в "ім'я-один" і "16" у "вік-один". Наступний рядок основної програми знову викликає «Привіт». Робот запитує ім’я Марії. «Марія» зберігається у змінній «ім’я». - Привіт Марія Робот запитує вік Марії і вона відповідає 15. «15» зберігається у змінній «вік». Значення, зазначені у змінних "ім'я" та "вік" повертаються до основної програми. І ЗАРАЗ "Марія" зберігається у змінній "ім'я-два" і "15" у "вік-два". Наступний рядок в основній програмі зберігає результат «вік-один» мінус «вік-два». А потім робот каже – Ліна старша за Марію на рік. Програма працює! Функція "Hello" може повертати різні значення які зберігаються в різних змінних використовуючи повертаються значення.