- 14 Tháng năm 2017
- 3,974
- 7,623
- 744
- 22
- Phú Yên
- Trường THPT Lương Văn Chánh
Còn gì tuyệt vời hơn một chương trình như thế này nữa phải không nào
Dùng được thì cho mình xin cái nhận xét
Code này sử dụng unit graph nên bạn nào chưa có thì phải chèn vào nhá
Dùng được thì cho mình xin cái nhận xét
Code này sử dụng unit graph nên bạn nào chưa có thì phải chèn vào nhá
Mã:
Program Clock;
uses crt,graph,dos;
const R = 170;
days : array[0..6] of string = ('SunDay','MonDay','Tuesday',
'Wednesday','Thursday','Friday',
'Saturday');
var gd,gm,cX,cY: integer;
second,minute,hour,hund,lasth,lastm,lasts,ly,ld,lm,ldo: Word;
Procedure DrawFace;
var i: integer;
s: string;
dx,dy: real;
X,Y: integer;
Begin
for i := 1 to 360 do
begin
X := random(cX*2);
Y := random(cY*2);
PutPixel(X,Y,1+Random(14));
end;
SetColor(LightGreen);
SetFillStyle(1,LightGreen);
FillEllipse(cX,cY,R+10,R+10);
SetFillStyle(1,Yellow);
SetColor(Yellow);
FillEllipse(cX,cY,R,R);
SetFillStyle(1,Brown);
FillEllipse(cX,cY,2,2);
for i := 1 to 360 do
if i mod 30 = 0 then
begin
dx := cX + (R-10) * sin(i*Pi/180);
dy := cY - (R-10) * cos(i*Pi/180);
X := trunc(dx);
Y := trunc(dy);
SetColor(Black);
Str(i div 30,s);
OutTextXY(X,Y,s);
end
else if i mod 6 = 0 then
begin
dx := cX + (R-10) * sin(i*Pi/180);
dy := cY - (R-10) * cos(i*Pi/180);
X := trunc(cX + (R-20) * sin(i*Pi/180));
Y := trunc(cY - (R-20) * cos(i*Pi/180));
SetColor(Cyan);
Line(X,Y,Trunc(dx),Trunc(dy));
end;
End;
Procedure ClearMove(t: char;time: Word);
var s,m,h: real;
Begin
SetColor(Yellow);
case t of
's':
begin
s := time*Pi/30;
Line(cX,cY,cX + trunc((R-20)*sin(s)),cY - trunc((R-20)*cos(s)));
end;
'm':
begin
m := time*Pi/30;
Line(cX,cY,cX + trunc((R-40)*sin(m)),cY - trunc((R-40)*cos(m)));
end;
'h':
begin
h := time*Pi/6;
Line(cX,cY,cX + trunc((R-60)*sin(h)),cY - trunc((R-60)*cos(h)));
end;
end;
End;
Procedure DrawMove;
var s,m,h: real;
date,month,year,dow: Word;
sr,st: string;
Begin
SetColor(Red);
s := second*Pi/30;
Line(cX,cY,cX + trunc((R-20)*sin(s)),cY - trunc((R-20)*cos(s)));
SetColor(Blue);
m := minute*Pi/30;
Line(cX,cY,cX + trunc((R-40)*sin(m)),cY - trunc((R-40)*cos(m)));
SetColor(Green);
h := hour*Pi/6;
Line(cX,cY,cX + trunc((R-60)*sin(h)),cY - trunc((R-60)*cos(h)));
{------------------- Ve Ngay -------------------------}
GetDate(year,month,date,dow);
if (ly = year) and (lm = month)
and (ld = date) and (ldo = dow) then begin end
else
begin
Bar(cX - 100,cY + R + 20,cX + 100,cY + R + 40);
st := Days[dow] + '/';
Str(date,sr);
st := st + sr + '/';
Str(month,sr);
st := st + sr + '/';
Str(year,sr);
st := st + sr;
OutTextXY(cX - length(st)*4,cY + R + 27,st);
ld := date;
lm := month;
ly := year;
ldo := dow;
end;
End;
BEGIN
InitGraph(gd,gm,'');
cX := GetMaxX div 2;
cY := GetMaxY div 2 - 20;
GetTime(hour,minute,second,hund);
DrawFace;
DrawMove;
repeat
if lastm <> minute then
ClearMove('m',lastm);
if lasth <> hour then
ClearMove('h',lasth);
if lasts <> second then
ClearMove('s',lasts);
DrawMove;
lasth := hour;
lastm := minute;
lasts := second;
GetTime(hour,minute,second,hund);
until keypressed;
CloseGraph;
END.