. # Функции ![enter image description here](https://i.ibb.co/PCGYQ71/func.png) В контекста на програмирането, функция се нарича именувана група от инструкции, които изпълняват дадена функционалност. ### Синтаксис ```c++ <тип на връщане> <идентификатор> (параметър1, параметър ...) { //тяло } ``` Всеки параметър се състои от **тип** и **идентификатор**. Пример: ```c++ int max(int n, int k) { return n > k ? n : k; } ``` Оператор **return**: - Прекратява изпълнението на функцията - Замества извикването и с резултата (връща резултата) Операторът може да се използва и при функции, които не връщат нищо (void функции). Тогава return единствено прекратява функцията. ### Параметри по копие **Важно**: Функциите, написани по този начин, приемат своите параметри **по копие**. (Функции, които приемат параметри по референция (не по копие) ще учим по-натам). ```c++ void f(int n) { n++; } int main() { int n = 4; f(n); cout << n << endl; //4 } ``` ### Примери: **Задача 1:** Въвежда се неотрицателно число n. Да се отпечатат всички двойки прости числа, които са във вида 6k-1 и 6k+1. -решена без функции и решена с функции. **Задача 2:** Напишете функция, която приема неотрицателно число n и връща числото обърнато *Вход: 288, Изход: 882* **Задача 3:** Напишете функция, която приема неотрицателно число и връща дали числото е палиндром. *Вход: 2882 Изход: true* **Задача 4:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е суфикс на n. *Вход: 288, 88, Изход: true* **Задача 5:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е префикс на n. *Вход: 288, 28, Изход: true* **Задача 6:** Напишете функция, която приема неотрицателни числа n и k и връща дали k е инфикс в n. *Вход: 2831, 83, Изход: true* **Задача 7:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са сортирани (във възходящ или в низходящ ред). *Вход: 122239, Изход: true* **Задача 8:** Напишете функция, която приема неотрицателно число и връща дали цифрите му са еднакви. *Вход: 111111, Изход: true* **Задача 9:** Напишете функция, която приема неотрицателно числа n и k връща n^k *Вход: 3 4, Изход: 81* **Задача 10:** Напишете функция, която приема неотрицателно числа n и k връща log_k(n) (закръглено надолу) *Вход: 90 3 Изход: 4*

Задачи:

**Задача 1:** Напишете функция, която приема цяло число и връща модула му. *Вход: 4, Изход: 4* *Вход: -4, Изход: 4* *Вход: 5 4 3 0 Изход: 12* **Задача 2:** Напишете функция, която приема 4 цели числа - координати на 2 точки. Функцията да връща разстоянието между тези точки. *Вход: 1 1 4 3, Изход: 3,605* **Задача 3:** Напишете функция, която приема 6 целочислени координати (3 точки) и връща обиколката на триъгълника по тези точки. *Вход: 1 1 4 7 0 10, Изход: 20.764* **Задача 4:** Да се напише функция, която приема три естествени числа a и b и k отпечатва всички числа в интервата [a...b], които имат точно k различни прости делители. *Вход: 19 32 3, Изход: 20 30* *Вход: 19 32 1, Изход: 19 23 29 31* **Задача 5:** Да се напише функция, която приема естествено число n и отпечатва всички двойки , такива че a и b са прости и a + b = n. **Задача 6:** Да се напише функция, която приема две естествени числа a и b и отпечава всички числа k и интервала [a,b], такива че k = x^y (за някои ест. числа x и y) *Вход: 15 30, Изход: 16 25 27* , защото (4^2, 5^2, 3^3)