⚡ Інтерактивний Посібник: Функції в C++

Простий курс з функцій

C++

1 Що таке Функція?

Функція — це блок коду, який виконує певну задачу. Це як рецепт: ви даєте інгредієнти (параметри), функція робить щось, і повертає результат.

Кожна функція має:

  • 🔤 Тип повернення — який тип даних повертає функція
  • 📛 Ім'я — як ми її викликаємо
  • 📥 Параметри — вхідні дані (можуть бути відсутні)
  • ⚙️ Тіло — код всередині { }

📝 Проста функція:

int add(int a, int b) { return a + b; } // Виклик функції int result = add(5, 3); cout << result; // Виведе: 8

Як працює функція

Вхід
5, 3
→
add()
5 + 3
→
Вихід
8

🎯 Навіщо потрібні функції?

  • Щоб не писати один і той же код багато разів
  • Щоб код був зрозумілішим
  • Щоб легко знаходити помилки
  • Щоб розбивати велику програму на маленькі частини

2 Як Створити Функцію?

Щоб створити функцію, потрібно написати її оголошення (прототип) та визначення (тіло з кодом).

1️⃣ Простий приклад:

int multiply(int x, int y) { return x * y; } int result = multiply(4, 5); // result = 20

2️⃣ Функція з оголошенням:

// Оголошення (прототип) - можна писати на початку int subtract(int a, int b); int main() { int result = subtract(10, 3); cout << result; // 7 return 0; } // Визначення - пишемо після main() int subtract(int a, int b) { return a - b; }

3️⃣ Повна програма:

#include <iostream> using namespace std; // Оголошення функцій int calculateArea(int length, int width); void printHello(); int main() { printHello(); int area = calculateArea(5, 3); cout << "Площа: " << area << endl; return 0; } // Визначення функцій void printHello() { cout << "Привіт!" << endl; } int calculateArea(int length, int width) { return length * width; }

🎮 Спробуйте самі!

Обчисліть площу прямокутника:

Якщо функція написана ДО main(), оголошення не потрібне!

3 Типи Повернення

Функції можуть повертати різні типи даних або взагалі нічого не повертати.

Основні типи:

Тип Що повертає Приклад
int Ціле число return 42;
double Дробове число return 3.14;
bool true або false return true;
char Один символ return 'A';
string Текст (рядок) return "Hello";
void Нічого Без return

Приклади функцій:

// Повертає int int square(int n) { return n * n; } // Повертає bool bool isPositive(int n) { return n > 0; } // Повертає string string greet(string name) { return "Hello, " + name + "!"; } // void - нічого не повертає void printMessage(string text) { cout << text << endl; }

🎮 Тестування функцій

Якщо функція має тип (не void), вона ПОВИННА повертати значення через return!

📝 Міні-тест

Яка функція написана правильно?

int getName() { return "John"; }
int getAge() { return 25; }
void calculate() { return 42; }

4 Параметри Функцій

Параметри — це дані, які ми передаємо в функцію. Функція може мати 0, 1, 2 або більше параметрів.

Функція без параметрів:

void sayHello() { cout << "Hello!" << endl; } sayHello(); // Виклик без аргументів

Функція з одним параметром:

void printNumber(int n) { cout << "Число: " << n << endl; } printNumber(42); // Виведе: Число: 42

Функція з кількома параметрами:

int calculateSum(int a, int b, int c) { return a + b + c; } int total = calculateSum(10, 20, 30); // 60

Параметри за замовчуванням:

void greetUser(string name = "Guest", int age = 18) { cout << "Hello " << name; cout << ", age: " << age << endl; } greetUser(); // Hello Guest, age: 18 greetUser("Alice"); // Hello Alice, age: 18 greetUser("Bob", 25); // Hello Bob, age: 25

🎮 Калькулятор

Порядок параметрів важливий! add(5, 3) ≠ add(3, 5) для віднімання.

📝 Тест

Що виведе цей код?

int max(int a, int b) { if (a > b) return a; return b; } cout << max(15, 23);
15
23
38
Помилка

5 Рекурсія

Рекурсія — це коли функція викликає сама себе. Це може здаватися дивним, але це дуже потужний інструмент!

Класичний приклад: Факторіал

Факторіал числа n: n! = n × (n-1) × (n-2) × ... × 1

Приклад: 5! = 5 × 4 × 3 × 2 × 1 = 120

int factorial(int n) { // Базовий випадок - ОБОВ'ЯЗКОВО! if (n <= 1) { return 1; } // Рекурсивний виклик return n * factorial(n - 1); }

Як працює factorial(5):

factorial(5) = 5 × factorial(4)
factorial(4) = 4 × factorial(3)
factorial(3) = 3 × factorial(2)
factorial(2) = 2 × factorial(1)
factorial(1) = 1 ⬅️ СТОП!
factorial(2) = 2 × 1 = 2
factorial(3) = 3 × 2 = 6
factorial(4) = 4 × 6 = 24
factorial(5) = 5 × 24 = 120

Ще один приклад: Числа Фібоначчі

Послідовність: 0, 1, 1, 2, 3, 5, 8, 13, 21...

int fibonacci(int n) { // Базові випадки if (n == 0) return 0; if (n == 1) return 1; // Рекурсивний випадок return fibonacci(n - 1) + fibonacci(n - 2); }

🎮 Калькулятор рекурсії

Завжди потрібен базовий випадок! Без нього функція буде викликати себе нескінченно → програма зависне!

📝 Тест про рекурсію

Що найважливіше в рекурсивній функції?

Багато параметрів
Базовий випадок (умова зупинки)
Складні обчислення
Цикл for

6 Практичні Приклади

Тепер давайте подивимось на реальні приклади використання функцій!

1️⃣ Перевірка простого числа:

bool isPrime(int n) { if (n <= 1) return false; for (int i = 2; i * i <= n; i++) { if (n % i == 0) { return false; } } return true; }

2️⃣ Знайти максимум з трьох чисел:

int findMax(int a, int b, int c) { int max = a; if (b > max) max = b; if (c > max) max = c; return max; }

3️⃣ Обчислення середнього значення:

double average(int a, int b, int c) { double sum = a + b + c; return sum / 3.0; }

4️⃣ Конвертація температури:

// Цельсій → Фаренгейт double celsiusToFahrenheit(double celsius) { return (celsius * 9.0 / 5.0) + 32.0; } // Фаренгейт → Цельсій double fahrenheitToCelsius(double fahrenheit) { return (fahrenheit - 32.0) * 5.0 / 9.0; }

🎮 Аналізатор чисел

🎮 Конвертер температури

💡 Поради для написання функцій:

  • Давайте функціям зрозумілі імена (calculateSum, isEven)
  • Одна функція = одна задача
  • Додавайте коментарі для складних функцій
  • Тестуйте функції окремо

7 Фінальний Тест

Перевірте свої знання! Виберіть правильні відповіді на всі питання.

Питання 1: Що таке функція?

Блок коду, який виконує певну задачу
Тип змінної
Цикл
Умовний оператор

Питання 2: Що робить return?

Виводить текст на екран
Повертає значення з функції
Створює нову змінну
Запускає цикл

Питання 3: Що означає void?

Функція повертає ціле число
Функція нічого не повертає
Функція має помилку
Функція приймає будь-які параметри

Питання 4: Що виведе код?

int add(int a, int b) { return a + b; } cout << add(3, add(2, 5));
7
10
5
Помилка

Питання 5: Скільки параметрів може мати функція?

Тільки один
Максимум три
Будь-яку кількість (включно з нулем)
Мінімум два

Питання 6: Що таке рекурсія?

Цикл всередині функції
Коли функція викликає сама себе
Функція з багатьма параметрами
Функція без return

Питання 7: Чи правильно написана ця функція?

int multiply(int x, int y) { int result = x * y; }
Так, все правильно
Ні, немає return
Ні, забагато параметрів
Ні, неправильний тип

Питання 8: Що виведе factorial(4)?

int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); }
10
16
24
4

Питання 9: Яке ім'я функції найкраще?

Для функції, що перевіряє, чи число парне:

func1()
check()
isEven()
x()

Питання 10: Що поверне max(7, 3)?

int max(int a, int b) { if (a > b) return a; else return b; }
3
7
10
true

🎉 Вітаємо!

🏆

Ви успішно завершили курс з функцій у C++!

Що ви вивчили:

  • ✅ Що таке функції та навіщо вони потрібні
  • ✅ Як створювати та викликати функції
  • ✅ Типи повернення (int, double, bool, void)
  • ✅ Робота з параметрами
  • ✅ Рекурсивні функції
  • ✅ Практичні приклади

🚀 Що далі?

Практикуйтесь! Створюйте власні функції