Функция — это выделенный блок программы, который принимает параметры, выполняет с ними какие-то действия, после чего возвращает результат. При этом функция может и не принимать параметров, а также может ничего не возвращать.
Функции удобны в таких ситуациях, когда некоторую часть программы хочется использовать несколько раз. Рассмотрим примеры функций.
Так может выглядеть функция, которая возвращает максимум из двух переменных:
int max2(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
Внутри функции мы можем использовать другие, уже написанные функции. Например, функцию для нахождения максимума из трёх чисел можно написать следующим образом:
int max3(int a, int b, int c) {
return max2(a, max2(b, c));
}
Напишем функцию для проверки числа на простоту. Эта функция будет возвращать true для простого числа и false для составного:
bool isPrime(int x) {
for (int i = 2; i * i <= x ; ++i) {
if (x % i == 0) {
return false;
}
}
return true;
}
Эту функцию можно переделать в функцию, которая находит все делители заданного числа и возвращает их в виде вектора (подумайте, как это можно сделать эффективнее, перебирая делители, квадрат которых не превосходит x):
vector<int> divisors(int x) {
vector<int> ans;
for (int i = 1; i <= x; ++i) {
if (x % i == 0) {
ans.push_back(i);
}
}
return ans;
}