Первый урок о функциях, в котором мы рассмотрим общие сведение о них.
Функция — это поименованный набор описаний и операторов, выполняющих определенную задачу. Функция может принимать параметры и возвращать значение. Информация, передаваемая в функцию для обработки, называется параметром, а результат вычислений функции ее значением. Обращение к функции называют вызовом.
Перед вызовом функция должна быть обязательно описана. Описание функции состоит из заголовка и тела функции:
тип имя_функции (список_переменных)
{
тело_функции
}
Заголовок функции содержит:
- тип возвращаемого функцией значения, он может быть любым; если функция не возвращает значения, указывают тип void;
- имя_функции, с которым она будет вызываться;
- список_переменных — перечень передаваемых в функцию аргументов, которые отделяются друг от друга запятыми; для каждой переменной из списка указывается тип и имя;
Тело функции представляет собой последовательность описаний и операторов, заключенных в фигурные скобки.
В общем виде структура программы на C++ может иметь вид:
директивы компилятора
тип имя_1 (список_переменных)
{
тело_функции_1;
}
тип имя_2 (список_переменных)
{
тело_функции_2;
}
…
int main (список_переменных)
{
// тело функции может содержать операторы вызова функций имя_1, имя_2….
тело_основной_функции;
}
Стоит отметить, что тексты функции могут следовать после главной функции main(). Однако заголовки необходимо перечислить до нее.
Вызвать функцию можно в любом месте программы. Для этого необходимо указать ее имя и в круглых скобках через запятую перечислить имена или значения аргументов, если такие имеются:
имя_функции (список_переменных);
Теперь давайте напишем программу, которая выводит на экран треугольник, построенный из символов «звездочка» и «пробел».
#include "stdafx.h" #include <iostream> using namespace std; void fun() //описание функции { //тело функции состоит из одного оператора //который выводит на экран звездочки и пробелы cout<<"* "; } int main () { int i, j; for (i=0; i<5; i++) { for (j=0; j<5-i; j++) fun(); //вызов функции cout<<"\n"; //перенос строки } system ("pause"); return 0; }
Результат работы кода:
Если тип возвращаемого значения не void, то функция может входить в состав выражений. Для того чтобы функция вернула какое-либо значение, в ней должен быть оператор return (выражение).
Пример программы, которая выводит таблицу умножения на заданное число. Здесь функция func выполняет операцию умножения двух целых чисел:
#include "stdafx.h" #include <iostream> using namespace std; int func(int a, int b) //описание функции { //функция возвращает результат умножения двух целых чисел: return (a*b); } int main () { int i, j; cout<<"i="; cin>>i; for (j=1; j<=10; j++) //вызов функции, параметры a и b заменяются именами аргументов i и j cout<<i<<"*"<<j<<"="<<func(i, j)<<" "; cout<<endl; //перенос на новую строку system ("pause"); return 0; }
Результат работы программы:
Переменные описанные внутри функции, а также переменные из списка аргументов, являются локальными. Например, если программа содержит пять разных функций, в каждой из которых описана переменная N, то для C++ это пять различных переменных. Область действия локальной переменной не выходит за рамки функции.
Переменные, определенные до объявления всех функций и доступные всем функциям, называют глобальными.