Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АиПА / include / algraph.doc
Скачиваний:
16
Добавлен:
07.02.2016
Размер:
582 Кб
Скачать
☆

2.2. Системные функции и макрооперации

void runtimer();

float timer();

Эта пара функций обслуживает таймер, который может использоваться для измерения промежутков времени. Процедура runtimer осуществляет сброс и пуск таймера. Функция timerвозвращает текущее значение таймера в секундах. Точность измерения времени определяется частотой прерываний, которые генерируются системным таймером компьютера. Получить значение этой частоты можно прочитав системную переменнуюCLK_TCK.

Пример:

#include <syst.h>

void main()

{ float t;

runtimer();

printr("Сделайте паузу и нажмите ENTER\n");

pause;

t=timer();

printf("timer = %5.2f sec \n",t);

}

void set_cpu_fr();

Процедура определения тактовой частоты процессора и установки значения системной переменной CPU_Frequency. По умолчанию значение CPU_Frequency равно 2600 Мгц. Время измерения 10 с, относительная погрешность измерения тактовой частоты равна 0.025% .

void runstimer();

unsigned long stimer();

Функции микросекундного таймера: процедура runstimer осуществляет сброс и пуск таймера, функцияstimerвозвращает текущее значение таймера в микросекундах. Для того, чтобы таймер давал правильные значения, в программе необходимо предусмотреть установку тактовой частоты применяемого процессора (глобальная переменная CPU_Frequency, частота записывается в МГц, значение по умолчанию равно 2600 МГц).

При использовании функций микросекундного таймера в программе должно быть записано определение

#define _STIMER_

разрешающее компиляцию функций runstimer и stimer .

char* rdate();

char* rtime();

Эта пара функций возвращает указатель на строку, которая представляет текущие дату и время в украинском формате и в компактной форме.

void swp(Type& a, Type& b);

Процедура парного обмена: переменные a,bменяются значениями.

int cmp(int nx, int ny, Type* x, Type* y);

Лексикографическое сравнение двух массивов, nx,ny- размеры сравниваемых массивов.

void errhalt(bool ex, char* mes);

void errhalt(bool ex, char* mes, FILE* f);

Простейшее средство обработки исключения: если ex==true, на экран или в файл выводится сообщениеmesи работа программы завершается. Например, если некоторая величинаxотрицательна, требуется завершить программу аварийно с выдачей сообщения "Величинаxотрицательна!". Соответствующий оператор будет иметь такой вид:

errhalt( x < 0, "Величина х отрицательна!");

Для записи текста сообщения можно использовать кириллицу.

char* about_syst();

Возвращает указатель на строку, которая содержит информацию о разработчике модуля syst.h.

2.3. Операции ввода/вывода

void flushkey();

Процедура выполняет гашение буфера клавиатуры.

char getkey();

Функция возвращает символ нажатой клавиши, нажатой после момента ее вызова.

char getskey();

При каждом вызове этой функции из буфера клавиатуры извлекается очередной символ, который и возвращается функцией. Если буфер пустой, функция ожидает нажатия клавиши. Функция используется для ввода символа нажатой клавиши с эхо-отображением. Пример:

#include <syst.h>

void main()

{ int i;

char x[5];

for (i=0;i<5;i++) x[i]=getskey(); // ввод символов с клавиатуры

printf("\n"); // с эхо-отображением

for (i=0;i<5;i++) printf("%c ",x[i]); // вывод символов на экран

printf("\n");

pause;

}

int getyes();

Функция ожидает нажатия одной из клавиш: <y>, <Y>, <n>, <N> . После нажатия клавиш <n> или <N>она возвращает 0, если нажата клавиша <y> или <Y> функция возвращает 1.

int getline(istream& in, string& s);

Извлекает очередную строку из потока inи размещает ее в полеs. При неуспешном чтении строки функция возвращает 0, при успешном - 1.

void rewind(ifstream& f);

Процедура устанавливает указатель потока fв начало.

ulong numstr(ifstream& fin);

Функция возвращает число строк текста в потоке fin.

FILE* rfopen(char* fn);

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

void binprint(Type x)

Процедура выводит двоичный код значения x на экран. Type - целочисленный тип.

Пример:

#include <syst.h>

void main()

{ ulong a;

printf("a= "); scanf("%lx",&a); // ввести число в 16-ричном формате

binprint(a); puts(""); // бинарный код выводится на экран

}

void biread(FILE* f, Type& x);

void biwrite(FILE* f, Type& x);

Процедура bireadвыполняет чтение объектаxиз бинарного файла, процедураbiwrite- запись в бинарный файл.

void printr(char* S, FILE* f=stdout);

Выводит на экран (по умолч.) или в файл fстрокуSс коррекцией символов кириллицы.

void temprint(Type& A);

Вывод на экран элементов структуры STLпо итератору.

void endline(FILE* f, char* text);

Эта процедура выводит в файл fинформационную строку, которая содержит такую информацию: значение параметраtext, имя соответствующегоcpp-файла, текущие дата и время. Такого рода строку удобно планировать в начале или в конце протокола вывода программы. Для вывода сообщения на экран, можно использовать имя стандартного устройства выводаstdout.

Пример:

#include <syst.h>

void main()

{ FILE* f= fopen("myfile.out","w");

endline(f,"Пинчук В.П."); // вывод инф.строки в файл myfile.out

endline(stdout," Пинчук В.П."); // вывод инф. строки на экран

fclose(f);

}

Программа выводит информационную строку следующего вида:

Пинчук В.П., 07.01.2004, 17:34, endline.cpp

Соседние файлы в папке include