Основы использования функций

✓ В начале программы объявляйте функцию в виде прототипа. Это объявление, которое содержит только информацию о типе.

✓ Где-нибудь в программе определите функцию. Здесь описывается то, что будет делать функция.

✓ После этого можно выполнять функцию в любом месте программы. Этот процесс известен как вызов функции. Вызов функции можно выполнять любое количество раз.

Важно!!!Необходимо предоставить полную информацию о типе для функции перед тем, как вызвать ее, - язык C++ требует точного описания типов входных и выходных данных. Для этого можно определить функцию перед ее вызовом из функции main. Но в большой программе такой подход становится громоздким, когда вы не можете вспомнить, какие функции вызываются первыми.

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

 

Шаг 1: Объявление (создание прототипа) функции

Объявление (declaration) функции (или «прототипа») содержит только информацию о типе. Объявление имеет следующий синтаксис:

тип имя__функции (список_аргументов) ;

Тип - это определенный тип данных, например int, float или double, сообщающий, какой тип значения возвращает функция (что она передает обратно). Если функция не возвращает значения, используется специальный тип void (тип void означает «пустой тип»).

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

Например, следующая инструкция объявляет функцию с именем avg, принимающую два аргумента типа double и возвращающую значение типа double.

 

double avg(double x, double y);

Список_аргументов может быть пустым, что означает, что функция не принимает аргументы. Например, следующая инструкция объявляет функцию get_todays_date, возвращающую значение типа int:

int get_todays_date() ;

 

Шаг 2: Определение функции

Определение функции описывает то, что делает функция. Для этого используется следующий синтаксис:

тип имя__функции (список_аргументов)

{

инструкции

}

Большая часть этого синтаксиса выглядит, как объявление. Единственное, чем он отличается от объявления, - точка с запятой заменяется рядом инструкций, расположенных между двумя фигурными скобками ({}).

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

double avg(double х, double у)

{

return (х + у) /2.0;

}

 

Шаг 3: вызов функции

Как только функция объявлена и определена, она может быть использована - или, вернее, «вызвана» - любое количество раз из любой функции. Например:

n = avg(9.5, 11.5);

n = avg(5, 25);

n = avg(27, 154.3);

Вызов функции является выражением: если функция возвращает значение, отличное от значения void, она может быть использована внутри большего выражения. Например:

z = х + у + avg(a, b) +25.3;

При вызове функции значения, указанные в вызове функции, передаются в качестве аргументов функции. Вот как работает вызов функции avg со значениями 9,5 и 11,5 в качестве входных параметров:

Пример 1. Функция вычисления числового треугольника

В этом разделе показан вызов функции в контексте завершенной программы. Треугольник суммирует все целые числа от 1 до указанного числа. Например, треугольник числа 5 равняется:

triangle(5) =1+2+3+4+5=15

Числовой треугольник для числа 7 равен:

triangle(7) =1+2+3+4+5+6+7=28

 

#include <iostream>

using namespace std;

 

// Объявление функции

int triangle(int num);

 

int main() {

int n;

 

cout << "Enter a number and press ENTER: ";

cin >> n;

 

cout << "Function returned " << triangle(n);

 

return 0;

}

 

// Функция

int triangle(int n)

{

int i;

int sum = 0;

 

for (i = 1; i <= n; i++) // For i = 1 to n,

sum = sum + i; // Прибавим i к sum

return sum;

}

Предположим, что пользователь ввел «4». В этом случае вызов функции передает значение 4 в качестве аргумента n:

После этого программа печатает возвращенное значение, 10 (поскольку 1+2+3+4 = 10).

Упражнение 1:Написать функцию проверки на простое число.

Упражнение 2:Написать функцию вычисления среднего геометрического двух чисел. . Для вычисления корня воспользуйтесь командой sqrt.

Упражнение 3:Написать функцию вычисления факториала введенного числа. .