planet (Тригонометричні ефемериди планет Сонячної системи), страница 3

2016-07-31СтудИзба

Описание файла

Документ из архива "Тригонометричні ефемериди планет Сонячної системи", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "planet"

Текст 3 страницы из документа "planet"

StaticText2: TStaticText;

StaticText3: TStaticText;

StaticText4: TStaticText;

StaticText5: TStaticText;

GroupBox1: TGroupBox;

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

StaticText6: TStaticText;

Image2: TImage;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var PAR : string;

begin

PAR:=Edit1.Text;

If PAR='orion 17' Then

begin

Form2:=TForm2.Create(Application);

Form2.ShowModal;

Form2.Free;

Edit1.Clear;

end

else

begin

if MessageDlg('Пароль невірний! Значення " '+Edit1.Text+' " не є паролем! Зверніться до розробника',

mtError,[mbOK],0)=mrOK then

Edit1.Clear;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Image1.Picture.LoadFromFile('star.jpg');

Image2.Picture.LoadFromFile('star2.jpg');

end;

end.

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls,Unit3,KonstPLN,Eagth,Mars,Jupiter,Saturn,Mercury,

Venus,Uran,Neptun,Pluton, Common,Unit4;

type

TForm2 = class(TForm)

Panel1: TPanel;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Image1: TImage;

Image2: TImage;

RadioButton1: TRadioButton;

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

RadioButton9: TRadioButton;

StaticText1: TStaticText;

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

StaticText5: TStaticText;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

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

Label46: TLabel;

procedure RadioButton1Click(Sender: TObject);

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

procedure RadioButton9Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

Form3: TForm3;

PLN,D0,M0,R0,i,DR,n : integer;

FI,LB,k,S0,P0,RM, ED,EG,ER,ER0,ESD,EH,ER1,EGD,

AD,AG,AR,x,AR0,ASD,AH,AR1,AGD, AAD1,ARS,AZE,AZP,

ABD,AV,AYD,AYDS,AAD0,AAD,AA,AAM,AAS,AID1,AID2,AID,AB,ABM,AF, AT1,ATK,ATKL,

ATKLM,AP,AT2,AT3,ATG,ATS,ATSL,ATSLM,ATZ,ATZL,ATZLM,AZ,AAH,ABG,ATKLH,

ATSLH,ATZLH :real;

implementation

{$R *.dfm}

procedure TForm2.Button4Click(Sender: TObject);

begin

MessageDlg('Інформація! Деякі географічні координати:'+#13+'Чортків FI=49.03, LB=25.83'+#13+'Тернопіль FI=49.6, LB=25.6'+#13+'Львів FI=49.8, LB=24'+#13+'Київ FI=50.5, LB=30.5'+#13+'Лондон(Грінвіч) FI=51.6, LB=0'

,mtInformation,[mbOK],0);

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

close;

end;

procedure TForm2.RadioButton1Click(Sender: TObject);

begin

PLN:=1;ZPL:=1; ZPL1:=1;

Image1.Picture.LoadFromFile('mercury.jpg');

end;

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

procedure TForm2.RadioButton9Click(Sender: TObject);

begin

PLN:=9; ZPL:=9; ZPL1:=9;

Image1.Picture.LoadFromFile('pluton.jpg');

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

Image1.Picture.LoadFromFile('star1.jpg');

Image2.Picture.LoadFromFile('sun.bmp');

ComboBox1.ItemIndex:=8;

ComboBox2.ItemIndex:=0;

ComboBox3.ItemIndex:=0;

Label4.Visible:=false;

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

Label46.Visible:=false;

Button2.Enabled:=false;

end;

procedure TForm2.Button1Click(Sender: TObject);

begin

Button2.Enabled:=false;

Label4.Visible:=false;

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

Label46.Visible:=false;

if PLN=0 then //захист від помилки

begin

if MessageDlg(' Ви забули вибрати планету!'+#13+'По замовчуванню буде вибрана Земля.'

,mtError,[mbOK],0)=mrOK then

begin

RadioButton3.Checked:=true;

PLN:=3;

Image1.Picture.LoadFromFile('eath.jpg');

end;

end;

D0:=StrToInt(ComboBox1.Text);

ZD:=StrToInt(ComboBox1.Text);

ZD1:=StrToInt(ComboBox1.Text);

if (D031) then //захист від дурня

begin

if MessageDlg('Помилка введення номера дня місяця!'

,mtError,[mbOK],0)=mrOK then

begin

ComboBox1.ItemIndex:=8;

D0:=StrToInt(ComboBox1.Text);

ZD:=StrToInt(ComboBox1.Text);

ZD1:=StrToInt(ComboBox1.Text);

end;

end;

if ComboBox2.ItemIndex=0 then

begin

M0:=1;ZM:=1; ZM1:=1;

end;

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

if ComboBox2.ItemIndex=11 then

begin

M0:=12;ZM:=12; ZM1:=12;

end;

if M0=0 then //захист від помилки

begin

if MessageDlg('Введення значення місяця цифрою недопустиме!',

mtError,[mbOK],0)=mrOK then

begin

ComboBox2.ItemIndex:=0;

M0:=1;

ZM:=1;

ZM1:=1;

end;

end;

R0:=StrToInt(ComboBox3.Text);

ZR:=StrToInt(ComboBox3.Text);

ZR1:=StrToInt(ComboBox3.Text);

if (R02100) then //захист від помилки

begin

if MessageDlg('Помилка граничних меж дат спостереження 1990-2100 рр.'

,mtError,[mbOK],0)=mrOK then

begin

ComboBox3.ItemIndex:=0;

R0:=StrToInt(ComboBox3.Text);

ZR:=StrToInt(ComboBox3.Text);

ZR1:=StrToInt(ComboBox3.Text);

end;

end;

FI:=StrToFloat(Edit1.Text);

if abs(FI)>90 then //захист від помилки

begin

if MessageDlg('Помилка введення географічної широти місця спостереження!'+#13+' Має бути в межах +-90 градусів',

mtError,[mbOK],0)=mrOK then

begin

Edit1.Text:='56';

FI:=StrToFloat(Edit1.Text);

end;

end;

LB:=StrToFloat(Edit2.Text);

if LB<0 then

begin

LB:=360+LB;

end;

i:=0;

if R0=1992 or 1996 or 2000 or 2004 or 2008 or 2012 then //високосні роки

begin

i:=1 //29 лютого

end;

case M0 of //DR номер дня моменту спостереження

1: begin DR:=D0 ; n:=0 ; k:=-0.040;end; //з початку року

2: begin DR:=31+D0; n:=0;k:=-0.094;end;

3: begin DR:=59+i+D0; n:=0;k:=-0.13;end; //n мітка пори року 0-зима,1-літо

4: begin DR:=59+i+31+D0 ; n:=1;k:=-0.131;end;

5: begin DR:=59+i+61+D0; n:=1;k:=-0.103;end; //k середня поправка зоряного часу

6: begin DR:=59+i+92+D0; n:=1;k:=-0.051;end;

7: begin DR:=59+i+122+D0; n:=1;k:=0.013;end;

8: begin DR:=59+i+153+D0; n:=1;k:=0.073;end;

9: begin DR:=59+i+184+D0; n:=1;k:=0.107;end;

10: begin DR:=59+i+214+D0; n:=0;k:=0.114;end;

11: begin DR:=59+i+245+D0; n:=0;k:=0.083;end;

12: begin DR:=59+i+275+D0; n:=0;k:=0.028;end;

end;

S0:=int((12-M0)/10); //формула 1

P0:=int((S0*12+M0-2)*30.59+D0);

RM:=int((R0-S0-1900)*365.25+P0); //номер дати спостереження з 1 березня 1900р.

if RM<=32851 then //захист від помилки

begin

if MessageDlg('Помилка введення дати спостереження!'+#13+' Має бути не раніше 9 січня 1990р.',

mtError,[mbOK],0)=mrOK then

begin

ComboBox1.ItemIndex:=8;

D0:=StrToInt(ComboBox1.Text);

ComboBox2.ItemIndex:=0;

M0:=1;

ComboBox3.ItemIndex:=0;

R0:=StrToInt(ComboBox3.Text);

end;

end;

case PLN of

1: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Mercury1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Mercury2(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,R0);

Mercury3(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,n);end; //запуск процедур в модулях

2: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Venus1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Venus2(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,R0);

Venus3(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,n);end;

3: Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

4: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

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

Mars2(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,R0);

Mars3(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,n);end;

5: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Jupiter1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Jupiter2(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,R0);

Jupiter3(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,n);end;

6: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Saturn1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Saturn2(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,R0);

Saturn3(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,n);end;

7: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Uran1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Uran2(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,R0);

Uran3(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,n);end;

8: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Neptun1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Neptun2(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,R0);

Neptun3(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,n);end;

9: begin Eagth1(EG,ER,ER0,ESD,EH,ER1,EGD, ED,DR);

Pluton1(AD,AG,AR,x,AR0,ASD,AH,AR1,AGD,RM,EG);

Pluton2(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,R0);

Pluton3(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,n);end;

end;

if PLN=3 then

begin

Label4.Visible:=true;

Label14.Visible:=true;

Label27.Visible:=true;

Label27.Caption:=FloatToStrF(EG,ffGeneral,7,3);

Label5.Visible:=true;

Label15.Visible:=true;

Label28.Visible:=true;

Label28.Caption:=FloatToStrF(ER,ffGeneral,6,3);

D0:=0;

M0:=0;

R0:=0;

end

else

begin

Label4.Visible:=true;

Label14.Visible:=true;

Label27.Visible:=true;

Label27.Caption:=FloatToStrF(AG,ffGeneral,7,3);

Label5.Visible:=true;

Label15.Visible:=true;

Label28.Visible:=true;

Label28.Caption:=FloatToStrF(AR,ffGeneral,6,3);

Label6.Visible:=true;

Label29.Visible:=true;

Label16.Visible:=true;

Label30.Visible:=true;

Label17.Visible:=true;

Label29.Caption:=FloatToStrF(AAH,ffGeneral,2,0);

Label30.Caption:=FloatToStrF(AAM,ffGeneral,4,2);

Label7.Visible:=true;

Label31.Visible:=true;

Label18.Visible:=true;

Label41.Visible:=true;

Label42.Visible:=true;

Label31.Caption:=FloatToStrF(ABG,ffGeneral,2,0);

Label41.Caption:=FloatToStrF(ABM,ffGeneral,4,2);

Label8.Visible:=true;

Label32.Visible:=true;

Label19.Visible:=true;

Label32.Caption:=FloatToStrF(AYDS,ffGeneral,3,1);

Label9.Visible:=true;

Label33.Visible:=true;

Label33.Caption:=FloatToStrF(AF,ffGeneral,3,2);

Label10.Visible:=true;

Label34.Visible:=true;

Label21.Visible:=true;

Label35.Visible:=true;

Label23.Visible:=true;

Label34.Caption:=FloatToStrF(ATSLH,ffGeneral,2,0);

Label35.Caption:=FloatToStrF(ATSLM,ffGeneral,4,2);

Label11.Visible:=true;

Label36.Visible:=true;

Label20.Visible:=true;

Label37.Visible:=true;

Label24.Visible:=true;

Label36.Caption:=FloatToStrF(ATKLH,ffGeneral,2,0);

Label37.Caption:=FloatToStrF(ATKLM,ffGeneral,4,2);

Label12.Visible:=true;

Label38.Visible:=true;

Label22.Visible:=true;

Label39.Visible:=true;

Label25.Visible:=true;

Label38.Caption:=FloatToStrF(ATZLH,ffGeneral,2,0);

Label39.Caption:=FloatToStrF(ATZLM,ffGeneral,4,2);

Label13.Visible:=true;

Label40.Visible:=true;

Label26.Visible:=true;

Label40.Caption:=FloatToStrF(AZ,ffGeneral,4,2);

if abs(int(AG-EG))<=5 then

begin

Label43.Visible:=true;

end;

Label44.Visible:=true;

Label45.Visible:=true;

Label46.Visible:=true;

Label45.Caption:=FloatToStrF(AV,ffGeneral,6,3);

ZAA:=AA;

ZAB:=AB;

ZAA1:=AA;

ZAB1:=AB;

D0:=0;

M0:=0;

R0:=0;

Button2.Enabled:=true;

end;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form3:=TForm3.Create(Application);

Form3.ShowModal;

Form3.Free;

Button2.Enabled:=false;

end;

end.

unit KonstPLN;

interface

Const AO=149597870; N0=0.01; //астрономічна одиниця км

Eri=23.452295;Ari=25.2;Jri=3.1;Mri=7;Vri=3.4;Sri=26.8;

Uri=98;Nri=29;Pri=1;//нахил екватора до екліптики

Eao=1;Aao=1.523688;Jao=5.202803;Mao=0.387099;Vao=0.723322;Sao=9.538843;

Uao=19.190978;Nao=30.070672;Pao=39.51774;//велика піввісь орбіти

Eeo=0.016738;Aeo=0.09334;Jeo=0.048387;Meo=0.20562;Veo=0.006806;Seo=0.056;

Ueo=0.0472;Neo=0.008553;Peo=0.253;//ексцентриситет орбіти

Eap=104.24375;Aap=335.7197;Jap=15.2;Map=77.31552;Vap=131.53526;Sap=86.25;

Uap=171.14;Nap=45.5;Pap=225;//довгота перигелію орбіти

Etd=365.24219;Atd=686.9797;Jtd=4332.5879;Mtd=87.9693;Vtd=224.7008;Std=10759.201;

Utd=30685.93;Ntd=60187.65;Ptd=90731.2;//період обертання навколо Сонця дн.

Ere=6378.14;Are=3390;Jre=71492;Mre=2440;Vre=6052;Sre=60268;

Ure=24300;Nre=25000;Pre=1500;//екваторіальний радіус планети км.

Evo=29.77;Avo=24.22;Jvo=13.07;Mvo=48.89;Vvo=35;Svo=9.65;

Uvo=6.8;Nvo=5.43;Pvo=4.74;//орбітальна швидкість планети км/с

Avy=49.966942;Jvy=40.690276;Mvy=48.450552;Vvy=76.998886;Svy=113.99442;

Uvy=74.590276;Nvy=131.95776;Pvy=109.9036;//довгота висхідного вузла орбіти

Aie=1.85;Jie=1.3069442;Mie=7.0033332;Vie=3.3938886;Sie=2.491111;

Uie=0.772777;Nie=1.7763886;Pie=17.313332;//нахил орбіти до екліптики

implementation

begin

end.

unit Eagth;

interface

Uses Math,KonstPLN;

Const ED5=9; EG5=108.6; ER5=0.9833; // початкові координати Землі 9 січня 1990р.

Procedure Eagth1(var EG,ER,ER0,ESD,EH,ER1,EGD,ED:real;var DR:integer);

implementation

Procedure Eagth1;

begin

ED:=ED5; EG:=EG5; ER:=ER5;

ER0:=Evo*86400/AO*N0; {формула 4} //шлях проходження за N3 дні

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р. Результати, які видала програма на цю да-
ту приведенні в таблиці (  = 0h,  = 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.Висновки.

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

 =  + (  )
де:  - (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 , я з задоволенням вишлю її вам на шару.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее