Реферат: Тригонометричні ефемериди планет Сонячної системи
ZM1:=1;
end;
end;
R0:=StrToInt(ComboBox3.Text);
ZR:=StrToInt(ComboBox3.Text);
ZR1:=StrToInt(ComboBox3.Text);
if (R0<1990) or (R0>2100) 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;