- Какво е функция?
- Предназначение
- Упражнение
- Какво следва?
Какво е Функция?
Функцията представлява набор от действия, които заедно изпълняват дадена задача. Те могат да бъдат преизползвани многократно и обиквено с такава цел се създават. Съдържат в себе си входове, наричани параметри, както и изход, който е следствие на тези параметри. Разбира се, не е задължително една функция да съдържа входове или изход някакъв, но това ще го погледнем следмалко.
Предназначение
Предназначението е да се раздели една програма на подпрограми за по-лесно редактиране за в бъдеще, по-лесно разбиране и по-лесно откриване на проблеми. Нека видим как изглежда една функция и как можем да направим такава
Код за потвърждение: Избери целия код
<тип данни> <име на функцията ни> (<параметри/входове>) {
<тяло на функцията/набора от действия>
}
- <тип данни> - Типът на данни, който ще бъде изведен от функцията като изход.
- <име на функцията ни> - Име, което се определя по наше желание. Ще го използваме, когато ни трябва функцията. Трябва да можем да я използваме все пак и да знаем как се казва.
- <параметри/входове> - Входни данни, които функцията ни ще използва. Един параметър трябва да съдържа тип данни и име. Ако искаме да имаме повече от един параметър, отделяме ги един от друг чрез ,.
- <тяло на функцията/набора от действия> - Код, който изпълнява определена задача.
Нека дадем пример за една функция. Ще направим функцията събиране и ще видим как може да се изпълни, така че да няма входове и изход:
- Примерна функция за събиране с входове и изход:
Код за потвърждение: Избери целия код
#include <iostream> using namespace std; int add(int a, int b) { return a + b; } int main() { cout << add(3, 5); // 8 return 0; }
- Примерна функция за събиране без входове и изход:
Код за потвърждение: Избери целия код
#include <iostream> using namespace std; void add() { cout << (3 + 5); // 8 } int main() { add(); return 0; }
Сега, предполагам, идва въпросът:
Кое е по-добро за използване?
Честно казано, няма по-добро за използване. Какво ще означава това - едното се използва при едни ситуации, другото при други. Нека дам и пример:
Единият пример е този по-горе. Ако имаме някакво изчисление, най-често искаме да върнем резултата от него, а не просто да го изведем в самата функция.
Другият пример е, ако имаме функция, която да трябва да изпечатва само информация от някаква структурна единица, то тогава не е нужно да връщаме някакъв резултат. Ние реално вършим изпечатване, нищо повече, нека не си усложняваме живота, нека функциите правят това, което им е предназначено - нито повече, нито по-малко.
Другото, което може да дойде като въпрос е:
Защо функциите седят извън int main?
Разгледано така, int main() e функция сама по себе си. По принцип функциите седят извън int main(). Има и функции, които могат да бъдат вътре в други функции, но те са за по-напред. За любопитните, наричат се lambda функции.
Упражнение
Направете си калкулатор с функции. Да има основни операции(+, -, *, /).
Какво следва?
В следващият пост ще преминем към указатели.