Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.94
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
#1

Секундомер. - C++

02.05.2011, 15:25. Просмотров 4678. Ответов 32
Метки нет (Все метки)

Знаю подобные темы уже рассматривались на форуме, но ни в одной из них я не нашел ответа мой вопрос...
Как организовать секундомер что бы он начал счет в конкретный момент выполнения программы и закончил считать в нужный момент, записав результат в переменную ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2011, 15:25     Секундомер.
Посмотрите здесь:

Секундомер C++
C++ Секундомер (или часы)
секундомер C++
Секундомер с выводом на экран C++
Секундомер C++
C++ Секундомер на С++
Секундомер и thread-safe C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.05.2011, 15:30     Секундомер. #2
C++
1
2
3
4
5
6
7
#include <ctime>
 
//...
const clock_t start = clock();
// Действи которое хотите измерить
const double duration = static_cast<double>(clock() - start) / CLOCKS_PER_SEC;
//...
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 15:32  [ТС]     Секундомер. #3
А можно с комментариями ?
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.05.2011, 15:51     Секундомер. #4
Цитата Сообщение от pSychOo Посмотреть сообщение
А можно с комментариями ?
Ага: http://www.cplusplus.com/reference/c...y/ctime/clock/
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:06  [ТС]     Секундомер. #5
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.05.2011, 16:09     Секундомер. #6
Цитата Сообщение от pSychOo Посмотреть сообщение
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
Ага и что ?
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,650
02.05.2011, 16:11     Секундомер. #7
Цитата Сообщение от pSychOo Посмотреть сообщение
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
Дорогой, перед тобой не выделываются, а дают информацию. Которую, вообще-то ты должен был нарыть самостоятельно...
Так что прочитай, и задай конкретный вопрос, что непонятно.
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:15  [ТС]     Секундомер. #8
Цитата Сообщение от asics Посмотреть сообщение
C++
1
2
3
4
5
6
7
#include <ctime>
 
//...
const clock_t start = clock();
// Действи которое хотите измерить
const double duration = static_cast<double>(clock() - start) / CLOCKS_PER_SEC;
//...
Мне непонятно все! Объясни пожалуйста что здесь за все отвечает.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.05.2011, 16:18     Секундомер. #9
Цитата Сообщение от pSychOo Посмотреть сообщение
Объясни пожалуйста что здесь за все отвечает.
Я дал ссылку, там все описано, а то что Вы это не понимаете - ваши проблемы.
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,650
02.05.2011, 16:26     Секундомер. #10
Цитата Сообщение от pSychOo Посмотреть сообщение
Мне непонятно все! Объясни пожалуйста что здесь за все отвечает.
Это говорит о том, что вы ВООБЩЕ НЕ ЧИТАЛИ книжек по С/С++.
#include <ctime> понятно?
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:33  [ТС]     Секундомер. #11
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Это говорит о том, что вы ВООБЩЕ НЕ ЧИТАЛИ книжек по С/С++.
#include <ctime> понятно?
Все что мне понятно в этой строке, это то, что она подключает библиотеку "citime". За что она отвечает я не в курсе, так как ни разу не доводилось использовать в программах секундомер...

Добавлено через 2 минуты
Цитата Сообщение от asics Посмотреть сообщение
Я дал ссылку, там все описано...
Там описана программа реализации таймера, и ничего того, что давало бы ответ на мой вопрос!
Если считаешь что твое высокомерие мои проблемы, то будь так добр, не трать мое время...
Жека_
Заблокирован
02.05.2011, 16:35     Секундомер. #12
смотри может это подойдет. его только немного доделать надо
Вложения
Тип файла: rar SEKYNDOM.rar (947 байт, 47 просмотров)
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.05.2011, 16:36     Секундомер. #13
Цитата Сообщение от pSychOo Посмотреть сообщение
Если считаешь что твое высокомерие мои проблемы, то будь так добр, не трать мое время...
Будет зделано, гражданин начальник!
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,650
02.05.2011, 16:37     Секундомер. #14
Цитата Сообщение от pSychOo Посмотреть сообщение
Все что мне понятно в этой строке, это то, что она подключает библиотеку "citime". За что она отвечает я не в курсе, так как ни разу не доводилось использовать в программах секундомер...
Поскольку у вас интернет работает, можно залезть на сайт MSDN и там прочитать все...
ctime - это библиотека функций для работы со временем.
clock() - это одна из функций. Которая Returns the number of clock ticks elapsed since the program was launched - возвращает количество тиков, прошедших с момента запуска программы.
То есть, дважды вызвали clock()? потом отняли от второго первое - получили количество тиков между вызовами. И делим на константу CLOCKS_PER_SEC specifies the relation between a clock tick and a second (clock ticks per second) - количество тиков в секунду.
pSychOo
-122 / 3 / 1
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:47  [ТС]     Секундомер. #15
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
ctime - это библиотека функций для работы со временем.
clock() - это одна из функций. Которая Returns the number of clock ticks elapsed since the program was launched - возвращает количество тиков, прошедших с момента запуска программы.
То есть, дважды вызвали clock()? потом отняли от второго первое - получили количество тиков между вызовами. И делим на константу CLOCKS_PER_SEC specifies the relation between a clock tick and a second (clock ticks per second) - количество тиков в секунду.
Спасибо за пояснение. Пока вроде все понятно, возможно появятся дополнительные вопросы после того как попробую это реализовать в своей программе, но там думаю уже сам смогу разобраться.
Студент_игорь
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 24
02.05.2011, 17:36     Секундомер. #16
asics, написал, как вы предложили:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <ctime>
 
using namespace std;
 
void Prime (int n)
{
    bool f = true;
    int d = 2;
    while ((d <= n) && (f))
    {
        if (n % d == 0)
            f = false;
        d++;
    }
    cout << f << endl;
}
 
int main()
{
    const clock_t start = clock();
    Prime(9999999);
    const float duration = static_cast<float>(clock() - start) / CLOCKS_PER_SEC;
 
    cout << duration << endl;
    system("Pause");
    return 0;
}
но это ничего не дало, никакого результата... Нужно чтобы выдало время, затраченное на выполнения алгоритма, в данном случае - это проверка на простоту числа (специально не оптимизированный)...
Что исправить?
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,650
02.05.2011, 17:41     Секундомер. #17
А что выдает-то? Ноль?
Просто комп очень быстрый.
Нужно вызов Prime() поставить в цикле раз миллион примерно...
Тогда и увидишь разницу...
Студент_игорь
0 / 0 / 0
Регистрация: 13.03.2011
Сообщений: 24
02.05.2011, 17:45     Секундомер. #18
ValeryLaptev, ну хотя бы миллисекунды выдал... Секунды - это слишком!

Добавлено через 2 минуты
Поставил до 1 миллиона, он выдал, 0.007. Это и есть миллисекунды, я так понимаю! да?
ValeryLaptev
Эксперт С++
1029 / 808 / 48
Регистрация: 30.04.2011
Сообщений: 1,650
02.05.2011, 17:48     Секундомер. #19
Цитата Сообщение от Студент_игорь Посмотреть сообщение
ValeryLaptev, ну хотя бы миллисекунды выдал... Секунды - это слишком!

Добавлено через 2 минуты
Поставил до 1 миллиона, он выдал, 0.007. Это и есть миллисекунды, я так понимаю! да?
Да. Поставь миллиард...
И еще сюда входит время выполнения самого цикла.
Чтобы отнять, надо аналогично обмерить пустой цикл - без вызова prime() - и отнять из цикла с вызовом. Тогда совсем хорошо будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2011, 18:05     Секундомер.
Еще ссылки по теме:

C++ секундомер
Секундомер C++
C++ секундомер или таймер
C++ Скиньте простой секундомер для С++
Секундомер C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Жека_
Заблокирован
02.05.2011, 18:05     Секундомер. #20
а не пробывали ставить задержку
C++
1
2
3
4
#include<dos.h>
....
delay(1000); или Sleep(1000);//1 секунда
....
Yandex
Объявления
02.05.2011, 18:05     Секундомер.
Ответ Создать тему
Опции темы

Текущее время: 14:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru