#include <iostream.h>
#include <conio.h>
#include <time.h>
void print(double);
void main()
{
double a, b, x;
cout<<"Kogda hotite - zhmite Enter!"<<endl;
a = (double) clock();
getch();
b = (double) clock();
x = (double) (b-a)/CLOCKS_PER_SEC;
cout<<"Pro6lo vremeni "<<x<<endl;
cout<<x*CLOCKS_PER_SEC<<endl;
print(x);
}
void print(double t)
{
clock_t b;
int n = 0;
b = t*CLOCKS_PER_SEC;
cout<<"Cikl dlitsya ukazannoe vremya"<<endl;
for (;2*b != clock();)
{
}
cout<<"Zaverseno"<<endl;
}
Функция clock() библиотеки time.h
Цитата:
Библиотека ANSI содержит функцию clock () со следующим описанием:
#include <time.h>
clock_t clock (void);
Здесь clock_t – тип данных, определенный в файле time.h. Функция возвращает процессорное время в единицах, которые зависят от реализации языка. (Если процессорное время недоступно или не может быть представлено, функция возвращает значение -1.) Однако в файле time.h также определена константа СLOCKS_PER_SEC, которая представляет количество единиц процессорного времени в секунде. Следовательно, в результате деления разницы между двумя возвращаемыми значениями функции clock () на константу CLOCKS_PER_SEC получается количество секунд, прошедшее между двумя вызовами функции. Приведение значений к типу double до операции деления позволит получать результат в долях секунды. Напишите функцию, которая принимает аргумент типа double, представляющий промежуток времени, а затем выполняет цикл до истечения указанного периода времени. Напишите простую программу для тестирования этой функции.
#include <time.h>
clock_t clock (void);
Здесь clock_t – тип данных, определенный в файле time.h. Функция возвращает процессорное время в единицах, которые зависят от реализации языка. (Если процессорное время недоступно или не может быть представлено, функция возвращает значение -1.) Однако в файле time.h также определена константа СLOCKS_PER_SEC, которая представляет количество единиц процессорного времени в секунде. Следовательно, в результате деления разницы между двумя возвращаемыми значениями функции clock () на константу CLOCKS_PER_SEC получается количество секунд, прошедшее между двумя вызовами функции. Приведение значений к типу double до операции деления позволит получать результат в долях секунды. Напишите функцию, которая принимает аргумент типа double, представляющий промежуток времени, а затем выполняет цикл до истечения указанного периода времени. Напишите простую программу для тестирования этой функции.
В общем написал я прогу, пройденное время находит нормально. Но не могу подобрать никакого цикла, чтобы происходил указанное время. Первый раз прога запускается, цикл кое-как срабатывает, а в последующие разы цикл как будто длится бесконечно. Что лучше использовать для тестирования прошедшего времени?
Код:
ставь знак <, вместо !=.
Для точного профайлинга времени используй