Для работы программы необходим файл с рисунком циферблата ( скачать ).
Рассмотрим код программы:
Program Timer;
uses crt, GraphABC;
var pic, x0,y0, x,y, R, min, sec : integer;
begin
SetWindowSize(360,480);
HideCursor;
x0:=173; y0:=300; min:=0; sec:=0;
pic:=LoadPicture(‘timer.jpg’);
DrawPicture(pic,0,0,360,480); // Рисование циферблата
sec:=sec+1;
min:= sec div 60; // секунды и минуты
x:=x0+Round(120*sin(Pi*sec/30));
y:=y0-Round(120*cos(Pi*sec/30));
SetPenWidth(3);
Line(x0, y0, x, y); // секундная стрелка
x:=x0+Round(100*sin(Pi*min/30));
y:=y0-Round(100*cos(Pi*min/30));
SetPenWidth(7);
Line(x0, y0, x, y); // минутная стрелка
sleep(1000);
until (min>=60) or keyPressed;
end.
Теперь разберемся как она работает.
Загрузка изображения часов осуществляется в два этапа: сначала с файлом изображения связывается идентификатор изображения (в нашем случае это pic ). Это делается следующим оператором: pic:=LoadPicture(‘timer.jpg’);
Разбор задачи Электронные часы — 1
Далее уже в цикле происходит прорисовка изображения : DrawPicture(pic,0,0,360,480);
Оператор HideCursor; «прячет» курсор, который всегда «моргает» в левом верхнем углу окна.
Работа цикла с постусловием.
Цикл repeat. until (min>=60) or keyPressed; работает пока количество минут не превысит 60 или не будет нажата какая-либо из клавиш клавиатуры.
Что происходит в теле цикла.
1. Прорисовка часов: DrawPicture(pic,0,0,360,480);
2. Увеличение количества секунд на 1: sec:=sec+1;
3. Расчет количества минут: min:= sec div 60;
4. Расчет конечных координат x и у для секундрой стрелки :
5. Прорисовка линии секундной стрелки: SetPenWidth(3); Line(x0, y0, x, y);
6. Расчет конечных координат х и у для минутной стрелки:
7. Прорисовка линии минутной стрелки: SetPenWidth(7); Line(x0, y0, x, y);
8. Задержка работы программы на 1 секунду: sleep(1000);
Небольшой видеофрагмент поможет еще досканельнее разобраться в работе программы:
Видеоурок:
Как добавить часовую стрелку в часы?
2. После расчета количества минут добавить строку для расчета количества часов на основе количества минут:
hour:= min div 12; (здесь делим нацело уже не на 60, а на 12, т.к. часовая стрелка за один полный оборот минутной стрелки должна сместиться не на одно, а на 5 делений);
3. Далее необходимо по аналогии с секундной и минутной стрелками сделать перерасчет количества часов в координаты конца стрелки x и y. В этом же блоке необходимо учесть, что часовая стрелка должна быть еще короче минутной:
4. Выставить толщину и цвет часовой стрелки и провести линию, изображающую часовую стрелку.
5. Для того, чтобы пронаблюдать ход часов в ускоренном виде, необходимо сократить задержку с 1000 ms до 10m: sleep(10);
Вот и все. Удачи Вам в написании программы!
Паскаль — дата и время
Большинство программ, которые вы пишете, нуждаются в реализации некоторой формы функций даты, возвращающих текущую дату и время. Свидания настолько важны в повседневной жизни, что с ними легко работать, не задумываясь. Паскаль также предоставляет мощные инструменты для арифметики дат, которые упрощают манипулирование датами. Однако фактическое имя и работа этих функций различны для разных компиляторов.
Как создать программу «ЧАСЫ» в блокноте
Получение текущей даты и времени
Функция Pascal TimeToString дает вам текущее время в форме с разделителями (:). В следующем примере показано, как получить текущее время —
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Функция Now возвращает текущую дату и время —
Когда приведенный выше код был скомпилирован и выполнен, он дает следующий результат —
Различные функции даты и времени
Free Pascal предоставляет следующие функции даты и времени —
function DateTimeToFileDate (DateTime: TDateTime): LongInt;
Преобразует тип DateTime в дату файла.
Функция DateTimeToStr (DateTime: TDateTime) :;
Создает строковое представление DateTime
function DateTimeToStr (DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime);
Создает строковое представление DateTime
процедура DateTimeToString (out Результат:; const FormatStr:; const DateTime: TDateTime; const FormatSettings: TFormatSettings);
Создает строковое представление DateTime
процедура DateTimeToSystemTime (DateTime: TDateTime; выход SystemTime: TSystemTime);
Преобразует DateTime в системное время
function DateTimeToTimeStamp (DateTime: TDateTime): TTimeStamp; Преобразует DateTime в метку времени
Функция DateToStr (Date: TDateTime) :;
Создает строковое представление даты
function DateToStr (Date: TDateTime; const FormatSettings: TFormatSettings) :;
Создает строковое представление даты
Функция Date: TDateTime;
Получает текущую дату
function DayOfWeek (DateTime: TDateTime): Integer;
Получает день недели
процедура DecodeDate (Дата: TDateTime; год выхода: слово; месяц выхода: слово; день выхода: слово);
Декодирует DateTime в год, месяц и день
процедура DecodeTime (время: TDateTime; вне часа: слово; вне минуты: слово; вне секунды: слово; вне миллисекунды: слово);
Декодирует DateTime в часы, минуты и секунды
функция EncodeDate (год: слово; месяц: слово; день: слово): TDateTime;
Кодирует год, день и месяц в DateTime
функция EncodeTime (час: слово; минута: слово; секунда: слово; миллисекунда: слово): TDateTime;
Кодирует часы, минуты и секунды в DateTime
Функция FormatDateTime (const FormatStr:; DateTime: TDateTime) :;
Возвращает строковое представление DateTime
функция FormatDateTime (const FormatStr:; DateTime: TDateTime; const FormatSettings: TFormatSettings) :;
Возвращает строковое представление DateTime
функция IncMonth (const DateTime: TDateTime; NumberOfMonths: Integer = 1): TDateTime;
Добавляет 1 к месяцу
function IsLeapYear (Год: Слово): Boolean;
Определяет, является ли год високосным
function MSecsToTimeStamp (MSecs: Comp): TTimeStamp;
Преобразует количество миллисекунд в метку времени
функция сейчас: TDateTime;
Получает текущую дату и время
function StrToDateTime (const S :): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: ShortString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDateTime (const s: AnsiString; const FormatSettings: TFormatSettings): TDateTime;
Преобразует строку в DateTime
function StrToDate (const S: ShortString): TDateTime;
Преобразует строку в дату
function StrToDate (const S: Ansistring): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: ShortString; const useformat:; разделитель: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: AnsiString; const useformat:; separator: Char): TDateTime;
Преобразует строку в дату
function StrToDate (const S: PChar; Len: Integer; const useformat:; separator: Char = # 0): TDateTime;
Преобразует строку в дату
function StrToTime (const S: Shortstring): TDateTime;
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Задача «Электронные часы».
var N:longint; begin assign(input,’input.txt’); assign(output,’output.txt’); reset(input);.
Электронные часы
3. Текущее показание электронных часов: m ч (0 ≤ m ≤ 23) п мин (0≤ n ≤ 59) kc.
Электронные часы
Написать программу, которая выводит на экран работающие «электронные часы», которые работают в.
Решение
Электронные часы
У нас есть электронные часы (см. во вложении). Обратите внимание: первый элемент (для отображения.
Электронные часы
Привет, вот задание:Написать программу, которая выводит на экран изображение идущих электронных.
Программа, которая работает как настенные/электронные часы
Помогите написать две программы, пожалуйста: 1.программа которая работает как.
Изобразить на экране работающие электронные часы с цифровым индикатором
Электронные часы. Изобразить на экране работающие электронные с цифровым индикатором (каждая цифра.
Изобразить «электронные часы»
Написать программу, которая выводит на экран работающие «электронные часы», которые работают в.
«Электронные часы»
Сама задача : «Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается.
Узнать текущее время, часы, минуты, секунды по отдельности
H := ТекущееВремя.Часы;
M := ТекущееВремя.Минуты;
S := ТекущееВремя.Секунды;
Ну и с датой можно также поступить?
Что-то покопался в справке, в Сети, может к вечеру глаз замылил, но не могу найти.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Перевод заданного количества секунд в часы, минуты, секунды
Нужно написать программу которая по заданному количеству секунд вычисляет сколько прошло часов.
Время. Дано количество секунд. Вычислить время в формате часы/минуты/секунды.
Написать программу, которая требует от пользователя ввести к- секунду и чтобы программа считала.
Решение
Решение
Всем спасибо. Вот что выродил! Еще теперь бы рашпилем доработать.
Решение
Класс. Я вроде так и делал, используя по аналогу Дня, Месяца и Года a.DayOfWeek, но почему-то не фунциклировало. СПАСИБО!
И про замену тоже думал, но пока лениво было вошкаться. Раньше таких примочек не встречал. СПАСИБО! Но при небольшом тормозе цифры видно как прорисовываются, а не резко выскакивают, я даже изначально специально Sleep ставил.
Я так понимаю, эта новая процедура тоже под различные разрешения монитора адаптирована?
Где именно сложность в понимании?
Добавлено через 41 минуту
Еще один вопрос по ходу этой программки, хоть уже и не в тему. Можно ли из этого безобразия сделать ScreenSaver?
Добавлено через 18 часов 18 минут
Перевести минуты в минуты и часы
в коде нужно поменять концовку, то есть программа выводит количество минут, а нужно что бы выводило.
Создать приложение для решения задачи Текущее время (часы, минуты, секунды) задано тремя переменными: h, m s
Создать приложение для решения задачи Текущее время (часы, минуты, секунды) задано тремя.
часы в паскале.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Семисегментные часы на Паскале
Товарищи! Помогие пожалуйста! Как можно вывести цифры в виде семисегментных индикаторов для часов.
Нарисовать в паскале часы
:help:помогите пожалуйста нарисовать в паскале часы, оч нужно, заранее большое спасибо:)
Флеш часы: часы, показывающие указанное время
Привет всем. Помогите пожалуйста. Как создать флеш часы чтобы они показывали разное указанное.
Преобразовать введенное значение в часы и минуты и выводит на экран в виде “часы: минуты”
Здравствуйте, помогите пожалуйста с написанием программы. Написать программу, которая запрашивает.
Как работает join и split в Паскале? И есть ли такие аналоги Питону в Паскале?
a=input() #из ‘ Hello world ‘ делаю ‘Hello, world’ a.strip(‘ ‘) a=’, ‘.join(a.split(‘ ‘)) В.
Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Составьте программу, которая в зависимости от входных данных переводит часы и минуты в.
Часы
Функцию определения времени я написал. А теперь я хочу чтобы часы работали. Как? Что-то вроде этого.
Источник: folkmap.ru
Задача «Электронные часы»
Электронные часы 2: Электронные часы показывают время в формате h:mm:ss , то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями. С начала суток прошло n секунд. Выведите, что покажут часы.
Пример: ввод — 3602, вывод — 1:00:02 Решить нужно как то с помощью div, mod. которые я как раз не очень понимаю, решение может быть написано на C++ или C#. //Первую задачу этого типа я уже решил: Электронные часы 1: Дано число n . С начала суток прошло n минут. Определите, сколько часов и минут будут показывать электронные часы в этот момент. Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). Учтите, что число n может быть больше, чем количество минут в сутках.
var a, b, n:longint; begin readln(n); a:=(n div 60)mod 24; b:=n mod 60; writeln(a,’ ‘,b); end.
Вот так решается первая версия, а как вторая?
Отслеживать
28.4k 10 10 золотых знаков 57 57 серебряных знаков 118 118 бронзовых знаков
Источник: ru.stackoverflow.com
Написать программу, выводящую на экран работающие «электронные часы» — C#
Задача. Написать программу, выводящую на экран работающие «электронные часы» показывающие текущее время, и работающую в течении одной минуты или до тех пор, пока пользователь не нажмет любую клавишу.
Код к задаче: «Написать программу, выводящую на экран работающие «электронные часы»»
Листинг программы
public MainForm() < InitializeComponent(); ltime = new Label(); ltime.Parent = this; ltime.Location = new Point(10,10); ltime.Show(); sc = System.Threading.SynchronizationContext.Current; ((AsyncCallback) delegate < while (true) < sc.Post(delegate < ltime.Text = DateTime.Now.ToString(«%h:%m:%s»); >, null); System.Threading.Thread.Sleep(500); > >).BeginInvoke(null,null,null); >
Источник: studassistent.ru