Лабораторная работа №9 Функции
Функция – это именованная последовательность описаний и операторов, выполняющая некоторое законченное действие.
Каждая функция по своему имени может быть вызвана из других функций программы. Выполнение программы начинается с функции main.
Функция может принимать параметры и возвращать значение.
Любая функция, используемая в программе, должна быть объявлена и определена.
У функции может быть несколько объявлений, но только одно определение.
Объявление функции – задает имя функции, тип возвращаемого значения и список, передаваемых параметров.
Определение функции – помимо объявления содержит также тело функции – последовательность операторов и описаний в фигурных скобках.
Формат объявления функции:
возвращаемый_тип имя_функции(тип1 параметр1, тип2 параметр2, …, типN параметрN);
Формат определения функции:
возвращаемый_тип имя_функции(тип1 параметр1, тип2 параметр2, …, типN параметрN)
{
операторы_тела_функции;
}
Формат оператора вызова функции:
имя_функции(параметр1, параметр2, …, параметрN)
Пример 1. Следующая программа содержит функции вычисления объема и площади боковой поверхности прямоугольного параллелепипеда, заданного длинами трех его измерений.
#include <iostream>
using namespace std;
//Объявление функции, вычисляющий объем прямоугольного
//параллелипипеда по трем его сторонам a, b, c (параметры по значению).
//Возвращаемое функцией значение - вычисленный объем.
double CuboidVolume(double a, double b, double c);
//Объявление функции, вычисляющей площадь боковой поверхности
//прямоугольного параллелипипеда по трем его сторонам
// a, b, c (параметры по значению).
//Вовзвращаемое функцией значение - вычисленная площадь.
double CuboidLateralArea(double a, double b, double c);
int main()
{
double a, b, c;
double V, S;
//ВВодим размеры трех измерений прямоугольного параллелипипеда
cout << "Enter sizes of cuboid (3 dimensions) : ";
cin >> a >> b >> c;
//Вычисляем его объем путем вызова соотвествующей функции и сохранения
//полученного значения в переменную V
V = CuboidVolume(a, b, c);
//Вычисляем площадь его боковой поверхностипутем вызова соотвествующей
// функции и сохранения полученного значения в переменную S
S = CuboidLateralArea(a, b, c);
//Выводим на экран найденные значения объема и площади
cout << "Cuboid volume : " << V << endl;
cout << "Cuboid lateral area : " << S << endl;
return 0;
}
//Определение функции, вычисляющий объем прямоугольного
//параллелипипеда
double CuboidVolume(double a, double b, double c)
{
double Volume;
Volume = a * b * c;
return Volume;
}
//Определение функции, вычисляющей площадь боковой поверхности
//прямоугольного параллелипипеда по трем его сторонам
double CuboidLateralArea(double a, double b, double c)
{
return 2.0 * (a + b + c);
}
Подробнее о способах передачи параметров в функцию и о передаче в функцию массивов можно узнать из презентации к лекции по теме «Функции». Также см. учебник и практикум по структурному программированию Павловской.
Рассмотрим простейший пример использования функции с одномерным массивом в качестве параметра.
Пример 2. Программа, содержащая функцию, которая находит сумму элементов целочисленного массива между двумя указанными элементами (включая данные элементы).
#include <iostream>
#include <time.h>
using namespace std;
//Объявим и сразу же определим новую функцию. Назовем ее ArraySum.
//Пусть в нее будут передаваться сам массив, а также два элемента,
//между которыми нужно найти сумму.
int ArraySum(int *m, int n1, int n2)
{
//Определяем переменную, которая будет накапливать искомую сумму.
int s=0;
//С помощью счетного цикла проходим по всем элементам массива между
//заданными и каждый из них прибавляем к сумме s.
for (int i=n1; i<=n2; i++)
{
s+=m[i];
}
//Возвращаем в main полученную сумму.
return s;
}