Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/33: Рейтинг темы: голосов - 33, средняя оценка - 4.88
pSychOo
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
1

Секундомер.

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

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

Секундомер на С++
Добрый день. Подскажите, как написать простейший консольный секундомер на с++...

секундомер
Здравствуйте госпола програмисты!У меня такой вопрос-как сделать секундомер,что...

Секундомер
Доброго времени суток. Проверьте пожалуйста программу, работающую аналогично...

Секундомер
Пытаюсь написать секундомер, только вот не знаю как остановить его по нажатию...

Секундомер
Сделал такой небольшой код, что-то на подобии теста на сколько быстро вы...

32
asics
Freelance
Эксперт С++
2857 / 1792 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
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;
//...
0
pSychOo
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 15:32  [ТС] 3
А можно с комментариями ?
0
asics
Freelance
Эксперт С++
2857 / 1792 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
02.05.2011, 15:51 4
Цитата Сообщение от pSychOo Посмотреть сообщение
А можно с комментариями ?
Ага: http://www.cplusplus.com/reference/clibrary/ctime/clock/
1
pSychOo
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:06  [ТС] 5
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
0
asics
Freelance
Эксперт С++
2857 / 1792 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
02.05.2011, 16:09 6
Цитата Сообщение от pSychOo Посмотреть сообщение
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
Ага и что ?
1
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 16:11 7
Цитата Сообщение от pSychOo Посмотреть сообщение
Я вообще то помощи прошу, а не что бы пред мной тут выделывались...
Дорогой, перед тобой не выделываются, а дают информацию. Которую, вообще-то ты должен был нарыть самостоятельно...
Так что прочитай, и задай конкретный вопрос, что непонятно.
0
pSychOo
-6 / 3 / 0
Регистрация: 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;
//...
Мне непонятно все! Объясни пожалуйста что здесь за все отвечает.
0
asics
Freelance
Эксперт С++
2857 / 1792 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
02.05.2011, 16:18 9
Цитата Сообщение от pSychOo Посмотреть сообщение
Объясни пожалуйста что здесь за все отвечает.
Я дал ссылку, там все описано, а то что Вы это не понимаете - ваши проблемы.
0
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 16:26 10
Цитата Сообщение от pSychOo Посмотреть сообщение
Мне непонятно все! Объясни пожалуйста что здесь за все отвечает.
Это говорит о том, что вы ВООБЩЕ НЕ ЧИТАЛИ книжек по С/С++.
#include <ctime> понятно?
0
pSychOo
-6 / 3 / 0
Регистрация: 16.04.2011
Сообщений: 55
02.05.2011, 16:33  [ТС] 11
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Это говорит о том, что вы ВООБЩЕ НЕ ЧИТАЛИ книжек по С/С++.
#include <ctime> понятно?
Все что мне понятно в этой строке, это то, что она подключает библиотеку "citime". За что она отвечает я не в курсе, так как ни разу не доводилось использовать в программах секундомер...

Добавлено через 2 минуты
Цитата Сообщение от asics Посмотреть сообщение
Я дал ссылку, там все описано...
Там описана программа реализации таймера, и ничего того, что давало бы ответ на мой вопрос!
Если считаешь что твое высокомерие мои проблемы, то будь так добр, не трать мое время...
0
Жека_
Заблокирован
02.05.2011, 16:35 12
смотри может это подойдет. его только немного доделать надо
1
Вложения
Тип файла: rar SEKYNDOM.rar (947 байт, 56 просмотров)
asics
Freelance
Эксперт С++
2857 / 1792 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
02.05.2011, 16:36 13
Цитата Сообщение от pSychOo Посмотреть сообщение
Если считаешь что твое высокомерие мои проблемы, то будь так добр, не трать мое время...
Будет зделано, гражданин начальник!
1
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
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) - количество тиков в секунду.
1
pSychOo
-6 / 3 / 0
Регистрация: 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 / 1
Регистрация: 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;
}
но это ничего не дало, никакого результата... Нужно чтобы выдало время, затраченное на выполнения алгоритма, в данном случае - это проверка на простоту числа (специально не оптимизированный)...
Что исправить?
0
ValeryLaptev
Эксперт С++
1050 / 829 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 17:41 17
А что выдает-то? Ноль?
Просто комп очень быстрый.
Нужно вызов Prime() поставить в цикле раз миллион примерно...
Тогда и увидишь разницу...
0
Студент_игорь
0 / 0 / 1
Регистрация: 13.03.2011
Сообщений: 24
02.05.2011, 17:45 18
ValeryLaptev, ну хотя бы миллисекунды выдал... Секунды - это слишком!

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

Добавлено через 2 минуты
Поставил до 1 миллиона, он выдал, 0.007. Это и есть миллисекунды, я так понимаю! да?
Да. Поставь миллиард...
И еще сюда входит время выполнения самого цикла.
Чтобы отнять, надо аналогично обмерить пустой цикл - без вызова prime() - и отнять из цикла с вызовом. Тогда совсем хорошо будет
0
Жека_
Заблокирован
02.05.2011, 18:05 20
а не пробывали ставить задержку
C++
1
2
3
4
#include<dos.h>
....
delay(1000); или Sleep(1000);//1 секунда
....
0
02.05.2011, 18:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2011, 18:05

Секундомер
Народ нужна помощь Задачка такая: нужно сделать Секундомер как в...

секундомер
Здраствуйте! Мне задали на практику составить программу «Секундомер»,...

секундомер или таймер
Добрый вечер, есть определённые действия, которые нельзя выполнять, пока не...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru