Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 9 - Функции.doc
Скачиваний:
5
Добавлен:
11.09.2019
Размер:
227.84 Кб
Скачать

Лабораторная работа №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;

}