Другие языки программирования и технологии

Программирование,Сделать программу - таймер. Задаётся задержка срабатывания в минутах и секундах.

Сделать программу - таймер. Задаётся задержка срабатывания в минутах и секундах. На экране отображается убывающий счётчик таймера. По окончании срабатывает звуковой сигнал. Предусмотреть досрочный выход из программы по нажатию любой кнопки на клавиатуре.(в паскале)
500 р.
Альберт Арсланов
Альберт Арсланов
25 006
Лучший ответ
for ($k=0;$k -lt $Args[0]; $k++) {
Clear-Host
$tm=$Args[0] - $k
$sec = $tm%60
$mn=[int](($tm - $sec)/60.)
$mn.ToString('00')+':'+$sec.ToString('00')
Start-Sleep -Seconds 1
}
[console]::beep(2000,500)
Олег Новиков
Олег Новиков
59 757
Предусмотреть бюджет задания, чтобы о чем-то начать разговор.
Значит так. такую программу можно сделать разными путями и какие-то из них будут более хорошие а какие-то менее.
На первой стадии вам нужно принять от пользователя строку со временем и произвести ее разбор и анализ на предмет возможного мусора. Т. е из строки вида "чч: мм: сс" вам надо выделить поля часов, минут и секунд. Причем разумно считать, что если в строке нет двоеточия, то это секунды, если есть одно двоеточие то это секунды и минуты и если есть два двоеточия то это часы, минуты и секунды.
Если строку удалось разобрать и пользователь не ввел в нее какую-то хрень то преобразуем полученное число в секунды, узнаем текущее время и начинаем отсчет. Самый поганый вариант - это просто ждать в цикле, пока текущее время не станет больше чем время_старта + введенное_количество_секунд
Но для Паскаля это, возможно, будет единственный вариант. Плох он тем, что мы попусту расходуем машинное время и ресурсы. Более правильный вариант - использовать какой-то вариант системной функции сна, В С я бы посмотрел в сторону функций usleep, nanosleep или нестандартного использования select но вот как подобное провернуть в Паскале я не подскажу.
Nursultan Ganiev
Nursultan Ganiev
9 624

Похожие вопросы