Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Функции стандартной библиотеки

Функции

Описание (определение) функции содержит заголовок и тело функции.

Вид заголовка:

<тип_возвращаемого_значения> <имя_функции> (<список параметров>)

Тело: { <операторы тела функции> }

Если функция имеет возвращаемое значение, то функция содержит хотя бы один оператор return <выражение>;

Если функция не имеет возвращаемого значения, то есть имеет тип void, для выхода из функции при необходимости может быть использован оператор return;, который обычно отсутствует.

Параметры функции

Передача по значению: в стек заносятся копии значений аргументов (фактических параметров).

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

Передача параметра по ссылке:

<имя_типа> & <имя_параметра> (как var в языке Паскаль)

Пример 1. Функция вычисления суммы двух целых чисел.

int Sum(int a,int b)

{return a+b;}

Пример 2. Функция сравнения двух целых чисел.

bool Eq(int a,int b)

{return a==b;}

Пример 3. Функция обмена значениями двух переменных:

void Swap(int &a, int &b)

{ int c;

c=a; a=b; b=c;

}

Возможно использование модификатора const запрета изменения внутри функции.

Оператор прототипа (объявление функции)

Прототип описывает компилятору интерфейс функции. Он сообщает компилятору тип возвращаемого значения функции, а также количество и типы аргументов. Компилятор получает возможность:

– правильно обрабатывать возвращаемое значение функции;

– следить за числом аргументов функции;

– контролировать применение корректных типов данных для аргументов функции.

Прототип функции является оператором, поэтому он должен завершаться точкой с запятой.

Примеры операторов прототипа:

int Sum(int a,int b);

void Swap(int &a, int &b);

В прототипе можно опускать имена переменных, вполне достаточно списка типов:

int Sum(int, int);

void Swap(int &, int &);

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

!!! Сигнатура функции – прототип без указания типа функции.

Пример 4. Вычислить y=max (a, b)

 


#include <iostream.h>

using namespace std;

int max(int a, int b)

{ if (a > b) return a;

else return b;

}

int main()

{ int a, b, y;

cin >> a >> b;

y=max(a, b);

cout << "\ny="

<< y<<'\n';

return 0;

}

#include <iostream.h>

using namespace std;

int max(int, int);

int main()

{ int a, b;

cin >> a >> b;

cout << "\nmax="

<< max(a, b)<<'\n';

return 0;

}

int max(int a, int b)

{

return (a > b)? a:b;

}


 

Рекурсивные функции

Пример 5. Функция вычисления значения факториала.


long fact (long n)

{if (n==0 || n==1)

return 1;

return n*fact(n-1);

}

long fact (long n) {

return(n>1)? n*fact(n-1):1;

}

 


Рекурсивные функции

Пример 6. Вычислить


void SumRec(int n,float &S)

{

if (n==1) S=1;

else

{ SumRec(n-1,S);

S+=1.0/n;

}

}

 

 

float SumRec(int n)

{

if (n==1) return 1;

return SumRec(n-1)+1.0/n;

}

 


 

Функции стандартной библиотеки

В стандартной библиотеке находятся определения типов, констант, макросов и функций.

Для использования с помощью директивы #include в исходный текст программы включаются заголовочные файлы, в которых находятся соответствующие объявления.

Сами функции подключаются на этапе компоновки.

Заголовочные файлы Функции
<math.h> (<cmath>) математические функции
<string.h> работа со строками в стиле C

и другие

 

int abs(int i) абсолютное значение i

double fabs(double x) абсолютное значение x

 



<== предыдущая лекция | следующая лекция ==>
 | Сущность и функции психолого-педагогического сопровождения детей-сирот
Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 302 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Стремитесь не к успеху, а к ценностям, которые он дает © Альберт Эйнштейн
==> читать все изречения...

2223 - | 2171 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.