на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Реферат: Тригонометричні ефемериди планет Сонячної системи


           ESD:=(PI*sqr(Eao)*sqrt(1-sqr(Eeo))/Etd)*N0;//формула 3 площа еліпса орбіти за N3дні

        Repeat

          ED:=ED+N0;                                        //2 закон Кеплера

          EH:=2*ESD/ER;                                     //радіус-вектор через N3 днів

          ER1:=sqrt(sqr(EH)+sqr(ER-sqrt(abs(sqr(ER0)-sqr(EH)))));//формула 5

          EGD:=arctan((1/ER1*EH)/sqrt(1-sqr(1/ER1*EH)))*180/PI;  //формула 6

          EG:=EG+EGD;                                             //кут проходу за N3 дні

          while EG>=360 do

            begin

              EG:=EG-360

            end;

          ER1:=(Eao*(1-sqr(Eeo)))/(1+Eeo*cos((EG-Eap)*PI/180)); //формула 2

          ER:=ER1;

       Until DR<=ED;                                           //обчислення до моменту спостереження

      end;

end.

unit Mars;

interface

 Uses KonstPLN,Eagth,Math;


  Const AD5=32852;              //номер дня 9 січня 1990р. з 1 березня 1900р.

         AG5=235.0; AR5=1.538;  //початкове положення Марса 9 січня 1990р.


  Procedure Mars1(var AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG:real);

  Procedure Mars2(var AAD1,ARS,AZE,AZP,ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,

                  ABM,AF, ER,AG,EG,AR,AAH,ABG:real;var  R0:integer);

  Procedure Mars3(var AT1,ATK,ATKL,ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,

                  AA,EG,k,LB,AYD,AV,FI,AB,ATKLH,ATSLH,ATZLH:real;var n:integer);

implementation

  Procedure Mars1;

  begin

       AD:=AD5; AG:=AG5; AR:=AR5; x:=0;

       AR0:=Avo*86400/AO*N0;            //формула 4  шлях проходження за N4 дні

       ASD:=(PI*sqr(Aao)*sqrt(1-sqr(Aeo))/Atd)*N0;//формула 3  площа еліпса орбіти за N4 дні

     Repeat

       AD:=AD+N0;                                 //2 закон Кеплера

       AH:=2*ASD/AR;                              //радіус-вектор через N4 дні

       AR1:=sqrt(sqr(AH)+sqr(AR-sqrt(abs(sqr(AR0)-sqr(AH)))));//формула 5

       AGD:=arctan((1/AR1*AH)/sqrt(1-sqr(1/AR1*AH)))*180/PI;//формула 6

       AG:=AG+AGD;                                          //кут проходу за N4 дні

       While AG>=360 do

         begin

           AG:=AG-360

         end;

       AR1:=(Aao*(1-sqr(Aeo)))/(1+Aeo*cos((AG-Aap)*PI/180));//формула 2

       AR:=AR1;

       x:=x+1                                               //кількість циклів обчислення

     Until RM<=AD;                                          //обчислення до моменту спостереження

  end;//Mars1

  Procedure Mars2;

   begin

     AAD1:=arctan((ER*sin((AG-EG)*PI/180))/(AR-ER*cos((AG-EG)*PI/180)))*180/PI;//зміщення прямого

     ARS:=sin((AG-Avy)*PI/180)*sin(Aie*PI/180);                      //піднесення, формула 7

     AZE:=AR*ARS;

     AZP:=sqrt(sqr(ER*sin((EG-AG)*PI/180))+sqr(AR*sqrt(1-sqr(ARS))-ER*cos((EG-AG)*PI/180)));

     ABD:=arctan(AZE/AZP)*180/PI;                 //зміщення схилення, формула 8

     AV:=sqrt(sqr(AZE)+sqr(AZP));//лінійна відстань між Землею і Марсом, формула 9

     AYD:=2*arctan(Are/(AV*AO))*180/PI;//кутовий діаметр Марса, формула 10

     AYDS:=AYD*3600;

     AAD0:=arctan(sqrt(1-sqr((sqr(AV)+sqr(AR)-sqr(ER))/(2*AV*AR)))/((sqr(AV)+sqr(AR)-sqr(ER))/

     (2*AV*AR)))*180/PI;

     AAD:=sqrt(abs(sqr(AAD0)-sqr(ABD)));

       If AAD1<0 then

          begin

            AAD:=-AAD;

          end;

     AA:=(AG+AAD)/15;           //пряме піднесення Марса

       If AA>=24 then

          begin

            AA:=AA-24;

          end;

       If AA<0 then

          begin

            AA:=AA+24;

          end;

      AAH:=int(AA);

      AAM:=frac(AA)*60;

      AAS:=frac(AAM)*60;

     AID1:=sin((AA*15)*PI/180)*(Eri-0.00013011111*(R0-1900));//схилення точки екліптики

     AID2:=arctan((sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180))/

    (sqrt(1-sqr(sin((180-AA*15)*PI/180)*sin((Eri-0.00013011111*(R0-1900))*PI/180)))))*

    180/PI;                                          //те саме другим методом

    AID:=(AID1+AID2)/2;                              //їх середнє значення

    AB:=AID+ABD;              //Схилення Марса

    ABG:=int(AB);

    ABM:=frac(AB)*60;

    AF:=(1/2)+(cos(AAD0*PI/180)/2);         //фаза диска Марса, формула 11

    end;//Mars2

  Procedure Mars3;

    begin

      AT1:=AA-(EG/15+k);

        If AT1<0 then

         begin

           AT1:=AT1+24;

         end;

      ATK:=AT1/1.002738;       //час кульмінації Марса, формула 14

      ATKL:=ATK-LB/15+n;       //місцевий час кульмінації

        if ATKL<0 then

         begin

           ATKL:=ATKL+24;

         end;

    ATKLH:=int(ATKL); ATKLM:=frac(ATKL)*60;

    AP:=90+0.59+(AYD/2)-(arctan(Ere/(AV*AO))*180/PI);

    AT2:=(cos(AP*PI/180)-sin(FI*PI/180)*sin(AB*PI/180))/(cos(FI*PI/180)*cos(AB*PI/180));

    AT3:=arctan(sqrt(1-sqr(AT2))/AT2)*180/PI;//годинний кут сходу і заходу Марса

        if AT3<=0 then                            //формула 12

         begin

           AT3:=AT3+180;

         end;

      ATG:=AT3/15;

      ATS:=ATK-ATG;         //час сходу Марса

        if ATS<0 then

         begin

           ATS:=ATS+24;

         end;

      ATSL:=ATS-LB/15+n;    //місцевий час сходу

        if ATSL<0 then

         begin

           ATSL:=ATSL+24;

         end;

      ATSLH:=int(ATSL); ATSLM:=frac(ATSL)*60;

      ATZ:=ATK+ATG;         //час заходу Марса

        if ATZ>=24 then

         begin

           ATZ:=ATZ-24;

         end;

      ATZL:=ATZ-LB/15+n;    //місцевий час заходу

        if ATZL<0 then

         begin

           ATZL:=ATZL+24;

         end;

      ATZLH:=int(ATZL); ATZLM:=frac(ATZL)*60;

      AZ:=arctan((cos(AB*PI/180)*sin(AT3*PI/180)/sin(AP*PI/180))/sqrt(1-sqr((cos(AB*PI/180)*

      sin(AT3*PI/180))/sin(AP*PI/180))))*180/PI; //азимут Марса при сході і заході

        if AB>0 then                                   //формула 13

         begin

           AZ:=180-AZ;

         end;

      end;//Mars3

end.

unit Common;

interface

var

  ZPL,ZD,ZM,ZR,ZPL1,ZD1,ZM1,ZR1 : integer;

  ZAA,ZAB,ZAA1,ZAB1 :real;

implementation

end.

unit Unit3;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons, Common,Math,Unit4;

type

  TForm3 = class(TForm)

    Image1: TImage;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    Button1: TButton;

    Label1: TLabel;   

    -----------------------

    Label31: TLabel;

    StaticText1: TStaticText;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

  Mas = array[1..311] of real;

var

  Form3: TForm3;

   ZA,ZB,ZP : Mas;

   ZAG,ZBG : integer;

   ZAM,ZBM,x,y,x3,y3 : real;

    x4,y4,x5,y5,x0,y0,x1,y1,x2,y2 :variant;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);

 var  i:integer;

begin

SpeedButton2.visible:=false;

Label1.Visible:=false;

Label2.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

Image1.Canvas.Brush.Color:=clBlack;

Image1.Canvas.Brush.Style:=bsSolid;

Image1.Canvas.Rectangle(0,0,1010,255);

Image1.Canvas.pen.color:=clWhite;

Image1.Canvas.Moveto (0,0);

Image1.Canvas.LineTo (1000,0);

Image1.Canvas.LineTo (1000,250);

Image1.Canvas.LineTo (0,250);

Image1.Canvas.LineTo (0,0);

Image1.Canvas.MoveTo(0,139);

Image1.Canvas.LineTo (1000,139);

//ruscu

Image1.Canvas.MoveTo(1000,0);

Image1.Canvas.LineTo (1005,0);

Image1.Canvas.MoveTo(1000,28);

Image1.Canvas.LineTo (1005,28);

Image1.Canvas.MoveTo(1000,56);

Image1.Canvas.LineTo (1005,56);

Image1.Canvas.MoveTo(1000,83);

Image1.Canvas.LineTo (1005,83);

Image1.Canvas.MoveTo(1000,111);

Image1.Canvas.LineTo (1005,111);

Image1.Canvas.MoveTo(1000,139);

Image1.Canvas.LineTo (1005,139);

Image1.Canvas.MoveTo(1000,167);

Image1.Canvas.LineTo (1005,167);

Image1.Canvas.MoveTo(1000,194);

Image1.Canvas.LineTo (1005,194);

Image1.Canvas.MoveTo(1000,222);

Image1.Canvas.LineTo (1005,222);

Image1.Canvas.MoveTo(1000,250);

Image1.Canvas.LineTo (1005,250);

//ruscu

Image1.Canvas.MoveTo(1000,250);

Image1.Canvas.LineTo (1000,255);

Image1.Canvas.MoveTo(958,250);

Image1.Canvas.LineTo (958,255);

Image1.Canvas.MoveTo(917,250);

Image1.Canvas.LineTo (917,255);

Image1.Canvas.MoveTo(875,250);

Image1.Canvas.LineTo (875,255);

Image1.Canvas.MoveTo(833,250);

Image1.Canvas.LineTo (833,255);

Image1.Canvas.MoveTo(792,250);

Image1.Canvas.LineTo (792,255);

Image1.Canvas.MoveTo(750,250);

Image1.Canvas.LineTo (750,255);

Image1.Canvas.MoveTo(708,250);

Image1.Canvas.LineTo (708,255);

Image1.Canvas.MoveTo(667,250);

Image1.Canvas.LineTo (667,255);

Image1.Canvas.MoveTo(625,250);

Image1.Canvas.LineTo (625,255);

Image1.Canvas.MoveTo(583,250);

Image1.Canvas.LineTo (583,255);

Image1.Canvas.MoveTo(542,250);

Image1.Canvas.LineTo (542,255);

Image1.Canvas.MoveTo(500,250);

Image1.Canvas.LineTo (500,255);

Image1.Canvas.MoveTo(458,250);

Image1.Canvas.LineTo (458,255);

Image1.Canvas.MoveTo(417,250);

Image1.Canvas.LineTo (417,255);

Image1.Canvas.MoveTo(375,250);

Image1.Canvas.LineTo (375,255);

Image1.Canvas.MoveTo(333,250);

Image1.Canvas.LineTo (333,255);

Image1.Canvas.MoveTo(292,250);

Image1.Canvas.LineTo (292,255);

Image1.Canvas.MoveTo(250,250);

Image1.Canvas.LineTo (250,255);

Image1.Canvas.MoveTo(208,250);

Image1.Canvas.LineTo (208,255);

Image1.Canvas.MoveTo(167,250);

Image1.Canvas.LineTo (167,255);

Image1.Canvas.MoveTo(125,250);

Image1.Canvas.LineTo (125,255);

Image1.Canvas.MoveTo(83,250);

Image1.Canvas.LineTo (83,255);

Image1.Canvas.MoveTo(42,250);

Image1.Canvas.LineTo (42,255);

Image1.Canvas.MoveTo(0,250);

Image1.Canvas.LineTo (0,255);

//And

ZA[1]:=0.07; ZB[1]:=29.02; ZP[1]:=1;

ZA[2]:=1.09; ZB[2]:=35.34; ZP[2]:=1;

ZA[3]:=2.03; ZB[3]:=42.17; ZP[3]:=1;

ZA[4]:=0.38; ZB[4]:=30.48; ZP[4]:=0.5;

ZA[5]:=0.56; ZB[5]:=38.26; ZP[5]:=0.5;

ZA[6]:=1.37; ZB[6]:=48.34; ZP[6]:=0.5;

ZA[7]:=23.01; ZB[7]:=42.16; ZP[7]:=0.5;

ZA[8]:=23.47; ZB[8]:=46.24; ZP[8]:=0.5;

--------------------------------------------

 //Lup

 ZA[311]:=15.21; ZB[311]:=-36.13; ZP[311]:=0.5;

 //ZA[]:=; ZB[]:=; ZP[]:=;

for i:=1 to 311 do

begin

ZAG:=Trunc(ZA[i]);ZAM:=frac(ZA[i])/0.6;

 ZA[i]:=ZAG+ZAM;

ZBG:=Trunc(ZB[i]);ZBM:=frac(ZB[i])/0.6;

 ZB[i]:=ZBG+ZBM;

  if ZB[i]<=0 then

     ZB[i]:=abs(ZB[i])+50

        else  ZB[i]:=50-ZB[i];

  y:=250-(((90-ZB[i])/90)*250);

  x:=((24-ZA[i])/24)*1000;

  x0:=int(x);

  y0:=int(y);

     if ZP[i]=0.5 then

        Image1.Canvas.Pixels[x0,y0]:=clWhite

          else begin

            Image1.Canvas.Pen.Color:=clWhite;

            Image1.Canvas.Brush.Style:=bsSolid;

            Image1.Canvas.Brush.Color:=clWhite;

            x1:=int(x-ZP[i]);

            y1:=int(y-ZP[i]);

            x2:=int(x+ZP[i]);

            y2:=int(y+ZP[i]);

            Image1.Canvas.Ellipse(x1,y1,x2,y2);

          end;

     end;

end;


procedure TForm3.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm3.SpeedButton1Click(Sender: TObject);

begin

SpeedButton2.visible:=true;

Label1.Visible:=true;

Label2.Visible:=true;

Label3.Visible:=true;

Label4.Visible:=true;

Label5.Visible:=true;

Label6.Visible:=true;

case ZPL of

1: Label1.Caption:='Меркурій';

2: Label1.Caption:='Венеру';

4: Label1.Caption:='Марс';

5: Label1.Caption:='Юпітер';

6: Label1.Caption:='Сатурн';

7: Label1.Caption:='Уран';

8: Label1.Caption:='Нептун';

9: Label1.Caption:='Плутон';

end;

Label3.Caption:=IntToStr(ZD);

Label5.Caption:=IntToStr(ZR);

case ZM of

 1: Label4.Caption:='січня';

 2: Label4.Caption:='лютого';

 3: Label4.Caption:='березня';

 4: Label4.Caption:='квітня';

 5: Label4.Caption:='травня';

 6: Label4.Caption:='червня';

 7: Label4.Caption:='липня';

 8: Label4.Caption:='серпня';

 9: Label4.Caption:='вересня';

10: Label4.Caption:='жовтня';

11: Label4.Caption:='листопада';

12: Label4.Caption:='грудня';

end;

  if ZAB<=0 then

   ZAB:=abs(ZAB)+50

     else ZAB:=50-ZAB;

  y3:=250-(((90-ZAB)/90)*250);

  x3:=((24-ZAA)/24)*1000;

  x4:=int(x3-2);

  y4:=int(y3-2);

  x5:=int(x3+2);

  y5:=int(y3+2);

    case ZPL of

    1:Image1.Canvas.Pen.Color:=clRed;

    2:Image1.Canvas.Pen.Color:=clAqua;

    4:Image1.Canvas.Pen.Color:=clRed;

    5:Image1.Canvas.Pen.Color:=clYellow;

    6:Image1.Canvas.Pen.Color:=clLime;

    7:Image1.Canvas.Pen.Color:=clGreen;

    8:Image1.Canvas.Pen.Color:=clBlue;

    9:Image1.Canvas.Pen.Color:=clFuchsia;

    end;

    Image1.Canvas.Ellipse(x4,y4,x5,y5);

end;

procedure TForm3.SpeedButton2Click(Sender: TObject);

begin

Form4:=TForm4.Create(Application);

 Form4.ShowModal;

 Form4.Free;

 SpeedButton2.visible:=false;

end;

end.


 unit Unit4;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls, StdCtrls, Buttons, Common,Math;

type

  TForm4 = class(TForm)

    Image1: TImage;

    Timer1: TTimer;

    Button1: TButton;

    Label1: TLabel;   

    -----------------------

    Label32: TLabel;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

  Mas = array[1..311] of real;

var

  Form4: TForm4;

   ZA,ZB,ZP : Mas;

   ZAG,ZBG : integer;

   ZAM,ZBM,x,y,x3,y3 : real;

    x4,y4,x5,y5,x0,y0,x1,y1,x2,y2,g :variant;

implementation

{$R *.dfm}

procedure TForm4.FormCreate(Sender: TObject);

 var i : integer;

begin

Timer1.Enabled:=true;

Image1.Canvas.Brush.Color:=clBlack;

Image1.Canvas.Brush.Style:=bsSolid;

Image1.Canvas.Rectangle(0,0,2020,505);

Image1.Canvas.pen.color:=clWhite;

Image1.Canvas.Moveto (0,0);

Image1.Canvas.LineTo (2000,0);

Image1.Canvas.LineTo (2000,500);

Image1.Canvas.LineTo (0,500);

Image1.Canvas.LineTo (0,0);

Image1.Canvas.MoveTo(0,278);

Image1.Canvas.LineTo (2000,278);

//ruscu

Image1.Canvas.MoveTo(2000,0);

Image1.Canvas.LineTo (2005,0);

Image1.Canvas.MoveTo(2000,56);

Image1.Canvas.LineTo (2005,56);

Image1.Canvas.MoveTo(2000,111);

Image1.Canvas.LineTo (2005,111);

Image1.Canvas.MoveTo(2000,167);

Image1.Canvas.LineTo (2005,167);

Image1.Canvas.MoveTo(2000,222);

Image1.Canvas.LineTo (2005,222);

Image1.Canvas.MoveTo(2000,278);

Image1.Canvas.LineTo (2005,278);

Image1.Canvas.MoveTo(2000,334);

Image1.Canvas.LineTo (2005,334);

Image1.Canvas.MoveTo(2000,388);

Image1.Canvas.LineTo (2005,388);

Image1.Canvas.MoveTo(2000,444);

Image1.Canvas.LineTo (2005,444);

Image1.Canvas.MoveTo(2000,500);

Image1.Canvas.LineTo (2005,500);

//ruscu

Image1.Canvas.MoveTo(2000,500);

Image1.Canvas.LineTo (2000,505);

Image1.Canvas.MoveTo(1916,500);

Image1.Canvas.LineTo (1916,505);

Image1.Canvas.MoveTo(1834,500);

Image1.Canvas.LineTo (1834,505);

Image1.Canvas.MoveTo(1750,500);

Image1.Canvas.LineTo (1750,505);

Image1.Canvas.MoveTo(1666,500);

Image1.Canvas.LineTo (1666,505);

Image1.Canvas.MoveTo(1584,500);

Image1.Canvas.LineTo (1584,505);

Image1.Canvas.MoveTo(1500,500);

Image1.Canvas.LineTo (1500,505);

Image1.Canvas.MoveTo(1416,500);

Image1.Canvas.LineTo (1416,505);

Image1.Canvas.MoveTo(1334,500);

Image1.Canvas.LineTo (1334,505);

Image1.Canvas.MoveTo(1250,500);

Image1.Canvas.LineTo (1250,505);

Image1.Canvas.MoveTo(1166,500);

Image1.Canvas.LineTo (1166,505);

Image1.Canvas.MoveTo(1084,500);

Image1.Canvas.LineTo (1084,505);

Image1.Canvas.MoveTo(1000,500);

Image1.Canvas.LineTo (1000,505);

Image1.Canvas.MoveTo(916,500);

Image1.Canvas.LineTo (916,505);

Image1.Canvas.MoveTo(834,500);

Image1.Canvas.LineTo (834,505);

Image1.Canvas.MoveTo(750,500);

Image1.Canvas.LineTo (750,505);

Image1.Canvas.MoveTo(666,500);

Image1.Canvas.LineTo (666,505);

Image1.Canvas.MoveTo(584,500);

Image1.Canvas.LineTo (584,505);

Image1.Canvas.MoveTo(500,500);

Image1.Canvas.LineTo (500,505);

Image1.Canvas.MoveTo(416,500);

Image1.Canvas.LineTo (416,505);

Image1.Canvas.MoveTo(334,500);

Image1.Canvas.LineTo (334,505);

Image1.Canvas.MoveTo(250,500);

Image1.Canvas.LineTo (250,505);

Image1.Canvas.MoveTo(166,500);

Image1.Canvas.LineTo (166,505);

Image1.Canvas.MoveTo(84,500);

Image1.Canvas.LineTo (84,505);

Image1.Canvas.MoveTo(0,500);

Image1.Canvas.LineTo (0,505);

//Image1.Canvas.TextOut(10,30,'Boo');

//And

ZA[1]:=0.07; ZB[1]:=29.02; ZP[1]:=1.5;

ZA[2]:=1.09; ZB[2]:=35.34; ZP[2]:=1.5;

ZA[3]:=2.03; ZB[3]:=42.17; ZP[3]:=1.5;

ZA[4]:=0.38; ZB[4]:=30.48; ZP[4]:=0.5;

ZA[5]:=0.56; ZB[5]:=38.26; ZP[5]:=0.5;

ZA[6]:=1.37; ZB[6]:=48.34; ZP[6]:=0.5;

ZA[7]:=23.01; ZB[7]:=42.16; ZP[7]:=0.5;

ZA[8]:=23.47; ZB[8]:=46.24; ZP[8]:=0.5;

---------------------------------------------

 //Lup

 ZA[311]:=15.21; ZB[311]:=-36.13; ZP[311]:=0.5;

 //ZA[]:=; ZB[]:=; ZP[]:=;

for i:=1 to 311 do

begin

ZAG:=Trunc(ZA[i]);ZAM:=frac(ZA[i])/0.6;

 ZA[i]:=ZAG+ZAM;

ZBG:=Trunc(ZB[i]);ZBM:=frac(ZB[i])/0.6;

 ZB[i]:=ZBG+ZBM;

  if ZB[i]<=0 then

     ZB[i]:=abs(ZB[i])+50

        else  ZB[i]:=50-ZB[i];

  y:=500-(((90-ZB[i])/90)*500);

  x:=((24-ZA[i])/24)*2000;

  x0:=int(x);

  y0:=int(y);

     if ZP[i]=0.5 then

        Image1.Canvas.Pixels[x0,y0]:=clWhite

          else begin

            Image1.Canvas.Pen.Color:=clWhite;

            Image1.Canvas.Brush.Style:=bsSolid;

            Image1.Canvas.Brush.Color:=clWhite;

            x1:=int(x-ZP[i]);

            y1:=int(y-ZP[i]);

            x2:=int(x+ZP[i]);

            y2:=int(y+ZP[i]);

            Image1.Canvas.Ellipse(x1,y1,x2,y2);

          end;

     end;

case ZPL1 of

1: Label1.Caption:='Меркурій';

2: Label1.Caption:='Венеру';

4: Label1.Caption:='Марс';

5: Label1.Caption:='Юпітер';

6: Label1.Caption:='Сатурн';

7: Label1.Caption:='Уран';

8: Label1.Caption:='Нептун';

9: Label1.Caption:='Плутон';

end;

Label3.Caption:=IntToStr(ZD1);

Label5.Caption:=IntToStr(ZR1);

case ZM1 of

 1: Label4.Caption:='січня';

 2: Label4.Caption:='лютого';

 3: Label4.Caption:='березня';

 4: Label4.Caption:='квітня';

 5: Label4.Caption:='травня';

 6: Label4.Caption:='червня';

 7: Label4.Caption:='липня';

 8: Label4.Caption:='серпня';

 9: Label4.Caption:='вересня';

10: Label4.Caption:='жовтня';

11: Label4.Caption:='листопада';

12: Label4.Caption:='грудня';

end;

  if ZAB1<=0 then

   ZAB1:=abs(ZAB1)+50

     else ZAB1:=50-ZAB1;

  y3:=500-(((90-ZAB1)/90)*500);

  x3:=((24-ZAA1)/24)*2000;

  x4:=int(x3-2.5);

  y4:=int(y3-2.5);

  x5:=int(x3+2.5);

  y5:=int(y3+2.5);

    case ZPL1 of

    1:Image1.Canvas.Pen.Color:=clRed;

    2:Image1.Canvas.Pen.Color:=clAqua;

    4:Image1.Canvas.Pen.Color:=clRed;

    5:Image1.Canvas.Pen.Color:=clYellow;

    6:Image1.Canvas.Pen.Color:=clLime;

    7:Image1.Canvas.Pen.Color:=clGreen;

    8:Image1.Canvas.Pen.Color:=clBlue;

    9:Image1.Canvas.Pen.Color:=clFuchsia;

    end;

    Image1.Canvas.Ellipse(x4,y4,x5,y5);

    g:=0;

   

end;


procedure TForm4.Button1Click(Sender: TObject);

begin

Timer1.Enabled:=false;

close;

end;


procedure TForm4.Timer1Timer(Sender: TObject);

begin

 begin

 g:=g+1;

if g div 2=5 then

    begin

      Image1.Canvas.Pen.Color:=clBlack;

      Image1.Canvas.Brush.Style:=bsSolid;

      Image1.Canvas.Brush.Color:=clBlack;

      Image1.Canvas.Ellipse(x4,y4,x5,y5);

      g:=0;

    end

      else

          begin

         

            Image1.Canvas.Brush.Style:=bsSolid;

            Image1.Canvas.Brush.Color:=clWhite;

            case ZPL1 of

            1:Image1.Canvas.Pen.Color:=clRed;

            2:Image1.Canvas.Pen.Color:=clAqua;

            4:Image1.Canvas.Pen.Color:=clRed;

            5:Image1.Canvas.Pen.Color:=clYellow;

            6:Image1.Canvas.Pen.Color:=clLime;

            7:Image1.Canvas.Pen.Color:=clGreen;

            8:Image1.Canvas.Pen.Color:=clBlue;

            9:Image1.Canvas.Pen.Color:=clFuchsia;

            end;

             Image1.Canvas.Ellipse(x4,y4,x5,y5);

          end;

       end;  

end;

end.
4. Тестування програми і результати її виконання.

Здійснимо тестування програми на предмет похибки результатів від істинних
значень. Для цього візьмемо з “ Астрономического календаря за 1990 г.” ефе-
мериди Марса на 31 жовтня 1990р. Результати, які видала програма на цю да-
ту приведенні в таблиці ( l = 0h, j = 560 ):

31.10.1990р. 1 2 3 4 5 6 7 8 9 10

істинне

значення

50.3 1.474

04h49.7m

+22031’

17.0’’ 0.96

17h32m

02h13m

10h49m

+ -1350

програмне

значення

50.3 1.474

04h55.8m

+22032’

16.9’’ 0.96

17h41m

02h18m

10h56m

+ -134.50

відносна

похибка

0.14% 0.14% 0.5% 0.05% 0.6% 0% 0.5% 0.3% 0.5% 0.2%

5.Висновки.

Отже повернімося до першого питання простої людини:” Куди направити свій погляд, щоб побачити якусь планету?” Найпростіша відповідь: ”В час кульмінації планети стати обличчям на південь ( напрям небесного меридіану ) і знаючи координату схилення d (AB) обчислити кут e між горизонтом і планетою за виразом:

                                         e = j  + ( d )
де: j - (FI) географічна широта місця спостереження, яку приблизно можна виз-
начити за атласом світу.

Програма явно “сира” – що називається  “demo-версія”. Середовище Delphi дозволило спростити зовнішній інтерфейс програми, ввід-вивід інформації. Введення графічних компонент дозволило наочно зобразити розміщення планет на фоні зоряного неба.

Використання принципово іншого обчислювального “ ядра “ дозволить не тільки досягти більш точних результатів, але й визначити ефемериди для інших тіл Сонячної системи: астероїдів і комет.


6.Список літератури.

1.Астрономический календарь на 1990 г. / Под. Ред. Д.Н.Пономарева. – М.:
Наука. Гл. ред.  физ-мат. лит.  1989. – 336с.

2.Бронштейн В.А.  Как движется Луна? – М.: Наука. Гл. ред. физ-мат. лит.,
1990 – 208с.

3.Климишин И.А. Жемчужины звездного неба . – К.: Рад. шк., 1988. – 206с.

4.Климишин І.А., Тельнюк-Адамчук В.В. Шкільний астрономічний довідник
Кн. Для вчителя. – К.: Рад. шк., 1990. – 287с.

5.Романовський Т.Б. Микрокалькуляторы в рассказах и играх – К.: Рад. шк.,
1989. – 223с.

6.Хоровитц Н. Поиски жизни в Солнечной системе: Пер. с англ./ Под ред. и
с предисл. М.С. Крихкого. – М.: Мир, 1988. – 187с.


P.S. Не судіть надто мою необізненість в справах астрономії, тому що формули з цієї програми виводились мною будучи 15- літнім хлопцем, коли в школі розпочинають вчити тригонометрію. Хто зацікавився даною програмою може звернутися на vetoo@mail.ru , я з задоволенням вишлю її вам на шару.


Страницы: 1, 2, 3


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.