Uses Graph,Dos,CRT;
var x,y,Device,Mode,i,c,b,chas2,minuta2:integer;
    k,n:char;
    CH,MIN:array[1..9] of char;
    chas,minuta:array[1..9] of integer;
    h,m,s,ss,g:word;
    Label l,j;

Procedure budilnik;
begin
SetColor(4);
Circle(600,40,20);
Line(600,40,600,25);
Line(600,40,615,40);
SetTextStyle(5,0,1);
OutTextXY(535,27,'Enter');
end;

Procedure secunda(s:byte);
begin
SetLineStyle(0,0,NormWidth);
SetColor(15);
line(x,y,x+round(150*cos(pi*s/30-pi/2)),y+round(150*sin(pi*s/30-pi/2)));
SetColor(0);
line(x,y,x+round(150*cos(pi*(s-1)/30-pi/2)),y+round(150*sin(pi*(s-1)/30-pi/2)));
SetColor(2);
Circle(x,y,4);
SetFillStyle(1,2);
FloodFill(x,y,2);
end;

Procedure minut(m:byte);
begin
SetLineStyle(0,0,NormWidth);
SetColor(3);
line(x,y,x+round(150*cos(pi*(m)/30-pi/2)),y+round(150*sin(pi*(m)/30-pi/2)));
SetColor(0);
line(x,y,x+round(150*cos(pi*(m-1)/30-pi/2)),y+round(150*sin(pi*(m-1)/30-pi/2)));
SetColor(2);
Circle(x,y,4);
SetFillStyle(1,2);
FloodFill(x,y,2);
end;

Procedure chs(h,m:word);
begin
SetLineStyle(0,0,ThickWidth);
SetColor(4);
line(x,y,x+round(80*cos(pi*h/6-pi/2+pi*m/360)),y+round(80*sin(pi*h/6-pi/2+pi*m/360)));
SetColor(0);
line(x,y,x+round(80*cos(pi*(h-1)/6-pi/2+pi*m/360)),y+round(80*sin(pi*(h-1)/6-pi/2+pi*m/360)));
SetColor(2);
Circle(x,y,4);
SetFillStyle(1,2);
FloodFill(x,y,2);
end;

Procedure zalifka;
begin
SetFillStyle(1,7);
FloodFill(1,1,14);
SetFillStyle(1,0);
FloodFill(1,1,14);
end;

Procedure chislo;
begin
if CH[1]='1' then begin
                   if CH[2]='1' then chas2:=11;
                   if CH[2]='2' then chas2:=12;
                   if CH[2]='3' then chas2:=13;
                   if CH[2]='4' then chas2:=14;
                   if CH[2]='5' then chas2:=15;
                   if CH[2]='6' then chas2:=16;
                   if CH[2]='7' then chas2:=17;
                   if CH[2]='8' then chas2:=18;
                   if CH[2]='9' then chas2:=19;
                   end;
if CH[1]='2' then begin
                   if CH[2]='1' then chas2:=21;
                   if CH[2]='2' then chas2:=22;
                   if CH[2]='3' then chas2:=23;
                   if CH[2]='4' then chas2:=24;
                   end;
if MIN[1]='1' then begin
                     if MIN[2]='1' then minuta2:=11;
                     if MIN[2]='2' then minuta2:=12;
                     if MIN[2]='3' then minuta2:=13;
                     if MIN[2]='4' then minuta2:=14;
                     if MIN[2]='5' then minuta2:=15;
                     if MIN[2]='6' then minuta2:=16;
                     if MIN[2]='7' then minuta2:=17;
                     if MIN[2]='8' then minuta2:=18;
                     if MIN[2]='9' then minuta2:=19;
                     end;
if MIN[1]='2' then begin
                     if MIN[2]='1' then minuta2:=21;
                     if MIN[2]='2' then minuta2:=22;
                     if MIN[2]='3' then minuta2:=23;
                     if MIN[2]='4' then minuta2:=24;
                     if MIN[2]='5' then minuta2:=25;
                     if MIN[2]='6' then minuta2:=26;
                     if MIN[2]='7' then minuta2:=27;
                     if MIN[2]='8' then minuta2:=28;
                     if MIN[2]='9' then minuta2:=29;
                     end;
if MIN[1]='3' then begin
                     if MIN[2]='1' then minuta2:=31;
                     if MIN[2]='2' then minuta2:=32;
                     if MIN[2]='3' then minuta2:=33;
                     if MIN[2]='4' then minuta2:=34;
                     if MIN[2]='5' then minuta2:=35;
                     if MIN[2]='6' then minuta2:=36;
                     if MIN[2]='7' then minuta2:=37;
                     if MIN[2]='8' then minuta2:=38;
                     if MIN[2]='9' then minuta2:=39;
                     end;
if MIN[1]='4' then begin
                     if MIN[2]='1' then minuta2:=41;
                     if MIN[2]='2' then minuta2:=42;
                     if MIN[2]='3' then minuta2:=43;
                     if MIN[2]='4' then minuta2:=44;
                     if MIN[2]='5' then minuta2:=45;
                     if MIN[2]='6' then minuta2:=46;
                     if MIN[2]='7' then minuta2:=47;
                     if MIN[2]='8' then minuta2:=48;
                     if MIN[2]='9' then minuta2:=49;
                     end;
if MIN[1]='5' then begin
                     if MIN[2]='1' then minuta2:=51;
                     if MIN[2]='2' then minuta2:=52;
                     if MIN[2]='3' then minuta2:=53;
                     if MIN[2]='4' then minuta2:=54;
                     if MIN[2]='5' then minuta2:=55;
                     if MIN[2]='6' then minuta2:=56;
                     if MIN[2]='7' then minuta2:=57;
                     if MIN[2]='8' then minuta2:=58;
                     if MIN[2]='9' then minuta2:=59;
                     end;
end;

begin
l:Device:=0;
InitGraph(Device,Mode,'');
SetColor(0);
SetFillStyle(1,0);
FloodFill(1,1,14);
SetLineStyle(0,0,ThickWidth);
x:=getmaxX div 2;
y:=getmaxY div 2;
SetLineStyle(0,0,NormWidth);
SetColor(2);
Circle(x,y,4);
SetFillStyle(1,2);
FloodFill(x,y,2);
SetTextStyle(10,0,4);
OutTextXY(x-22,y-222,'12');
OutTextXY(x-24+round(222*cos(pi/3)),y-15-round(210*sin(pi/3)),'1');
OutTextXY(x-15+round(205*cos(pi/6)),y-25-round(210*sin(pi/6)),'2');
OutTextXY(x+192,y-25,'3');
OutTextXY(x-32+round(222*cos(pi/6)),y-30+round(210*sin(pi/6)),'4');
OutTextXY(x-15+round(205*cos(pi/3)),y-35+round(210*sin(pi/3)),'5');
OutTextXY(x-11,y+170,'6');
OutTextXY(x-round(222*cos(pi/3)),y-40+round(210*sin(pi/3)),'7');
OutTextXY(x-8-round(205*cos(pi/6)),y-30+round(210*sin(pi/6)),'8');
OutTextXY(x-217,y-25,'9');
OutTextXY(x+5-round(222*cos(pi/6)),y-18-round(210*sin(pi/6)),'10');
OutTextXY(x-20-round(205*cos(pi/3)),y-10-round(210*sin(pi/3)),'11');
repeat
budilnik;
gettime(h,m,s,ss);
if b=1 then
       if (h=chas2)and(m=minuta2) then sound(200);
chs(h,m);
minut(m);
secunda(s);
if KeyPressed then k:=ReadKey;
until (k=#27)or((k=#13)and(b=0));
if (k=#13)and(b=0) then begin
              SetFillStyle(1,7);
              FloodFill(1,1,14);
              SetFillStyle(1,0);
              FloodFill(1,1,14);
              SetColor(15);
              Rectangle(140,195,493,235);
              SetColor(2);
              SetTextStyle(1,0,1);
              OutTextXY(150,203,'Введите значения для будильника!');
              n:=ReadKey;
              zalifka;
              SetTextStyle(1,0,2);
              SetColor(1);
              Rectangle(233,195,420,235);
              SetColor(2);
              OutTextXy(245,203,'Сначала часы :');
              for i:=1 to 2 do begin
                               CH[i]:=ReadKey;
                               end;
              zalifka;
              SetColor(4);
              Rectangle(230,195,430,235);
              SetColor(2);
              OutTextXY(240,203,'Теперь минуты :');
              for i:=1 to 2 do begin
                               MIN[i]:=ReadKey;
                               end;
              chislo;
              b:=1;
              goto l;
              end;
j:CloseGraph;
end.
