Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prog (2).docx
Скачиваний:
0
Добавлен:
26.12.2019
Размер:
75.68 Кб
Скачать

18.Функция. Объявление и определение функции: назначение,

синтаксис, примеры. С увеличением объема программы становится невозможным удерживать в памяти все детали. Естественным способом борьбы со сложностью любой задачи является ее разбиение на части. В C++ задача может быть разделена на более простые и обозримые с помощью функций. Использование функций является первым шагом к повышению степени абстракции программы и ведет к упрощению ее структуры.

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

Функция — это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.Любая программа на C++ состоит из функций, одна из которых должна иметь имя main (с нее начинается выполнение программы). Функция начинает выполняться в момент вызова. Любая функция должна быть объявлена и определена.Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:

тип имя ( [ список_параметров ])

{ тело функции }

Пример

min имя([mun_nap1, mun_nap2,…,mun_napN]);

int f1(int,int);

void f2 (double);

void f3();

19. Функция. Возврат значения из функции: синтаксис, пример.

Рассмотрим составные части определения. Тип возвращаемого функцией значения может быть любым, кроме массива и функции. Если функция не должна возвращать значение, указывается тип void. Список параметров определяет величины, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена можно опускать). В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать. На имена параметров ограничений по соответствию не накладывается, поскольку функцию можно вызывать с различными аргументами, а в прототипах имена компилятором игнорируются (они служат только для улучшения читаемости программы). Для вызова функции в простейшем случае нужно указать ее имя, за которым в круглых скобках через запятую перечисляются имена передаваемых аргументов. Вызов функции может находиться в любом месте программы, где по синтаксису допустимо выражение того типа, который формирует функция. Если тип возвращаемого функцией значения не void, она может входить в состав выражений или, в частном случае, располагаться в правой части оператора присваивания.Пример функции, возвращающей сумму двух целых величин:

int sum(int a, int b); // объявление функции

int _tmain(int argc, _TCHAR* argv[])

{setlocale(LC_ALL,"Russian");

int a = 2, b = 3, c, d;

c = sum(a, b); // вызов функции

cin >> d;

cout << sum(c, d); // вызовфункции

_getch();

return 0;

}

// определение функции

int sum(int а, int b)

{

return (а + b);

}В теле функции возвращаем значение с помощью оператора return.

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

21.Рекурсивная функция. Пример рекурсивной функции. Рекурсивной называется функция, которая вызывает саму себя. Примером рекурсивной функции является вычисление факториала.

int fact(int n)

{

if (n==0 || n == 1) return 1;

else return (n* fact(n-1));

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]