Функция void и oператори за присвояване
В практиката често се налага един и същи алгоритъм за определена обработка на данни да се използва в различни части на програмата. В езиците за програмиране се използват такива структури, позволяващи многократно използване. Този подход се оказва удачен както за малки, така и за големи по обем програми. Подобни структури се наричат функции, по аналогия с математиката – предават се определен брой параметри и се получава даден тип стойност. Функция от типа void има следната структура: void име на функция (предавани параметри) {тяло на функцията - съставен оператор}. Възможно е, но не е задължително последният ред функция от вида void да съдържа оператор return.
Името на функцията, както и променливата, трябва да се подчинява на определени правила: да съдържа букви от латинската азбука и/или цифри, първият знак да е буква, да не съдържа препинателни знаци и интервали. Във всяка реализация на C++ има готови (вградени в езика, стандартни) функции, чиито имена са фиксирани и представляват служебни думи в езика. Предоставена е и възможност потребителят сам да създава свои функции и/или библиотеки от функции.Няма програма, която не ползва поне една служебна функция. Дори и най-често срещания пример с hello world изисква функцията main ().
Обърнете внимание, че void е служебна дума за езика.
Описание: най-общо функция от вида void има следния вид:
void ime_na_funkcia (type1 parameter1, type 2 parameter2, …, typeN parameterN.)
{код в "тялото" на функцията}
В някои от езиците функциите се делят основно на две:
а) процедури – не се очаква връщане на стойност. Примерно да се изведе съдържанието на масив. В C++ се използва служебната дума void. Последната затваряща скоба на функция от типа void предполага неявно изпълнение на оператор return, но без израз, без предаване на стойност.
б) функции – тук понятията по математика съвпадат с тези по информатика. При изчисляване на по определен алгоритъм и с определен брой и вид аргументи се очаква връщане на една определена стойност - чрез оператор return.
За разлика от променливите функциите не променят съдържанието си по време на програмата. Докато една променлива съхранява една определена стойност (или адрес на стойност), то във функцията се съхранява програмен код изпълняващ определен алгоритъм.
Следващата примерна програма илюстрира работата с функция от тип void:
oператори за присвояване
Имаме следната примерна задача:Въведени са две естествени числа a, b и трябва да се изведе резултата от следните действия с тях: += -= *= /= %= >>= <<= &= ^= |=
Отделните oператори са:
+= - за добавяне на стойност
-= - за изваждане на стойност
*= - оператор за произведение
/= - за делене – в случая целочислено делене
%= - целочислен остатък
>>= изместване наляво - целочислено делене на определена степен на 2
<<= изместване надясно – целочислено умножение с определена степен на 2
&= - побитов AND
^= - побитов XOR
|= - побитов OR
Тук не са посочени оператори за отношение, релация. Обърнете внимание, че тук се интересуваме само от резултата на конкретното аритметично действие без да го използваме в друга част на програмата.
Следващата примерна програма съдържа решена задача илюстрираща оператори за присвояване. Всяко от действията се извършва в определена функция от типа void.
Задачи с подобни функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.