![]() |
|
|
Реферат: Тригонометричні ефемериди планет Сонячної системиbr>
3. Програма на мові програмування Delphi. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,Unit2, jpeg; type TForm1 = class(TForm) Panel1: TPanel; Image1: TImage; StaticText1: TStaticText; 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 (D0<=0) or( D0>31) 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 (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 дні |
|
|||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |