uses Dos,Crt,Graph;
var gd,gm,Xc,Yc,c1,c2,c3,c4,c5,c6,
d1,d2,d3,d4,d5,d6,d7,d8:integer;
hr,min,sec,hund:word;
{прорисовка цифр}
procedure Zero(xn,yn:integer);
begin
Rectangle(0+xn,0+yn,5+xn,10+yn);
end;
procedure One(xn,yn:integer);
begin
Line(5+xn,0+yn,5+xn,10+yn);
end;
procedure Two(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(5+xn,0+yn,5+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(0+xn,5+yn,0+xn,10+yn);
Line(0+xn,10+yn,5+xn,10+yn);
end;
procedure Three(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(5+xn,0+yn,5+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(5+xn,5+yn,5+xn,10+yn);
Line(0+xn,10+yn,5+xn,10+yn);
end;
procedure Fouhr(xn,yn:integer);
begin
Line(0+xn,0+yn,0+xn,5+yn);
Line(5+xn,0+yn,5+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(5+xn,5+yn,5+xn,10+yn);
end;
procedure Five(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(0+xn,0+yn,0+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(5+xn,5+yn,5+xn,10+yn);
Line(0+xn,10+yn,5+xn,10+yn);
end;
procedure Six(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(0+xn,0+yn,0+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(5+xn,5+yn,5+xn,10+yn);
Line(0+xn,10+yn,5+xn,10+yn);
Line(0+xn,5+yn,0+xn,10+yn);
end;
procedure Seven(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(5+xn,0+yn,5+xn,10+yn);
end;
procedure Eight(xn,yn:integer);
begin
Rectangle(0+xn,0+yn,5+xn,10+yn);
Line(0+xn,5+yn,5+xn,5+yn);
end;
procedure Nine(xn,yn:integer);
begin
Line(0+xn,0+yn,5+xn,0+yn);
Line(5+xn,0+yn,5+xn,5+yn);
Line(5+xn,5+yn,0+xn,5+yn);
Line(5+xn,5+yn,5+xn,10+yn);
Line(0+xn,10+yn,5+xn,10+yn);
Line(0+xn,0+yn,0+xn,5+yn);
end;
{выбор нужной цифры}
procedure Number(n,xn,yn:integer);
begin
case n of
0:Zero(xn,yn);
1:One(xn,yn);
2:Two(xn,yn);
3:Three(xn,yn);
4:Fouhr(xn,yn);
5:Five(xn,yn);
6:Six(xn,yn);
7:Seven(xn,yn);
8:Eight(xn,yn);
9:Nine(xn,yn);
end;
end;
{рисование каркаса}
procedure KarkasElectro;
begin
Rectangle(Xc-40,Yc-15,Xc+36,Yc+15);
putpixel(Xc-40+25,Yc-3,Green);
putpixel(Xc-40+25,Yc+3,Green);
putpixel(Xc-40+50,Yc-3,Green);
putpixel(Xc-40+50,Yc+3,Green);
end;
{рисование нужных цифр}
procedure DrawElectro;
begin
c1:=hr div 10;{часы}
c2:=hr mod 10;
c3:=min div 10;{минуты}
c4:=min mod 10;
c5:=sec div 10;{сукунды}
c6:=sec mod 10;
SetColor(Black);{черным цветом, стираем старое изображение}
Number(c1,Xc-40+5,Yc-15+10);
Number(c2,Xc-40+15,Yc-15+10);
Number(c3,Xc-40+30,Yc-15+10);
Number(c4,Xc-40+40,Yc-15+10);
Number(c5,Xc-40+55,Yc-15+10);
Number(c6,Xc-40+65,Yc-15+10);
GetTime(hr,min,sec,hund);{определяем системное время}
c1:=hr div 10;
c2:=hr mod 10;
c3:=min div 10;
c4:=min mod 10;
c5:=sec div 10;
c6:=sec mod 10;
SetColor(Green);{снова рисуем уже зеленым цветом}
Number(c1,Xc-40+5,Yc-15+10);
Number(c2,Xc-40+15,Yc-15+10);
Number(c3,Xc-40+30,Yc-15+10);
Number(c4,Xc-40+40,Yc-15+10);
Number(c5,Xc-40+55,Yc-15+10);
Number(c6,Xc-40+65,Yc-15+10);
end;
begin
gd:=0;
initgraph(gd,gm,'');
Xc:=GetMaxX div 2;{центр экрана}
Yc:=GetMaxY div 2;
GetTime(hr,min,sec,hund);{начальное системное время}
KarkasElectro; {рисуем каркас}
repeat
delay(1000);{в цикле через секунду}
DrawElectro;{меняем изображение}
until KeyPressed;{пока не нажата какая-то клавиша}
end.