Лабораторная работа № 7 Тема: Функции.
Цель: понимать, что такое функции; уметь объявлять, инициализировать и использовать функции.
Теоретический материал
Понятие функции
Реальные программы состоят из тысяч, десятков тысяч и, даже миллионов строк кода. Чтобы легче было управлять этим кодом используют функции. Функции это модули в С/С++. Обычно программы пишутся объединяя множество таких модулей (функций), которые могут быть описаны в разных заголовочных файлах. Так, например, в лабораторной работе № 2 вы уже использовали математические функции. Для их использования нужно было подключить заголовочный файл math.h, так как все математические функции описаны в этом файле. Математические функции были разработаны программистами Microsoft, кроме математических функций также есть функции для работы со строками, с вводом и выводом и многим другим.
Для более быстрого понимания функций
Однако можно использовать и пользовательские функции, то есть можно создавать свои собственные. Для создания функций сначала нужно объявить прототип функции, а затем написать её реализацию, как показано в следующем листинге.
Сначала объявляется функция (прототип функции), в которой указывается, какой тип данных она возвращает, и какого типа данных будут параметры этой функции. При объявлении функции в конце должна быть точка с запятой.
Реализация функции описана после главной функции программы. При реализации нужно указать тип возвращаемого значения функции, а также параметры функции и их типы данных.
После этого в фигурных скобках описывается сама реализация этой функции. Если функция имеет тип данных не void, то в теле функции обязательно должен присутствовать оператор return, который возвращает результат соответствующего типа данных.
Листинг 6.1
#include <iostream.h> #include <math.h> |
|
|
|
Подключение необходимых заголовочных файлов |
|
|
|
||||
int my_pow(int, int); |
|
|
|
прототип функции my_pow |
|
|
|
||||
void main() |
|
|
|
|
|
{ |
|
|
|
|
|
int x; |
|
|
|
|
|
int y; |
|
|
|
|
|
int Res=0; |
|
|
|
|
|
int My_Res=0; |
|
|
|
|
|
cout<<”Enter x = ”; |
|
|
|
|
|
cin>>x; |
|
|
|
|
|
cout<<”Enter y = ”; |
|
|
|
|
|
cin>>y; |
|
|
|
|
|
Res = pow(x,y); |
|
|
|
|
|
cout<<”Res = ”<<Res<<endl; |
|
|
|
|
|
My_Res = my_pow(x,y); |
|
|
|
Вызов функции my_pow |
|
|
|
|
|||
cout<<”My_Res = ”<<My_Res<<endl; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int my_pow(int x, int y) |
|
|
|
Реализация функции my_pow |
|
|
|
|
|||
{ |
|
|
|
|
|
int r=1; |
|
|
|
Тело функции my_pow |
|
for(int i=0;i<y;i++) |
|
|
|
||
r=r*x; |
|
|
|
||
return r; |
|
|
|
||
|
|
|
|||
} |
|
|
|
||
|
|
|