Лекции по проге / 12_Функции, определяемые пользователем
.pdf
Пример определения входных данных для функции
printPoint() - печать на экран координат некоторой точки на плоскости
Входные данные:
−два дробных числа одинарной точности — координаты точки
11
Задание на объявление функции
Определить способы реализации входных данных. Задать прототип функции printPoint() - печать на экран координат некоторой точки на плоскости в формате (x, y)
Входные данные:
− два дробных числа одинарной точности — коор-
динаты точки
12
Пример объявления функции, использующей входные аргументы скалярного типа и типа массив
/*! Вариант a) — используем скалярные аргументы
*Печать координат точки на плоскости
*\param [in] x - x-координата
*\param [in] y - у-координата
*/
void printPoint(float x, float y);
/*! Вариант b) — используем массив
*Печать координат точки на плоскости
*\param [in] coordinates — координаты точки
*/
void printPoint(const float coordinates[2]);
13
Выходные данные: способы реализации
Возвращаемое значение — наиболее предпочтительный способ; применяется, когда возвращается одно значение
Выходные аргументы — используется, когда возвращаемых данных много
Совместное использование выходных аргументов и возвращаемого значения — обычно используется, когда возвращаемых данных много и одним из них является флаг об успешном исполнении функции
14
Возвращаемое значение
|
Скалярные типы |
Массивы |
|
|
Возвращаемое |
+ |
указатель на элемент |
Выходные |
|
значение [return] |
массива |
данные |
||
|
||||
|
|
|
|
Функция может возвращать только одно значение, в том числе, структурированного типа
Однако массивы возвращать из функции нельзя ― можно возвратить только указатель на элемент массива, который был передан в функцию
Функция может не возвращать значение
15
Возвращаемое значение
Для того, чтобы функция могла вернуть значение в ее заголовке необходимо указать тип возвращаемого значения:
<тип возвращ. значения> <имя функции>(...)
Для непосредственного возвращения значения из функции используется оператор return:
return <выражение>;
<выражение> должно быть согласовано по типу с 16 возвращаемым значением функции
Выходные аргументы
|
Скалярные типы |
Массивы |
|
|
Выходные аргу- |
переданные по |
+ |
Выходные |
|
менты [out] |
адресу |
данные |
||
|
Выходные аргументы скалярных типов данных и типа "структура" передаются по адресу, т.к. требуется их модификация внутри функции и возврат результата в вызывающую программу
Если выходным аргументом является массив, то он передается как есть (по адресу), что позволяет без
помех записать в него результат работы функции
17
Задание на определение выходных данных для функции
Определить входные и выходные данные, а так же способ их реализации для функции min() - поиск минимума двух значений
18
Пример определения выходных данных для функции
Функция min() - поиск минимума двух значений
Входные данные - два вещественных числа одинарной точности
Выходные данные - минимальное значение из двух:
a)возвращаемое значение - вещественное значение одинарной точности
b)выходной аргумент minimum - вещественное значе-
19 |
ние одинарной точности |
|
Задание на объявление функции
Задать прототип функции min() - поиск минимума двух значений
Входные данные:
−a и b - вещественные числа одинарной точности
Выходные данные - минимальное значение из двух:
a)возвращаемое значение - вещественное значение одинарной точности
b)выходной аргумент minimum - вещественное значе-
20 |
ние одинарной точности |
