Лекции.Орг


Поиск:




Категории:

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

 

 

 

 


Int sgr_of_power(int x, int n)




{   //вычисление x в степени n многократным умножением

       if (n==2) //предполагается, что чаще всего требуется x в квадрате

                   return x * x;

       else  // рекурсивный вызов sgr_of_power

                   return (x * sgr_of_power(x, n-1));

}

Библиотечные функции

 

При разработке программ широко применяются функции стандартных библиотек С++.

Каждая стандартая библиотека имеет соответствующий заголовочный файл, содержащий прототиы всех функций библиотеки и объявления различных типов данных и консант, которые используются этитми функциями. Примеры заголовочных файлов приведены в таблице 2.1.

 

Таблица 2.1 Примеры заголовочных файлов стандартных библиотек С++

Заголовочный файл Пояснение
< cmath > Математические функции.
< cstdlib > Функции для преобразования чисел в текст, текста в числа, генерации случайных чисел и другие функции.
< cstring > Функции обработки строк (в стиле языка С).
< cctype > Функции проверки на принадлежность символа множеству.
<с time > Функции для работы с временем и датами

 

Пример 2_5_1. Генерация случайных чисел

#include <cstdlib>

#include <iostream>

using std::endl;

using std::cout;

 

Int main()

{

       for (int i =0; i <=20; ++ i)

       cout<<(1 + rand()%6)<<endl; // генерация чисел в диапазоне от 1 до 6:

                                                                  // rand() генерирует целое число в диапазоне

                                                                  // от 0 до RAND_MAX(не менее 32767)

       system("pause");

       return 0;

}

 

Пример 2_5_2. Определение текущего времени

#include <ctime>

#include <iostream>

using std::endl;

using std::cout;

 

Int main()

{

time_t system_time = time(NULL); // здесь NULL – «нулевой» параметр

cout<<"System time: "<<ctime (&system_time)<<endl;

       system("pause");

       return 0;

}

 

Результат работы:

 

 

Перегрузка и шаблоны функций

 

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

 

Пример 2_6_1. Перегрузка функций расчета квадрата переменной

#include <iostream>

using std::endl;

using std::cout;

 

int   square(int x){ return x * x;}

double square(double y){ return y * y;}

Int main()

{

       cout<<" Квадрат целого числа     7 = " <<square(7) <<endl;

       cout<<"Квадрат вещественного числа 7.5 = "<<square(7.5)<<endl;

       system (" pause ");

       return 0;

}

 

При вызове square (7) будет обращение к функции int square (int x) и вывод значения 49. Во втором вызове обращение к функции double square (double y) и вывод значения 56.25.

 

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

Пример 2_6_2. Шаблон функции расчета квадрата переменной

#include <iostream>

using std::endl;

using std::cout;

 

template <typename T>                         // определение шаблона функции

T square(T value){ return value * value;} // с параметром типа T

 

Int main()

{

       cout<<" Квадрат целого числа     7 = " <<square(7) <<endl;

       cout<<"Квадрат вещественного числа 7.5 = "<<square(7.5)<<endl;

       system (" pause ");

       return 0;

}

 

Когда компилятор обнаруживает вызов функции square в исходном тексте программы, тип данных переданный в функцию подставляется вместо типа T в определение шаблона, и компилятор создает функциию square для переданного типа данных. После этого заново созданная функция компилируется. Таким образом шаблон, в действительности, является средством генерации кода.

 

Задания для самостоятельной работы

 





Поделиться с друзьями:


Дата добавления: 2018-10-14; Мы поможем в написании ваших работ!; просмотров: 322 | Нарушение авторских прав


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

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

Надо любить жизнь больше, чем смысл жизни. © Федор Достоевский
==> читать все изречения...

3625 - | 3271 -


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

Ген: 0.008 с.