Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Электронные часы (http://www.tehnari.ru/f41/t44066/)

jax 30.12.2010 08:18

Электронные часы
 
С наступающим! Помогите, пожалуйста - нужно написать программу "электронные часы". Программа должна работать до тех пор, пока не нажмёте клавишу (любую).

Vladimir_S 30.12.2010 09:54

Цитата:

Сообщение от jax (Сообщение 436605)
С наступающим! Помогите, пожалуйста - нужно написать программу "электронные часы". Программа должна работать до тех пор, пока не нажмёте клавишу (любую).

И Вас с наступающим!
Вы знаете, к величайшему сожалению наши экстрасенсы-ясновидцы уже разъехались на новогодние/рождественские каникулы, а из оставшихся никто не сможет угадать, на каком языке программирования нужно выполнить задание, к какому сроку, какие часы - цифровые или с циферблатом и стрелками и т.п. Так что, не имея подобной информации, мы, увы, бессильны.

jax 30.12.2010 10:49

огромное спасиво за пояснение,учту на будущие,нужно написать программу в PascaleABC,желательно до нового года, электронные часы,без стрелок

Vladimir_S 30.12.2010 11:41

Цитата:

Сообщение от jax (Сообщение 436644)
огромное спасиво за пояснение,учту на будущие,нужно написать программу в PascaleABC,желательно до нового года, электронные часы,без стрелок

Ну ежели без особых прибамбасов, то - пожалуйста:
Код:

Uses Crt,Dos;
VAR
 hour,min,sec_old,sec_new:Word;
 sec100,msec,usec:Word;
BEGIN
 ClrScr;
 GetTime(hour,min,sec_new,sec100);
 Repeat
  Repeat
  sec_old:=sec_new;
  GetTime(hour,min,sec_new,sec100);
  Until sec_old<>sec_new;
  GoToXY(1,1);
  If (min<10) and (sec_new<10) then
  Write(hour:2,':0',min,':0',sec_new)
  else
  If sec_new<10 then
  Write(hour:2,':',min,':0',sec_new)
  else
  If min<10 then
  Write(hour:2,':0',min,':',sec_new)
  else
  Write(hour:2,':',min,':',sec_new);
 Until KeyPressed;
 ReadKey;
END.

ВНИМАНИЕ! ВАЖНО!
В программе применена процедура GetTime (модуль DOS). Но! Дело в том, что, в зависимости от реализации Паскаль-транслятора, она может иметь три набора параметров:
1. GetTime(hour, min, sec:Word); (считываются часы, минуты и секунды).
2. GetTime(hour, min, sec, sec100:Word); (считываются часы, минуты, секунды и сотые доли секунд; в моём Паскале - именно такая).
1. GetTime(hour, min, sec, msec, usec:Word); (считываются часы, минуты, секунды, миллисекунды, микросекунды).
Какой именно вариант предусмотрен в PascalABC я не знаю, это нужно установить Вам. На всякий случай все параметры описаны в перечне параметров (раздел VAR), Вам лишь нужно (при необходимости) в двух местах подправить перечень параметров процедуры GetTime. В любом случае интервалы времени, меньшие секунды, на экран не выводятся.

jax 30.12.2010 14:56

Огромное спасибо,я и не думал что так можно,мне говорили что это делать нужно через For.Ещё раз с наступающем вас.Желаю успехов в новом году.

Vladimir_S 05.01.2011 13:12

Обсуждение проблем, связанных с решением задачи в разных версиях Паскаля, перенесено в тему http://www.tehnari.ru/f43/t43891/

radiotexnik 08.01.2011 22:57

uses crt;
var min,sec:integer;
begin
clrscr;
for min :=1 to 3 do
begin
for sec:=1 to 60 do
begin
delay(1000);
gotoXY(1,1) ;
write (min,':',sec,'') ;
if keypressed then halt
end;
end;
end.

jax 10.01.2011 18:53

A этот код работает в pascalABC??

Vladimir_S 10.01.2011 20:50

Цитата:

Сообщение от jax (Сообщение 442921)
A этот код работает в pascalABC??

А куда он денется? Только это не часы, а секундомер.


Часовой пояс GMT +4, время: 23:27.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.