- •Лабораторная работа 3 Функции
- •Примеры вызовов функций
- •Демонстрация функции без аргументов и не возвращающей значения
- •Демонстрация функции, определенной перед ее вызовом
- •Демонстрация функции с аргументами и не возвращающей значения
- •Демонстрация использования глобальных переменных при обмене данными между функциями
- •Демонстрация использования в функции локальных статических переменных
- •Передача в функцию в качестве параметра переменных разных типов Функция вычисления минимального расстояния между точками плоскости
- •Функция вычисления факториала
- •Функция вычисления хn через умножение
- •Функция определения максимального и минимального из двух чисел
- •Функция с параметром перечисляемого типа
- •Функция, выделяющая целую и дробную части вещественного числа
- •Функция, возвращающая ссылку как результат своей работы
- •Демонстрация inline-функций
- •Демонстрация функции с параметрами по умолчанию
- •Перегрузка функций
- •Перегрузка функций с равным числом аргументов
- •Перегрузка функций с разным числом аргументов
- •Шаблоны семейства функций
- •Рекурсивные функции
- •Рекурсивная функция вычисления факториала
- •Рекурсивная функция вывода на печать символов строки в обратном порядке
- •Рекурсивная функция печати числа в виде строки символов
- •Вычисление нод через итерации и через рекурсивную функцию
- •Вычисление интеграла по методу правых прямоугольников
- •Использование одинаковых вызовов функции для вычисления интеграла разными методами и для разных функций
- •Использование при вычислении интеграла многофайловой компиляции
- •Вычисление корня нелинейного уравнения
- •Правила оформления и вызова функций
- •Элементы оптимизации работы с функциями
Демонстрация функции без аргументов и не возвращающей значения
void starline(); //прототип функции
int main()
{
starline(); //вызов функции
cout << "Data type Range" << endl;
starline(); //вызов функции
cout << "char -128 to 127" << endl
<< "short -32,768 to 32,767" << endl
<< "int System dependent" << endl
<< "long -2,147,483,648 to 2,147,483,647" << endl;
starline(); //вызов функции
_getch();
return 0;
}
//--------------------------------------------------------------
// определение функции
void starline() //заголовок функции
{
for(int j=0; j<45; j++) //тело функции
cout << '*'; //функция всегда выводит на экран 45 символов «звездочка»
cout << endl;
}
Результаты работы:
*********************************************
Data type Range
*********************************************
char -128 to 127
short -32,768 to 32,767
int System dependent
long -2,147,483,648 to 2,147,483,647
*********************************************
Демонстрация функции, определенной перед ее вызовом
//нет прототипа функции !!!
//--------------------------------------------------------------
void starline() //определение функции перед ее вызовом в функции main
{
for(int j=0; j<45; j++)
cout << '*';
cout << endl;
}
//--------------------------------------------------------------
int main()
{
starline(); //вызов функции
cout << "Data type Range" << endl;
starline(); //вызов функции
cout << "char -128 to 127" << endl
<< "short -32,768 to 32,767" << endl
<< "int System dependent" << endl
<< "long -2,147,483,648 to 2,147,483,647" << endl;
starline(); //вызов функции
_getch();
return 0;
}
Демонстрация функции с аргументами и не возвращающей значения
void repchar(char, int); //прототип функции
int main()
{
repchar('-', 43); //вызов функции
cout << "Data type Range" << endl;
repchar('=', 23); //вызов функции с другими аргументами
cout << "char -128 to 127" << endl
<< "short -32,768 to 32,767" << endl
<< "int System dependent" << endl
<< "double -2,147,483,648 to 2,147,483,647" << endl;
repchar('-', 43); //вызов функции
_getch();
return 0;
}
//--------------------------------------------------------------
// определение функции
void repchar(char ch, int n) //заголовок функции
{
for(int j=0; j<n; j++) //тело функции
cout << ch;
cout << endl;
}
Результаты работы:
-------------------------------------------
Data type Range
=======================
char -128 to 127
short -32,768 to 32,767
int System dependent
long -2,147,483,648 to 2,147,483,647
-------------------------------------------