0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 4
|
|
1 | |
Создание секундомера с SimpleGUI30.09.2014, 10:26. Показов 4407. Ответов 8
Метки нет (Все метки)
1. Создайте таймер с интервалом срабатывания 0.1 секунды, обработчик которого будет
увеличивать целое число, хранящееся в глобальной переменной. Это число будет отслеживать время. Не забывайте, что функции create_timer() время задаётся в миллисекундах (1мс – одна тысячная секунды). Проверьте, что таймер работает правильно, печатая значение переменной времени в консоли. Не используйте для хранения времени числа с плавающей точкой. Скорее всего, такой вариант можно будет заставить работать, но только с приложением больших усилий на борьбу с погрешностями. Храните время с помощью целого числа, например 12 = 1.2 секунды. 2. Напишите обработчик рисования, который отобразит время в виде числа в центре холста. Пока не задумывайтесь о красивом форматировании, просто используйте str() чтобы преобразовать число в строку и вывести как есть. 3. Добавьте кнопки «Старт» и «Стоп», обработчики которых будут запускать и останавливать таймер. Затем добавьте кнопку «Сброс», которая останавливает таймер и сбрасывает время в 0. При запуске программы секундомер должен быть остановлен. 4. Напишите вспомогательную функцию format(t), которая должна возвращать строку в формате A:BC.D, где A – минуты, BС – секунды (B – цифра от 0 до 5), D – десятые доли секунд. Обратите внимание, чтобы возвращаемая функцией строка всегда содержала необходимые ведущие нули: format(0) = 0:00.0 format(11) = 0:01.1 format(321) = 0:32.1 format(613) = 1:01.3 Подсказка: используйте целочисленное деление (//) и остаток от деления (%) чтобы получить значения A,B,C и D из исходного числа. 5. Добавьте вызов функции format() в обработчик рисования, чтобы получить законченный секундомер. Дополнительные расширения: 1. Превратите секундомер в тренажер реакции. Для этого добавьте к секундомеру два счётчика, которые будут отслеживать, сколько раз секундомер был остановлен, и сколько из них его удалось остановить в ровную секунду (1.0, 2.0, 3.0 и т.д.). Значение этих счётчиков должно отображаться в верхней правой части холста в формате “x/y”, где y – общее число остановок секундомера, x – число остановок в ровную секунду. 2. Добавьте код, который не позволит увеличивать счётчики нажатием на кнопку «Стоп», если секундомер уже остановлен. Подсказка: для этого может быть полезно добавить булеву переменную, которая будет иметь значение True, если секундомер запущен, и False – если остановлен. 3. Модифицируйте обработчик кнопки «Сброс» так, чтобы он сбрасывал значения счётчиков в 0 при сбросе секундомера.
0
|
30.09.2014, 10:26 | |
Ответы с готовыми решениями:
8
Создание секундомера Создание секундомера Создание класса секундомера Создание точного секундомера |
26 / 26 / 5
Регистрация: 14.05.2014
Сообщений: 250
|
|
30.09.2014, 23:07 | 2 |
что конкретно не получается?
0
|
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
01.10.2014, 00:11 | 3 |
uppjke, Ты похоже разделом ошибся, тут помогают найти ошибку или разобраться, а просто так выполнять чужие лабы тут не будут.
Тебе в раздел по фрилансу.
0
|
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 4
|
||||||
01.10.2014, 08:02 [ТС] | 4 | |||||
0
|
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
01.10.2014, 12:23 | 5 |
Сообщение было отмечено uppjke как решение
Решение
Для форматирования строк используется метод строк format, пример есть тут http://pythonworld.ru/osnovy/f... ormat.html
0
|
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 4
|
||||||
02.10.2014, 23:09 [ТС] | 6 | |||||
В итоге получилось вот так:
0
|
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
02.10.2014, 23:40 | 7 |
uppjke, Ссылку присланную мной как вижу читать не стали, ну что же, выбор ваш.
0
|
0 / 0 / 0
Регистрация: 30.09.2014
Сообщений: 4
|
|
05.10.2014, 13:19 [ТС] | 8 |
ну как ни как всё работает идеально
0
|
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
05.10.2014, 14:02 | 9 |
Только правила хорошего тона не соблюли и выбрали не питонячий способ решения + если не ошибаюсь конкатенация строк более затратная операция чем форматирование.
0
|
05.10.2014, 14:02 | |
05.10.2014, 14:02 | |
Помогаю со студенческими работами здесь
9
Создание секундомера на JavaScript Создание секундомера на 580 эмуляторе Таймер с функцией секундомера. Создание динамического таймера М/с автономного секундомера Остановка секундомера Два секундомера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |