Показать сообщение отдельно
  #1  
Старый 09.03.2008, 15:05
Arti Arti вне форума
Прохожий
 
Регистрация: 24.02.2008
Сообщения: 5
Репутация: 10
По умолчанию Помогите С процедурой

Всем привет. Я новичок в програмировании и меня возникли некоторые сложности....
У меня такая проблема, решил написать небольшую астро програмку, но что то не получается правильно оформить процедуру, вычисления Юлианской дате по заданной. На форме имеется 4 Edit.text'a
Соответсвенно в 1-ый вводится день, во 2-ой месяц, в 3-ий год, в 4-ом появляется результат вычислений т.е Юлианская дата.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Procedure Jday(Day,Month,Year:integer);
Var
  A,B,JD:real;
   Y,M:integer;
  begin
  if Month>2 then
      Y:=Year; M:=Month;
      if (Month=1) or (Month=2) then
      Y:=Year-1; M:=Month+12;
A:=int(Y/100); B:=2-A+int(A/4);
Jd:= Int(365.25 * Y) + Int(30.6001 * (M + 1)) + Day + 1720994.5 + B;
  end;
procedure TForm1.Button1Click(Sender: TObject);
 Var
 Day,Month,Year:integer;
 J:Real;
begin
Day:=strtoint(Edit1.Text);Month:=Strtoint(Edit2.Text); Year:=strtoint(Edit3.Text);
Jday(Day,Month,Year);
Edit4.text:=Floattostr(JD);
end;
end.

Кто подскажет как сделать правильно.
Ответить с цитированием