Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
40
Добавлен:
16.02.2016
Размер:
1.19 Mб
Скачать

Int MyFunction(int Number, float Point);

char InputSymbol();

void SetBit(short Hum);

void EmptySample(int, char);

// Вызов функций:

Result = MyFunction(varbl, 3.11);

symb = InputSymbol();

SetBit(3);

EmptySample(2, smbl);

// Определение функций:

int MyFunction(int Number, float Point)

{

int my_x;

return my_x;

// my_x - типа int

};

char InputSymbol()\

{

char symbol;

cin » symbol;

return symbol;

};

void SetBit(short number)

{

GlobalBit = GlobalBit | number;

};

void EmptySample(int x, char ch)

{

};

Для того чтобы было более понятно место функции в программе, детально рассмотрим пример вычисления квадрата числа с использованием функции.

В заголовочном файле header.hразместим прототип функцииMySquare():

// header.h

long MySquare(int);

Тогда главный модуль программы будет подключать заголовочный файл, содержать описание и вызов функции MySquare () из функции main ().

#include "header.h"

int main()

{

int Variable = 5;

cout « MySquare(Variable);

return 0;

}

long MySquare(int x)

{

return x * x;

}

Тот же пример может выглядеть несколько иначе, если вместо подключения заголовочного файла поместить прототип функции MySquare () прямо в файл исходного текста программы:

// Прототип функции:

long MySquare(int);

int main()

{

int Variable = 5;

cout « MySquare (Variable) ;

return 0;

}

long MySquare(int x)

{

return x * x;

}

Результат работы программы не изменится - на печать будет выведено число 25.

В С++ допускается при вызове функций опускать некоторые ее параметры. Достигается это указанием в прототипе функции значений аргументов по умолчанию. Например, функция, прототип которой приведен ниже, может при вызове иметь различный вид в зависимости от ситуации.

// Прототип функции:

void ShowInt (int i, bool Flag = true, char symbol = '\n');

// Вызовы функции ShowInt:

Showlnt(1, false, 'a');

Showlnt(2, false);

Showlnt(3);

В первом случае все три аргумента заданы явно, поэтому работа функции осуществляется в обычном режиме. Во втором вызове в функцию передается два параметра из трех, причем вместо последнего аргумента подставляется значение по умолчанию, а именно символ ' \n'. Третий вариант обращения к функции сообщает только один целочисленный параметр, а в качестве остальных аргументов используются значения по умолчанию: логическая переменная со значением true и символьная переменная со значением ' \n'.

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

Рассмотрим пример, в котором осуществляется вывод знакового числа двойной точности с указанием количества значащих символов. Другими словами, определим функцию, принимающую в качестве одного из параметров число выводимых знаков. Для решения поставленной задачи можно воспользоваться функцией возведения числа в степень pow() и функцией взятия модуля от длинного числа с плавающей точкой fabsl (), прототипы которых содержатся в заголовочном файле math. h:

#include <iostream.h>

#include <math.h>

void Out(double Numb, double Sig=l, bool Flg=true);

Соседние файлы в папке ЛекцииКарасева