скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

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

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, 4, 5


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.