Модератор: Модераторы
Водород писал(а):дааа, аааа яяяя нннеееее мммммоооогггуууууу
Водород писал(а):блин я это сквощь пальцев не пустил пытался что то делать но не фига сёдня весь день этим паскалем занимаюсь мозги просто кепят
Водород писал(а):четверг это отдельно, ехать нужно трудоустраиваться на лето... хлапот ппц
Водород писал(а):я тебя не прошу ехать за меня трудоустраиваться))))
Водород писал(а):всего то помочь с программой, я не виноват что у меня не получаеться((( пытаюсь как могу
Водород писал(а):ууу выделенный сервер это не шутки))))
Водород писал(а):помог, я не жалуюсь вот токо я не могу воспользоваться твоим советом потому что не понимаю как(((
Program fdgfaf;
uses graph, crt, SysUtils;
type
TPoint=record
x,y:integer
end;
pt=array [0..16000] of TPoint;
const
Grd : double=pi/180;
HourC=2;
MinC=3;
SecC=5;
var
T : TSystemTime;
gd, gm, r: integer;
PrH, PrM, PrS : integer;
AHour, AMin, ASec:array [0..3] of TPoint;
Procedure GenArrow(L, th:integer; var Arrow);
begin
PT(Arrow)[0].x:=0;
PT(Arrow)[0].Y:=0;
PT(Arrow)[1].x:=th;
PT(Arrow)[1].Y:=-L div 2;
PT(Arrow)[2].x:=0;
PT(Arrow)[2].Y:=-L;
PT(Arrow)[3].x:=-th;
PT(Arrow)[3].Y:=-L div 2
end;
procedure FilledCircle(x,y,r,c:integer);
var
tx,ty:integer;
begin
SetColor(c);
for ty:=0 to r do begin
tx:=round(sqrt(r*r-ty*ty));
Line(x-tx,y-ty,x+tx,y-ty);
Line(x-tx,y+ty,x+tx,y+ty)
end
end;
procedure FilledTriangle(x1,y1,x2,y2,x3,y3,c:integer);
var
y:integer;
dx1,dx2,dx3:real;
begin
SetColor(c);
if y1<y2 then begin
y1:=y1+y2;
y2:=y1-y2;
y1:=y1-y2;
x1:=x1+x2;
x2:=x1-x2;
x1:=x1-x2;
end;
if y1<y3 then begin
y1:=y1+y3;
y3:=y1-y3;
y1:=y1-y3;
x1:=x1+x3;
x3:=x1-x3;
x1:=x1-x3;
end;
if y2<y3 then begin
y2:=y2+y3;
y3:=y2-y3;
y2:=y2-y3;
x2:=x2+x3;
x3:=x2-x3;
x2:=x2-x3;
end;
if y1=y2 then dx1:=0 else dx1:=(x2-x1)/(y2-y1);
if y2=y3 then dx2:=0 else dx2:=(x3-x2)/(y3-y2);
if y1=y3 then dx3:=0 else dx3:=(x3-x1)/(y3-y1);
for y:=y1 downto y2 do
Line(x1+round(dx1*(y-y1)),y,x1+round(dx3*(y-y1)),y);
for y:=y2 downto y3 do
Line(x2+round(dx2*(y-y2)),y,x1+round(dx3*(y-y1)),y);
end;
procedure DrawArrow(x,y:integer; angle:real; c, np:integer; var Arrow);
var
i:integer;
sn, cs:real;
SP:TPoint;
begin
if np<3 then exit;
sn:=sin(angle);
cs:=cos(angle);
SP.X:=X+round(pt(Arrow)[0].X*cs-pt(Arrow)[0].Y*sn);
SP.Y:=Y+round(pt(Arrow)[0].X*sn+pt(Arrow)[0].Y*cs);
for i:=1 to np-2 do begin
FilledTriangle(
SP.X,
SP.Y,
X+round(pt(Arrow)[i].X*cs-pt(Arrow)[i].Y*sn),
Y+round(pt(Arrow)[i].X*sn+pt(Arrow)[i].Y*cs),
X+round(pt(Arrow)[i+1].X*cs-pt(Arrow)[i+1].Y*sn),
Y+round(pt(Arrow)[i+1].X*sn+pt(Arrow)[i+1].Y*cs),
c)
end;
end;
BEGIN
gd:=vga;
gm:=2;
InitGraph(gd,gm,'');
r:=174;
GenArrow(R-10,5,ASec);
GenArrow(R-30,5,AMin);
GenArrow(R-70,5,AHour);
FilledCircle(300,250,200,12);
FilledCircle(300,250,180,10);
FilledCircle(300,250,174,15);
SetFillStyle(1,12);
Bar(150,247,170,253);
Bar(435,247,455,253);
Bar(297,389,303,409);
Bar(297,95,303,115);
GetLocalTime(T);
PrS:=T.Second;
PrM:=T.Minute;
PrH:=T.Hour;
SetColor(0);
OutTextXY(350,247,Format('%.2d.%.2d.%.4d',[T.Day, T.Month, T.Year]));
OutTextXY(270,370,Format('%.2d:%.2d:%.2d',[T.Hour, T.Minute, T.Second]));
DrawArrow(300,250, PrH*30*Grd, HourC, 4, AHour);
DrawArrow(300,250, PrM*6*Grd, MinC, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, SecC, 4, ASec);
repeat
GetLocalTime(T);
if T.Second<>PrS then begin
DrawArrow(300,250, PrH*30*Grd, 15, 4, AHour);
DrawArrow(300,250, PrM*6*Grd, 15, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, 15, 4, ASec);
SetFillStyle(1,12);
Bar(150,247,170,253);
Bar(435,247,455,253);
Bar(297,389,303,409);
Bar(297,95,303,115);
SetFillStyle(1, 15);
Bar(345,240,400,255);
Bar(265,365,370,390);
SetColor(0);
OutTextXY(350,247,Format('%.2d.%.2d.%.4d',[T.Day, T.Month, T.Year]));
OutTextXY(270,370,Format('%.2d:%.2d:%.2d',[T.Hour, T.Minute, T.Second]));
PrS:=T.Second;
if T.Hour<>PrH then PrH:=T.Hour;
if T.Minute<>PrM then PrM:=T.Minute;
DrawArrow(300,250, PrH*30*Grd, HourC, 4, AHour);
DrawArrow(300,250, PrM*6*Grd, MinC, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, SecC, 4, ASec)
end
until keypressed;
CloseGraph;
END.
Program fdgfaf;
uses graph, crt, SysUtils;
type
TPoint=record
x,y:integer
end;
pt=array [0..16000] of TPoint;
const
Grd : double=pi/180;
HourC=2;
MinC=3;
SecC=5;
var
T : TSystemTime;
gd, gm, r: integer;
PrH, PrM, PrS : integer;
AHour, AMin, ASec:array [0..3] of TPoint;
Procedure GenArrow(L, th:integer; var Arrow);
begin
PT(Arrow)[0].x:=0;
PT(Arrow)[0].Y:=0;
PT(Arrow)[1].x:=th;
PT(Arrow)[1].Y:=-L div 2;
PT(Arrow)[2].x:=0;
PT(Arrow)[2].Y:=-L;
PT(Arrow)[3].x:=-th;
PT(Arrow)[3].Y:=-L div 2
end;
procedure FilledCircle(x,y,r,c:integer);
var
tx,ty:integer;
begin
SetColor(c);
for ty:=0 to r do begin
tx:=round(sqrt(r*r-ty*ty));
Line(x-tx,y-ty,x+tx,y-ty);
Line(x-tx,y+ty,x+tx,y+ty)
end
end;
procedure FilledTriangle(x1,y1,x2,y2,x3,y3,c:integer);
var
y:integer;
dx1,dx2,dx3:real;
begin
SetColor(c);
if y1<y2 then begin
y1:=y1+y2;
y2:=y1-y2;
y1:=y1-y2;
x1:=x1+x2;
x2:=x1-x2;
x1:=x1-x2;
end;
if y1<y3 then begin
y1:=y1+y3;
y3:=y1-y3;
y1:=y1-y3;
x1:=x1+x3;
x3:=x1-x3;
x1:=x1-x3;
end;
if y2<y3 then begin
y2:=y2+y3;
y3:=y2-y3;
y2:=y2-y3;
x2:=x2+x3;
x3:=x2-x3;
x2:=x2-x3;
end;
if y1=y2 then dx1:=0 else dx1:=(x2-x1)/(y2-y1);
if y2=y3 then dx2:=0 else dx2:=(x3-x2)/(y3-y2);
if y1=y3 then dx3:=0 else dx3:=(x3-x1)/(y3-y1);
for y:=y1 downto y2 do
Line(x1+round(dx1*(y-y1)),y,x1+round(dx3*(y-y1)),y);
for y:=y2 downto y3 do
Line(x2+round(dx2*(y-y2)),y,x1+round(dx3*(y-y1)),y);
end;
procedure DrawArrow(x,y:integer; angle:real; c, np:integer; var Arrow);
var
i:integer;
sn, cs:real;
SP:TPoint;
begin
if np<3 then exit;
sn:=sin(angle);
cs:=cos(angle);
SP.X:=X+round(pt(Arrow)[0].X*cs-pt(Arrow)[0].Y*sn);
SP.Y:=Y+round(pt(Arrow)[0].X*sn+pt(Arrow)[0].Y*cs);
for i:=1 to np-2 do begin
FilledTriangle(
SP.X,
SP.Y,
X+round(pt(Arrow)[i].X*cs-pt(Arrow)[i].Y*sn),
Y+round(pt(Arrow)[i].X*sn+pt(Arrow)[i].Y*cs),
X+round(pt(Arrow)[i+1].X*cs-pt(Arrow)[i+1].Y*sn),
Y+round(pt(Arrow)[i+1].X*sn+pt(Arrow)[i+1].Y*cs),
c)
end;
end;
BEGIN
gd:=vga;
gm:=2;
InitGraph(gd,gm,'');
r:=174;
GenArrow(R-10,5,ASec);
GenArrow(R-30,5,AMin);
GenArrow(R-70,5,AHour);
FilledCircle(300,250,200,12);
FilledCircle(300,250,180,10);
FilledCircle(300,250,174,15);
SetFillStyle(1,12);
Bar(150,247,170,253);
Bar(435,247,455,253);
Bar(297,389,303,409);
Bar(297,95,303,115);
SetColor(0);
for PrS:=0 to 59 do begin
if (PrS mod 5)=0 then SetLineStyle(0,0,3) else SetLineStyle(0,0,1);
Line(
300+round(176*sin(Prs*6*Grd)),
250-round(176*cos(Prs*6*Grd)),
300+round(179*sin(Prs*6*Grd)),
250-round(179*cos(Prs*6*Grd))
)
end;
GetLocalTime(T);
PrS:=T.Second;
PrM:=T.Minute;
PrH:=T.Hour;
SetColor(0);
OutTextXY(350,247,Format('%.2d.%.2d.%.4d',[T.Day, T.Month, T.Year]));
OutTextXY(270,370,Format('%.2d:%.2d:%.2d',[T.Hour, T.Minute, T.Second]));
DrawArrow(300,250, (PrH+PrM/60+PrS/3600)*30*Grd, HourC, 4, AHour);
DrawArrow(300,250, (PrM+PrS/60)*6*Grd, MinC, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, SecC, 4, ASec);
repeat
GetLocalTime(T);
if T.Second<>PrS then begin
DrawArrow(300,250, (PrH+PrM/60+PrS/3600)*30*Grd, 15, 4, AHour);
DrawArrow(300,250, (PrM+PrS/60)*6*Grd, 15, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, 15, 4, ASec);
SetFillStyle(1,12);
Bar(150,247,170,253);
Bar(435,247,455,253);
Bar(297,389,303,409);
Bar(297,95,303,115);
SetFillStyle(1, 15);
Bar(345,240,400,255);
Bar(265,365,370,390);
SetColor(0);
OutTextXY(350,247,Format('%.2d.%.2d.%.4d',[T.Day, T.Month, T.Year]));
OutTextXY(270,370,Format('%.2d:%.2d:%.2d',[T.Hour, T.Minute, T.Second]));
PrS:=T.Second;
if T.Hour<>PrH then PrH:=T.Hour;
if T.Minute<>PrM then PrM:=T.Minute;
DrawArrow(300,250, (PrH+PrM/60+PrS/3600)*30*Grd, HourC, 4, AHour);
DrawArrow(300,250, (PrM+PrS/60)*6*Grd, MinC, 4, AMin);
DrawArrow(300,250, PrS*6*Grd, SecC, 4, ASec)
end
until keypressed;
CloseGraph;
END.
Вернуться в Обучение Free Pascal
Сейчас этот форум просматривают: Yandex [Bot] и гости: 11