Слайд 2
Функция – это часть программы(кода), написанная отдельно от основной программы. int main() либо void draw(), либо void Update и т.д. - это основные функции, именно в них пишется основная часть кода. Но дополнительно можно создать ещё функции – отдельные блоки кода, которые можно «активировать»(правильно говорить «вызвать») в основной функции. Функции по типу бывают : « Пустые » (создаются void ) « С параметрами » ( создаются void ) « С возвращаемым значением » (создаются командами, которые создают переменные: int, float, string… ).
Слайд 3
Пустая функция – создаётся командой void, после указывается имя функции ( оно может быть любым, но должно начинаться с буквы и не должно содержать пробелы ), после ставятся пустые скобки, например: void name() { тело функции } Вместо «тело функции» можно написать любые команды. Обычно такие функции используют для сокращения кода и «наведения порядка» в программе. Например: ваша программа может запрашивать от пользователя его персональные данные, сохранять их в файл, выводить на экран, отправлять на печать и отправлять по почте. Все эти действия записываются в отдельные функции, чтобы команды от разных задач не перемешивались и не сливались в один неразборчивый код:
Слайд 4
Пример организации прогрммы : int main(){ getName (); //вызовы функций в основной printName (); sendName (); } void getName (){ команды запроса имени; } //описание функции, какие конкретно команды она должна выполнить. void printName (){ команды отправки на печать; } void sendName (){ команды отправки данных по почте; }
Слайд 5
Функции с передачей параметров – так же создаётся командой void, но так же в эту функцию передаётся значение какой-то переменной либо число: pow(5); || вызывается функция возведения в квадрат и в эту функцию передаётся «5». void pow(int x){ res = x*x; } || Создаётся функция, которая принимает число в переменную «х» и возводит это число в квадрат. Важно отметить, что если мы передаём что-то в функцию, нужно предусмотреть, а где эти данные будут храниться. Для этого в самой функции, в () – создаётся переменная, которая может «принять» эти данные. Например: pow(“word”); void pow(int x){ res = x*x; } Получится ошибка, так как в функцию pow мы отправляем слово, а внутри функция переменная создаётся командой int, которая не может содержать слова.
Слайд 6
Функции с передачей параметров используются, когда требуется выполнять однообразные действия с небольшими поправками. Например: складывать или умножать числа, находить модуль числа, выводить на экран много одинаковых фигур, но в разных координатах и т.д. Важно отметить: сколько данных отправляется в функцию – столько переменных потребуется создать при описании функции: sum(2, 5); void sum(int a, int b) {res = a+b ;} dif (5, 8, 6); void dif (int a, int b, int c){res = a-b-c;} При отправке данных в функцию, они указываются через запятую
Слайд 7
Функции с возвратом значения – Создаются командами: int/float/char/string …, Почти всегда эти функции ещё и будут принимать параметры (как предыдущие функции). Внутри такой функции обязательно использовать команду return (или несколько return, если один из них внутри условия). Обычно эти функции вызываются внутри команд, или при сохранении чего-то в переменную. int Res=0; Res = sum(5, 8); //вызываем функцию sum и сохраняем результат её работы в переменную Res. //далее создаётся функция sum командой int. Внутри создаются 2 переменные, для приёма данных int sum(int a, int b) { return a+b ; } //данные складываются и с помощью команды return отправляются туда, где была вызвана функция, то есть в переменную Res.
Слайд 8
Важно отметить, что после команды return функция прекращает свою работу, аналогично с командой break. То есть – последующие команды выполнены не будут. Использовать функцию с возвратом значения на «пустом» месте не логично: sum(5, 8); Эта функция посчитает сумму, но результат от команды return никуда не сохраняется и будет потерян, а значит функция зря выполнялась. Перечислить список задач, которые выполняются такими функциями – очень сложно. От подсчёта значений, до проверки очень сложных условий. Такие функции могут искать наибольший и наименьший элемент массива, составлять списки, использовать для поиска активных и неактивных объектов и т.д.
Слайд 9
Иногда такие функц ии могут создавать много ошибок, так как требуют большой точности в написании кода. Но можно использовать «костыль» и в конце такой функции всегда писать return 0; - это не исправил логические ошибки, но функция начнёт хоть как-то работать. В последующем все равно придётся искать ошибку.
Последний слайд презентации: Функции в С++/С #
Следует отметить, что у функций должны быть разные названия, как и у переменных, но так же существует такое понятие как Перегрузка функций. Перегрузка функций – когда создаётся несколько функций с одинаковыми названиями, но с разным количеством входных параметров. Например: float name () { команды } float name(float a) { команды } float name(float a, int b) { команды } float name(float a, int b, float c) { команды } Создаётся 4 функции с именем name, но у каждой из них разное количество входных параметров (переменных в скобках ()). В этом случае при вызове функции, программа сама догадается какой вариант использовать по количеству отправленных данных: name(5,2); - в этом примере вызовется та функция, которая принимает 2 переменные(правильно они называются « аргументы »)