Всякую задачу можно разбить на несколько подзадач. Также и в программе мы можем использовать функции для разбиения ее на несколько подпрограмм. Выполнение программы начинается всегда с функции main(). Когда в программе вмтречается имя функции происходит обращение к ней и управление передается ей. После выполнения функции управление передается в то место откуда она была вызвана. Формально функция выглядет так: 


тип имя(список_параметров)
{
    инструкции
}


 Тут:
тип – это возвращаемый тип(тип того что возвращает функция), имя – это название функции и список_параметров – это параметры которые передаются функции. В функциях для возврата результата используется инструкция return, она возвращает какое либо значение в то место откуда была вызвана функция. Приведем пример программы с использованием функции, которая будет высчитывать сумму двух введенных пользователем значений: 

#include <iostream.h>
int sum(int a, int b)
{
    int c = a + b; return c;
}
main()
{
    int a, b , res;
    cout << "a = ";
    cin >> a;
    cout << "b = "; 
    cin >> b; 
    res = sum(a, b);
    cout << "summa: " << res << endl;
}

    Объявление функции можно отделить от определения, например в данной программе функцию sum можно объявить до функции main а определить после:

#include <iostream.h> 
int sum(int a, int b);
main()
{
    int a, b , res;
    cout << "a = "; 
    cin >> a;
    cout << "b = "; 
    cin >> b;
    res = sum(a, b);
    cout << "summa: " << res << endl;
}
int sum(int a, int b)
{
    int c = a + b; 
    return c;
}