«

»

C++. Функции. Общие сведения

Первый урок о функциях, в котором мы рассмотрим общие сведение о них.

Функция — это поименованный набор описаний и операторов, выполняющих определенную задачу. Функция может принимать параметры и возвращать значение. Информация, передаваемая в функцию для обработки, называется параметром, а результат вычислений функции ее значением. Обращение к функции называют вызовом.

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

тип имя_функции (список_переменных)
{
тело_функции
}

Заголовок функции содержит:

  • тип возвращаемого функцией значения, он может быть любым; если функция не возвращает значения, указывают тип void;
  • имя_функции, с которым она будет вызываться;
  • список_переменных — перечень передаваемых в функцию аргументов, которые отделяются друг от друга запятыми; для каждой переменной из списка указывается тип и имя;

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

В общем виде структура программы на C++ может иметь вид:

директивы компилятора
тип имя_1 (список_переменных)
{
тело_функции_1;
}
тип имя_2 (список_переменных)
{
тело_функции_2;
}

int main (список_переменных)
{
// тело функции может содержать операторы вызова функций имя_1, имя_2….
тело_основной_функции;
}

Стоит отметить, что тексты функции могут следовать после главной функции main(). Однако заголовки необходимо перечислить до нее.

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

имя_функции (список_переменных);

Теперь давайте напишем программу, которая выводит на экран треугольник, построенный из символов «звездочка» и «пробел».

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#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 выполняет операцию умножения двух целых чисел:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#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++ это пять различных переменных. Область действия локальной переменной не выходит за рамки функции.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вы можете использовать эти теги HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Проверка на человечность *