Читайте также:
|
|
Каждая функция в языке С++ обозначает подпрограмму. Функции разбивают большие вычислительные задачи на маленькие подзадачи. В виде функции оформляются вычисления, преобразования и другие действия, которые затем могут быть выполнены неоднократно с различными аргументами.
Определение любой функции имеет вид:
Тип-результата имя-функции (объявления аргументов)
{ //блок с телом ф-ции //объявления, инструкции}
Отдельные части могут отсутствовать. Функция void dummy () {} ничего не делает.
void - ключевое слово указывает, что ф-ция ничего не возвращает. Вычисление ф-ции завершается при достижении последней } или выполнении инструкции return. Когда функция завершает работу, выполнение передаётся в вызывающую программу той инструкции, которая следует за вызовом функции. return ВЫР; - вычисляется выражение, его значение передаётся в вызывающую программу в точку вызова функции. Значение, возвращаемое функцией, может быть использовано вызывающей программой или проигнорировано.
Аргументы, используемые при определении функции, называются формальными параметрами (m и n). При вызове функции вместо формальных параметров подставляются фактические аргументы (2, i и -3,i)
В языке С++ аргументы ф-ции передаются по значению. Это значит, что внутри ф-ции создаются локальные копии фактических аргументов, которые и используются в вычислениях. Поэтому фактические аргументы не могут быть изменены внутри ф-ции. Если нужно изменить фактический аргумент внутри функции, то в неё должен передаваться адрес аргумента. Когда аргументом функции является массив, то в функцию передаётся значение адреса 1го элемента массива и массив можно изменить. Функция может записать по этому адресу новое значение. Зная адрес 1го элемента массива, функция может получать доступ ко всем его элементам.
Пример функции: //power: возводит m в степень n
int power(int m, int n) //power - имя функции; m, n - аргументы функции
{ int i, p = 1;
for(i = 1; i <= n; i++) // m возводится
p = p * m; // в n-ю степень
return p; } // Возвращение вычисленного значения
#include <iostream.h>
int main() // Использование функции power
{ int i;
for(i = 1; i < 10; i++)
cout << "2 в степ. " << i << " =\t" << power(2, i) << "\t-3 в степ. " << i << " =\t" << power(-3, i) << "\n";
return 0;}
Программа выдает следующее:
2 в степ. 1 = 2 -3 в степ. 1 = -3
2 в степ. 2 = 4 -3 в степ. 2 = 9
2 в степ. 3 = 8 -3 в степ. 3 = -27
2 в степ. 4 = 16 -3 в степ. 4 = 81
2 в степ. 5 = 32 -3 в степ. 5 = -243
2 в степ. 6 = 64 -3 в степ. 6 = 729
2 в степ. 7 = 128 -3 в степ. 7 = -2187
2 в степ. 8 = 256 -3 в степ. 8 = 6561
2 в степ. 9 = 512 -3 в степ. 9 = -19683
Прототипом ф-ции называется её предварительное объявление: тип-результата имя-ф-и (объявления аргументов);. После чего ф-цию можно использовать в выражениях, причём компилятор сгенерирует правильный код вызова, т.к. прототип сообщает ему всё необходимое. Вызов функции должен быть согласован с прототипом, иначе возникает ошибка. Имена аргументов в объявлении можно не указывать (int power (int, int)). Компилятору достаточно объявления функции, но редактор связей должен иметь код функции, поэтому функции должны быть где-то определены.
Дата добавления: 2015-07-08; просмотров: 590 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Цикл do…while. Программа вычисления квадратного корня. | | | Массивы как аргументы функций. Функция сортировки массива методом пузырька. |