Лекции по проге / 12_Функции, определяемые пользователем
.pdf
Пример объявления функции, использующей возвращаемое значение и выходной аргумент
/*! Поиск минимума двух значений — используем возвращаемое значение
*\param [in] a - первое значение
*\param [in] b - второе значение
*\return - минимальное значение из двух
*/
float min_1(float a, float b);
/*! Поиск минимума двух значений — используем выходной аргумент
*\param [in] a - первое значение
*\param [in] b - второе значение
*\param [out] minimum - минимальное значение из двух
*/
21 void min_2(float a, float b, float *minimum);
Задание на вызов функции, использующей возвращаемое значение и выходной аргумент
1) Используя min_1(), найти минимум из двух константных значений 3.9 и 5, результат записать в переменную min_value
2) Используя min_2(), вычислить выражение: result = (минимум из двух значений k и m) + 1
где int k = 34; float m = 33.333; float result;
3) Используя min_1() и min_2(), найти минимальное значение массива float mass[] = {3.9, .9, 2.222};
22 |
результат записать в переменную min_value |
|
Пример вызова функции, использующей выходной аргумент и возвращаемое значение
//Поиск минимума двух константных значений float min_value;
min_value = min_1(39.5, 5);
//Поиск минимума двух переменных
int k = 34; float m = 33.333; int result; min_2(k, m, &result); result++;
// Поиск минимального значения среди элементов массива float mass[] = {3.9, .9, 2.222};
min_value = min_1( mass[0], min_1(mass[1], mass[2]) );
min_2(mass[1], mass[2], &min_value); 23 min_2(mass[0], min_value, &min_value);
Задание на реализацию функции
Реализовать функции
/*! Поиск минимума двух значений
*\param [in] a - первое значение
*\param [in] b - второе значение
*\return - минимальное значение из двух
*/
float min_1(float a, float b);
/*! Поиск минимума двух значений
*\param [in] a - первое значение
*\param [in] b - второе значение
*\param [out] minimum - минимальное значение из двух
*/
24 void min_2(float a, float b, float *minimum);
Пример реализации функции, использующей входные аргументы скалярного типа и возвращаемое значение
/*! Поиск минимума двух значений
*\param [in] a - первое значение
*\param [in] b - второе значение
*\return - минимальное значение из двух
*/
float min_1(float a, float b)
{
float result;
if(a |
> |
b) |
result = b; |
else |
|
|
result = a; |
return |
result; |
||
}
25
Пример реализации функции, использующей входные и выходные аргументы скалярного типа
/*! Поиск минимума двух значений
*\param [in] a - первое значение
*\param [in] b - второе значение
*\param [out] minimum - минимальное значение из двух
*/
void min_2(float a, float b, float *minimum);
{
if(a |
> b) |
*minimum |
= |
b; |
else |
|
*minimum |
= |
a; |
}
26
Дополнительное задание на определение входных и выходных данных для функции
Определить входные и выходные данные для функции fourth_vertex_1 ()
Назначение функции: рассчитать координаты четвертой вершины прямоугольника (стороны прямоугольника параллельны осям координат)
27
Пример определения входных и выходных данных для функции
Функция fourth_vertex_1 ()
Назначение функции: рассчитать координаты четвертой вершины прямоугольника (стороны прямоугольника параллельны осям координат)
Входные данные: координаты трех вершин прямоугольника — (x_a, y_a), (x_b, y_b), (x_c, y_c) — вещественные значения двойной точности
Выходные данные: координаты четвертой вершины прямоугольника — (x_d, y_d)
28
Дополнительное задание на объявление функции
Выбрать способ реализации входных и выходных данных функции. Объявить функцию fourth_vertex_1() (задать прототип)
Назначение функции: рассчитать координаты четвертой вершины прямоугольника (стороны прямоугольника параллельны осям координат)
Входные данные: координаты трех вершин прямоугольника — (x_a, y_a), (x_b, y_b), (x_c, y_c) — вещественные значения двойной точности
Выходные данные: координаты четвертой вершины
29 прямоугольника — (x_d, y_d)
Пример объявления функции, использующей выходные аргументы скалярного типа
/*!
*Определить четвертую вершину прямоугольника
*(стороны прямоугольника параллельны осям координат)
*\param [in] x_a, y_a координаты первой вершины
*\param [in] x_b, y_b координаты второй вершины
*\param [in] x_c, y_c координаты третьей вершины
*\param [out] x_d, y_d координаты четвертой вершины
*/
void fourth_vertex_1 ( double x_a, double x_b, double x_c, double *x_d,
double y_a, double y_b, double y_c, double *y_d );
30
