Конспект лекций Часть II одесса, 2003


Download 0.65 Mb.
Pdf ko'rish
bet3/26
Sana17.06.2023
Hajmi0.65 Mb.
#1526920
TuriКонспект
1   2   3   4   5   6   7   8   9   ...   26
Bog'liq
atki188 c konspekt 2

Функции 
С увеличением объёма программы становится невозможным удер-
живать в памяти все её детали. Естественным способом борьбы со сложно-
стью любой задачи является её разбиение на части. В С++ задача может быть 
разделена на более простые и понятные с помощью функций, после чего про-
грамму можно рассматривать на уровне взаимодействия функций. Это важно, 
поскольку человек способен помнить ограниченное число фактов. Использо-
вание функций является первым шагом к повышению степени абстракции 
программы и ведёт к упрощению её структуры. 
Разделение программы на функции позволяет также избежать напи-
сания аналогичных частей кода, поскольку функцию записывают один раз, а 
вызывать её на выполнение можно многократно из разных точек программы. 
Функцию можно рассматривать как операцию, определённую поль-
зователем. В общем случае она задаётся своим именем. Функция может при-
нимать параметры и возвращать значение. 
Любая программа в С++ состоит из функций, одна из которых долж-
на иметь имя main (с неё начинается выполнение программы). Функция на-
чинает выполняться в момент вызова. Любая функция должна быть объявле-
на и определена. Как и для других величин, объявлений может быть несколь-
ко, а определение только одно. Объявление функции должно находиться в 
тексте раньше её вызова для того, чтобы компилятор мог осуществить про-
верку правильности вызова. 
В объявлении функции (прототипезаголовкесигнатуре) описыва-
ется её интерфйс. Он содержит все данные о том, какую информацию должна 
получать функция (список параметров) и какую информацию она возвраща-
ет. Определение функции содержит, кроме объявления, тело функции, пред-
ставляющее собой последовательность операторов и описаний в фигурных 
скобках: 
тип имя ([список_параметров])
{тело_функции} 
Тип возвращаемого значения может быть любым, кроме массива и функ-
ции (но может быть указателем на массив или функцию). Если функция 
не должна возвращать значение, указывается тип void. 
Список параметров определяет величины, которые требуется передать в 
функцию при её вызове. Элементы списка параметров разделяются запя-
тыми. Для каждого параметра, передаваемого в функцию, указывается 
тип и имя (в объявлении имена можно опускать). 
Тело функции – действия, которые производит функция. 
В определении, в объявлении и при вызове одной и той же функции 
порядок следования параметров должны совпадать.


Одесский колледж компьютерных технологий “СЕРВЕР” 
5
Тип возвращаемого значения и типы параметров совместно опреде-
ляют тип функции. 
Возврат значения из функции в вызывавшую её функцию реализует-
ся оператором 
return 
[выражение]; 
Если функция описана как void, выражение не указывается.
Примеры: 
int f1() {return 1;} 
//правильно 
void f2() {return 1;} 
//неправильно, f2 не должна возвращать значение 
double f3 {return 1;} 
//правильно, 1 преобразуется к типу double 
Чтобы использовать функцию, не требуется знать, как она работает – 
достаточно знать, как её вызывать. Это всё равно, что телевизор – вовсе не 
обязательно разбираться в электротехнике, главное знать, как его включить.
Для использования функции тоже требуется знать только её интер-
фейс. Для вызова функции нужно указать её имя, за которым в круглых скоб-
ках через запятую перечисляются имена передаваемых аргументов. Вызов 
функции может находиться в любом месте программы, где по синтаксису 
допустимо выражение того типа, который формирует функция. Если тип воз-
вращаемого значения не void, она может входить в состав выражений или, в 
частном случае, располагаться в правой части оператора присваивания. 
Пример функции, возвращающей сумму двух целых величин: 
#include  
int sum (int a, int b); 
//объявление функции 
int main(){ 
int a=2, b=3, c,d; 
c=sum(a,b); 
//вызов функции 
cin>>d; 
cout<//вызов функции 
return 
0; 

int sum(int a, int b){ 
//определение функции 
return 
(a+b); 

Пример функции, выводящей на экран поля переданной ей структуры: 
#include  
struct Worker{ 
char 
fio[30]; 
int 
date, 
code; 
double 
zarplata; 
}; 
void print_worker(Worker); 
//объявление функции 



Download 0.65 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   26




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling