Модератор: Модераторы
Водород писал(а):дааа, аааа яяяя нннеееее мммммоооогггуууууу
Водород писал(а):блин я это сквощь пальцев не пустил пытался что то делать но не фига сёдня весь день этим паскалем занимаюсь мозги просто кепят
Водород писал(а):четверг это отдельно, ехать нужно трудоустраиваться на лето... хлапот ппц
Водород писал(а):я тебя не прошу ехать за меня трудоустраиваться))))
Водород писал(а):всего то помочь с программой, я не виноват что у меня не получаеться((( пытаюсь как могу

Водород писал(а):ууу выделенный сервер это не шутки))))
Водород писал(а):помог, я не жалуюсь вот токо я не могу воспользоваться твоим советом потому что не понимаю как(((
 
 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
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1