|
21 / 21 / 4
Регистрация: 30.01.2011
Сообщений: 119
|
|||||||
Секундомер30.01.2011, 04:49. Показов 11137. Ответов 8
Метки нет (Все метки)
Подскажите исходный код программы для секундомера без всяких кномок без никакого графического интерфейса самый просмотой на языке C++ Builder
0
|
|||||||
| 30.01.2011, 04:49 | |
|
Ответы с готовыми решениями:
8
Timer(Секундомер) |
|
|
||||||
| 30.01.2011, 05:21 | ||||||
|
Timer(Секундомер) <- используете понравившееся из предоставленного ->
Пример программы
Описание программы
Это приложение выполняет функции секундомера. При этом возможен выбор шага, с которым производятся измерения - секунда, одна десятая или одна сотая секунды. При нажатии соответствующих кнопок выполняется запуск/приостановка отсчета, сброс времени на ноль (если отсчет был запущен, то он продолжится, но уже начиная с нулевого значения), выход из приложения. При смене величины шага расчет останавливается, время сбрасывается на ноль. Никаких особых идей в базовой версии программы не используется, только простейшая работа с компонентами. Используются следующие компоненты: Button, Edit, RadioButton, Timer. Расположение компонентов на форме Свойства компонент, измененные по сравнению со стандартными Button1: Caption: "Старт" Button2: Caption: "Сброс" Button3: Caption: "Выход" Edit1: Text: "0" RadioButton1: Caption: "1 секунда" Checked: true RadioButton2: Caption: "0,1 секунды" RadioButton3: Caption: "0,01 секунды" Код программы
У программы, код которой приведен здесь, есть недостаток, заключающийся в том, что время в ней отображается исключительно в секундах, а перевод в формат часы-минуты-секунды не реализован. Конечно, это не будет иметь особого значения когда вы только пишете программу и делаете тестовый запуск - если вы не заняты нечем другим, то смотреть на секундомер несколько минут не отрываясь вы все равно не будете. Однако если вы уже написали программу, зашли на кухню, поставили вариться пельмени и щелкнули по кнопке "Старт", желая не пропустить момент готовности, то информация о том, что ваш ужин варится уже 1024,32 секунды может вас изрядно озадачить. Поэтому дописать функцию для внятного отображения времени будет полезно для практического использования. Прежде всего необходимо определить три переменные типа int - назовем их hours, minuts, seconds (да, секунды тоже будут целым числом, а почему - сказано чуть ниже). Затем с помощью несложных арифметических действий из числа секунд получаются отдельно число часов, минут и секунд. Округление при этом производится функцией floor из библиотеки math. После чего остается лишь преобразовать три отдельных числа в пригодную для вывода строку. Выглядит это следующим образом: Edit1 -> Text = AnsiString(hours) + ":" + AnsiString(minuts) + ":" + AnsiString(seconds); AnsiString - строковой тип (точнее - класс), а AnsiString() - функция-конструктор, возвращающая значение типа AnsiString на основании переданных аргументов. Оператор сложения в данном случае означает объединение двух или более строк. Вставив соответствующий код в функцию Timer1Timer, получаем то, что хотели - вывод будет производить в формате чч:мм:сс. Теперь о том, почему же секунды должны содержаться в целой переменной. Во-первых, не настолько уж часто вам вообще могут понадобиться доли секунды, и если уж имеет смысл выводить минуты, а то и часы, то вряд ли на таких масштабах одна сотая секунды будет важна. Во-вторых, и это здесь главное - при маленьких значениях шага время выполнения программой инструкций, указанных в функции таймера, становится сравнимыи с величиной этого шага, что может внести существенные поправки и, следовательно, значительно повлиять на точность измерения.
1
|
||||||
|
1 / 1 / 1
Регистрация: 29.08.2013
Сообщений: 48
|
||||||
| 25.09.2013, 15:03 | ||||||
|
почему так не сделать? на мой взгляд намного проще
на форму кидаем кнопку и эдит. Жмем дважды по кнопке и прописываем.
0
|
||||||
|
Волшебник
65 / 64 / 7
Регистрация: 21.11.2009
Сообщений: 319
|
||
| 25.09.2013, 17:40 | ||
Хотя оно и будет работать, но так нельзя писать)А вот если когда нибудь вам понадобиться использовать очень точный таймер, то есть еще мультимедийные таймеры. Они в отличии от простого таймера (TTimer), который может работать с минимальным интервалом 15 миллисекунд, мультимедийный может обеспечить до 1 миллисекунды.
0
|
||
|
|
|
| 25.09.2013, 22:39 | |
|
Как показывает практика, минимальный рабочий интервал у TTimer где-то около 50 мс, а вовсе не то, что заявлено в справке. Плюс к этому количество одновременно работающих таймеров в системе ограничено, а высокая нагрузка на систему может привести к задержкам или пропускам сообщений WM_TIMER. Вот мультимедийные - это вещь.
![]() Кирилл2100, ты отвечаешь на вопрос почти трехлетней выдержки. Это не то, чтобы порицается, но и не приветствуется. Даже иногда обзывают некропостингом это дело.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||
| 25.09.2013, 23:06 | ||
|
0
|
||
|
27 / 20 / 1
Регистрация: 26.02.2013
Сообщений: 135
|
||||||
| 26.09.2013, 07:09 | ||||||
|
Нашел очень интересный вариант минимальной работающей программы, по работе с таймером. Как программа-секундомер, она работает неплохо, при этом на форму ничего кидать не надо. В моем примере есть две кнопки, но они - чисто для демонстрации.
0
|
||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 26.09.2013, 10:20 | |
|
Действительно, занятная штучка. Я попробовал в функцию CallBack вставить модификацию трэкбара (на некоторых других контролах сваливает на эксцэпшн...) и уже на его изменение - вывод на лэйбл, и получился неплохой секундомер.
0
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 26.09.2013, 10:53 | ||||||
|
вот такая игрушка получилась...
Кликните здесь для просмотра всего текста
0
|
||||||
| 26.09.2013, 10:53 | |
|
Помогаю со студенческими работами здесь
9
Секундомер с базой данных Двухпоточный секундомер Простой секундомер. На Button1 запускается, на Button2 сбрасывается. Аналоговый секундомер Секундомер(и только секундомер). Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|