В.П. Пинчук. Библиотека VP / C++ . Модуль syst.h.
Запорожье, 2009. vpinchuk@zntu.edu.ua
1. Общие сведения
2. Ввод/вывод и операции с файлами
3. Математические функции
4. Комбинаторика
5. Интерполяция и аппроксимация
6. Получение случайных чисел
7. Измерение времени
8. Парный обмен, сортировка, поиск, текущие время и дата
9. Обработка особых ситуаций
Приложение. Алфавитный указатель функций и определяемых имен модуля syst.h.
1. Общие сведения
Библиотечный модуль syst.h представляет собой расширение стандартной библиотеки С++ для тех, кто занимается проблемным программированием (обработка данных, научные и инженерные расчеты, компьютерное моделирование и т.п.).
В отличие от стандартных заголовочных файлов, файл syst.h содержит полные определения функций и процедур, а не только их прототипы, что соответствует политике предоставления программных компонентов с открытым кодом.
Для удобной работы с файлом syst.h, его желательно разместить в подкаталоге INCLUDE системы программирования Borland C++ 5.x.. Кроме того при использовании функций микросекунд-ного таймера в папку BIN необходимо поместить файл ассемблерного компилятора tasm32.exe из пакета TASM 5.0.
Модуль syst.h подключается обычной директивой включения
#include <syst.h>
При этом расширение .h можно опустить:
#include <syst>
В определениях некоторых функций и процедур модуля syst.h используются шаблоны. Далее, при описании таких функций для обозначения произвольного типа используется слово Type.
В модуле syst.h предусмотрено подключение ряда наиболее часто используемых стандартных библиотечных модулей. Ниже приведен фрагмент текста файла syst.h, который выполняет такие подключения.
#include <dos.h> // системные функции
#include <stdio.h> // функции ввода/вывода
#include <stdlib.h> // стандартные функции
#include <conio.h> // консольный ввод/вывод
#include <time.h> // операции со временем
#include <math.h> // математические функции
#include <string> // работа со строками STL
#include <fstream.h> // работа с потоками
Для расширения пространства имен для работы с библиотекой шаблонов STL используется директива:
using namespace std;
Файл syst.h содержит также ряд макроопределений #define:
pi - константа . Это имя действует наряду с системным именем этой константы M_PI , которое определено в стандартном библиотечном модуле math.h . Значение этой контанты (также, как и других) представлено с точностью, соответствующей вещественному типу long double;
ln(x) - более привычное имя функции - натурального логарифма (системное имя log(x));
lg(x) - логарифм десятичный (то же, что и log10(x));
tg(x) - тангенс (то же, что и tan(x)).
pause - макроопределение, создает паузу до нажатия произвольной клавиши. Его удобно использовать, например, при отладочных пусках программы из инструментальной оболочки для удержания рабочего экрана после завершении работы программы.
С помощью оператора typedef определены более короткие имена (byte, word, uint, ulong) для целых беззнаковых типов:
typedef unsigned char byte;
typedef unsigned short word;
typedef unsigned int uint;
typedef unsigned long ulong;
Глобальная переменная
double CPU_Frequency = 2600;
используется функцией stimer (микросекундный таймер). Для правильной работы этой функции в программе необходимо предусмотреть присвоение глобальной переменной CPU_Frequency значения фактической тактовой частоты используемого процессора (в МГц).
Константа
const ulong RAND_MAXL = 0x80000000;
используется для генерации случайных чисел с плавающей точкой (функции random, frand).
Гдобальная переменная
clock_t START_TIME;
используются функциями таймера runtimer и timer.