Функции в C++

Содержание

Слайд 2

Функции Функции в C++ можно разбить на две категории: функции, которые

Функции

Функции в C++ можно разбить на две категории: функции, которые возвращают

значения, и функции, значения не возвращающие.
Слайд 3

Синтаксис вызова функции

Синтаксис вызова функции

Слайд 4

Разновидности функций Для некоторых функций требуется более одного элемента информации :

Разновидности функций

Для некоторых функций требуется более одного элемента информации :

Есть функции,

которые не принимают аргуметов:

Существуют также функции, которые не имеют возвращаемого значения.

Слайд 5

Функции, определяемые пользователем

Функции, определяемые пользователем

Слайд 6

Функции как программные модули C++ Для того чтобы использовать функцию в

Функции как программные модули C++

Для того чтобы использовать функцию в C++,

вы должны выполнить следующие шаги:
• предоставить определение функции;
• представить прототип функции;
• вызвать функцию.

Например, strlen – функция нахождения длины строки (библиотека cstring )

Слайд 7

Определение, прототипирование и вызов функции

Определение, прототипирование и вызов функции

Слайд 8

Определение функции Все функции можно разбить на две категории: те, которые

Определение функции

Все функции можно разбить на две категории:
те, которые не

возвращают значений,
и те, которые их возвращают.
Функции, не возвращающие значений, называются функциями типа void и имеют следующую общую форму:
Слайд 9

Функция с возвращаемым значением — выражение должно сводиться по типу к

Функция с возвращаемым значением

— выражение должно сводиться по типу к имяТипа

либо может быть преобразовано в имяТипа
— Язык C++ накладывает ограничения на типы возвращаемых значений: возвращаемое значение не может быть массивом.
Все остальное допускается — целые числа, числа с плавающей точкой, указатели и даже структуры и объекты.
— Хотя функция C++ не может вернуть массив непосредственно, она все же может вернуть его в составе структуры или объекта.
Слайд 10

Функции Функция завершается после выполнения оператора return.

Функции

Функция завершается после выполнения оператора return.

Слайд 11

Прототипирование и вызов функции

Прототипирование и вызов функции

Слайд 12

Зачем нужны прототипы? Прототип описывает интерфейс функции для компилятора. Это значит,

Зачем нужны прототипы?

Прототип описывает интерфейс функции для компилятора. Это значит, что

он сообщает компилятору, каков тип возвращаемого значения, если оно есть у функции, а также количество и типы аргументов данной функции.

Синтаксис прототипа

Прототип функции является оператором, поэтому он должен завершаться точкой с запятой.

Прототип функции не требует предоставления имен переменных-параметров; достаточно списка типов

Слайд 13

Что обеспечивают прототипы Прототипы значительно снижают вероятность допущения ошибок в программе.

Что обеспечивают прототипы

Прототипы значительно снижают вероятность допущения ошибок в программе. В

частности, они обеспечивают следующие моменты:
Компилятор корректно обрабатывает возвращаемое значение.
Компилятор проверяет, указано ли правильное количество аргументов.
Компилятор проверяет правильность типов аргументов. Если тип не подходит, компилятор преобразует его в правильный, когда это возможно.

// неверное количество переменных

// два несоответствия типа в одном операторе

Прототипирование происходит во время компиляции и называется статическим контролем типов.

Слайд 14

Аргументы функций и передача по значению В C++ аргументы обычно передаются

Аргументы функций и передача по значению

В C++ аргументы обычно передаются по

значению. Это означает, что числовое значение аргумента передается в функцию, где присваивается новой переменной.

Переменная, которая используется для приема переданного значения, называется формальным аргументом или формальным
параметром. Значение, переданное функции, называется фактическим аргументом или фактическим параметром. Иногда в стандарте C++ слово аргумент используется для обозначения фактического аргумента или параметра, а слово параметр — для обозначения формального аргумента или параметра.

Слайд 15

Передача по значению Когда функция вызывается, компьютер выделяет память, необходимую для

Передача по значению

Когда функция вызывается, компьютер выделяет память, необходимую для этих

переменных. Когда функция завершается, компьютер освобождает память, которая была использована этими переменными.
Слайд 16

Локальные переменные

Локальные переменные

Слайд 17

Множественные аргументы Функция может принимать более одного аргумента. При вызове функции

Множественные аргументы

Функция может принимать более одного аргумента. При вызове функции

такие аргументы просто отделяются друг от друга запятыми:

Определение функции:

Если функция имеет два параметра одного и того же типа, то
типы каждого параметра должны указываться по отдельности:

Прототипы:

Слайд 18

Функция с двумя переменными

Функция с двумя переменными

Слайд 19

Еще одна функция с двумя аргументами Если вы должны угадать 6

Еще одна функция с двумя аргументами

Если вы должны угадать 6 значений

из 51, математики говорят, что у вас имеется один шанс выигрыша из R, где R вычисляется по следующей формуле:
Слайд 20

Еще одна функция с двумя аргументами

Еще одна функция с двумя аргументами

Слайд 21

Функции и массивы

Функции и массивы

Слайд 22

Функции с аргументами-строками

Функции с аргументами-строками

Слайд 23

Функции, возвращающие строки

Функции, возвращающие строки

Слайд 24

Функции и структуры

Функции и структуры

Слайд 25

Функции и структуры

Функции и структуры

Слайд 26

Рекурсия Функция C++ обладает интересной характеристикой — она может вызывать сама себя. Эта возможность называется рекурсией.

Рекурсия

Функция C++ обладает интересной характеристикой — она может вызывать сама себя.

Эта возможность называется рекурсией.
Слайд 27

Использование рекурсии

Использование рекурсии

Слайд 28

Вопросы 1. Назовите три шага по созданию функции. 2. Постройте прототипы,

Вопросы

1. Назовите три шага по созданию функции.
2. Постройте прототипы, которые соответствовали

бы следующим описаниям.
а. igor () не принимает аргументов и не возвращает значения.
б. tofu () принимает аргумент int и возвращает float.
в. mpg () принимает два аргумента типа double и возвращает double.
г. summation () принимает имя массива long и его размер и возвращает значение long.
д. doctor () принимает строковый аргумент (строка не должна изменяться) и возвращает double.
е. of course () принимает структуру boss в качестве аргумента и не возвращает ничего.
3. Напишите функцию, принимающую три-аргумента: имя массива int, его размер и значение int. Функция должна присвоить каждому элементу массива это значение int.