Добавил:
DIF
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Turbo Pascal. Примеры выполнения задач_5 / V41 / V41_N12!
.PAS program coord;
uses dos,graph,crt;
type digit=array[1..2] of boolean;
var
h,m,s,hund:word;
rh,rm,rs,hour,min,sec,drive,mode:integer;
R,xmax,ymax,x,y,cx,cy:integer;
t,x2,y2,x3,y3,x1,y1,x4,y4,x5,y5:real;
procedure time;
begin
gettime(h,m,s,hund);
hour:=(h)*30;
min:=m*6;
sec:=s*6;
end;
procedure init(xmax,ymax:integer);
begin
cx:=xmax div 2;
cy:=ymax div 2;
{ line(0,cy,xmax,cy);
line(cx,0,cx,ymax); }
end;
procedure table;
var i,s,l:integer;
begin
s:=-1;
for i:=0 to 360 do begin
l:=0;
inc(s);
if s = 5 then begin l:=10;s:=0;end;
x4:=(210-l)*cos(-pi/180*6*i);
y4:=(210-l)*sin(-pi/180*6*i);
x5:=220*cos(-pi/180*6*i);
y5:=220*sin(-pi/180*6*i);
line(round(x4)+cx,cy-round(y4),round(x5)+cx,cy-round(y5));
end;
circle(320,240,220);
circle(320,240,195);
end;
procedure out_sec;
begin
x1:=190*cos(-pi/180*sec+pi/2);
y1:=190*sin(-pi/180*sec+pi/2);
x2:=10*cos(-pi/180*sec+pi/2+pi/18);
y2:=10*sin(-pi/180*sec+pi/2+pi/18);
x3:=10*cos(-pi/180*sec+pi/2-pi/18);
y3:=10*sin(-pi/180*sec+pi/2-pi/18);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
procedure out_min;
begin
x1:=180*cos(-pi/180*min+pi/2);
y1:=180*sin(-pi/180*min+pi/2);
x2:=20*cos(-pi/180*min+pi/2+pi/18);
y2:=20*sin(-pi/180*min+pi/2+pi/18);
x3:=20*cos(-pi/180*min+pi/2-pi/18);
y3:=20*sin(-pi/180*min+pi/2-pi/18);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
procedure out_hour;
begin
x1:=120*cos(-pi/180*hour+pi/2);
y1:=120*sin(-pi/180*hour+pi/2);
x2:=15*cos(-pi/180*hour+pi/2+pi/10);
y2:=15*sin(-pi/180*hour+pi/2+pi/10);
x3:=15*cos(-pi/180*hour+pi/2-pi/10);
y3:=15*sin(-pi/180*hour+pi/2-pi/10);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
begin
clrscr;
drive:=detect; initgraph(drive,mode,'');
init(640,480);
rh:=100;rm:=120;rs:=150;
outtextxy(315,0,'12');
outtextxy(315,470,'6');
outtextxy(80,235,'9');
outtextxy(550,235,'3');
table;
time;
t:=sec;
repeat
t:=sec;
repeat
time;
out_sec;
out_min;out_hour;
until sec<>t;
Sound(220); { Beep }
Delay(50); { For 200 ms }
NoSound; { Relief! }
setcolor(black);
sec:=sec-6;min:=min-6;hour:=hour-30;
out_sec;out_min;out_hour;
setcolor(white);
time;
until keypressed;
end.
uses dos,graph,crt;
type digit=array[1..2] of boolean;
var
h,m,s,hund:word;
rh,rm,rs,hour,min,sec,drive,mode:integer;
R,xmax,ymax,x,y,cx,cy:integer;
t,x2,y2,x3,y3,x1,y1,x4,y4,x5,y5:real;
procedure time;
begin
gettime(h,m,s,hund);
hour:=(h)*30;
min:=m*6;
sec:=s*6;
end;
procedure init(xmax,ymax:integer);
begin
cx:=xmax div 2;
cy:=ymax div 2;
{ line(0,cy,xmax,cy);
line(cx,0,cx,ymax); }
end;
procedure table;
var i,s,l:integer;
begin
s:=-1;
for i:=0 to 360 do begin
l:=0;
inc(s);
if s = 5 then begin l:=10;s:=0;end;
x4:=(210-l)*cos(-pi/180*6*i);
y4:=(210-l)*sin(-pi/180*6*i);
x5:=220*cos(-pi/180*6*i);
y5:=220*sin(-pi/180*6*i);
line(round(x4)+cx,cy-round(y4),round(x5)+cx,cy-round(y5));
end;
circle(320,240,220);
circle(320,240,195);
end;
procedure out_sec;
begin
x1:=190*cos(-pi/180*sec+pi/2);
y1:=190*sin(-pi/180*sec+pi/2);
x2:=10*cos(-pi/180*sec+pi/2+pi/18);
y2:=10*sin(-pi/180*sec+pi/2+pi/18);
x3:=10*cos(-pi/180*sec+pi/2-pi/18);
y3:=10*sin(-pi/180*sec+pi/2-pi/18);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
procedure out_min;
begin
x1:=180*cos(-pi/180*min+pi/2);
y1:=180*sin(-pi/180*min+pi/2);
x2:=20*cos(-pi/180*min+pi/2+pi/18);
y2:=20*sin(-pi/180*min+pi/2+pi/18);
x3:=20*cos(-pi/180*min+pi/2-pi/18);
y3:=20*sin(-pi/180*min+pi/2-pi/18);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
procedure out_hour;
begin
x1:=120*cos(-pi/180*hour+pi/2);
y1:=120*sin(-pi/180*hour+pi/2);
x2:=15*cos(-pi/180*hour+pi/2+pi/10);
y2:=15*sin(-pi/180*hour+pi/2+pi/10);
x3:=15*cos(-pi/180*hour+pi/2-pi/10);
y3:=15*sin(-pi/180*hour+pi/2-pi/10);
line(0+cx,cy-0,round(x2)+cx,cy-round(y2));
line(0+cx,cy-0,round(x3)+cx,cy-round(y3));
line(round(x2)+cx,cy-round(y2),round(x1)+cx,cy-round(y1));
line(round(x3)+cx,cy-round(y3),round(x1)+cx,cy-round(y1));
end;
begin
clrscr;
drive:=detect; initgraph(drive,mode,'');
init(640,480);
rh:=100;rm:=120;rs:=150;
outtextxy(315,0,'12');
outtextxy(315,470,'6');
outtextxy(80,235,'9');
outtextxy(550,235,'3');
table;
time;
t:=sec;
repeat
t:=sec;
repeat
time;
out_sec;
out_min;out_hour;
until sec<>t;
Sound(220); { Beep }
Delay(50); { For 200 ms }
NoSound; { Relief! }
setcolor(black);
sec:=sec-6;min:=min-6;hour:=hour-30;
out_sec;out_min;out_hour;
setcolor(white);
time;
until keypressed;
end.
Соседние файлы в папке V41
