AnyKey`щик
Регистрация: 20.06.2011
Сообщений: 12
Написано 0 полезных сообщений (для 0 пользователей)
|
Прошу помочь!!!
Нужна программа для расчета положения солнца. Вот что наваял. Но нужна точность 7 знаков после запятой. Как выкрутится?
program NewProject1;
var a,a1,a2,a3,b,b1,b2,b3,c,c1,c2,d,d1,d2,e,e1,f,f1,f2 ,g,g1,k,tc,dal,b00,t00,sin1,sin2,sin3,sin4,tg1,tg2 ,tg3,tg4,cos1,cos2,cos3,cos4: real;
var a11,a22,a33,b11,b22,b33,c11,c22,d11,d22,e11,f11,f2 2,g11,k11,tc11,label_id1,label_id2,label_id3:integ er;
ok:command;
begin
ShowForm;
ok:=createCommand('Ок',CM_OK,1);
a11:=formAddTextField('Широта в градусах','',20,TF_NUMERIC);
a22:=formAddTextField('Широта в минутах','',20,TF_NUMERIC);
a33:=formAddTextField('Широта в секундах','',20,TF_NUMERIC);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
a1:= StringToReal(FormGetText(a11),10);
a2:= StringToReal(FormGetText(a22),10);
a3:= StringToReal(FormGetText(a33),10);
a:=((a3/60)+a2)/60+a1;
ClearForm;
b11:=formAddTextField('Долгота в градусах','',20,TF_NUMERIC);
b22:=formAddTextField('Долгота в минутах','',20,TF_NUMERIC);
b33:=formAddTextField('Долгота в секундах','',20,TF_NUMERIC);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
b1:= StringToReal(FormGetText(b11),10);
b2:= StringToReal(FormGetText(b22),10);
b3:= StringToReal(FormGetText(b33),10);
b:=((b3/60)+b2)/60+b1;
ClearForm;
c11:=formAddTextField('Время, часов','',20,TF_NUMERIC);
c22:=formAddTextField('Время, минут','',20,TF_NUMERIC);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
c1:= StringToReal(FormGetText(c11),10);
c2:= StringToReal(FormGetText(c22),10);
c:= (c2/60)+c1;
ClearForm;
d11:=formAddTextField('b0 градусов','',20,TF_NUMERIC);
d22:=formAddTextField('b0 минут','',20,TF_ANY);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
d1:= StringToReal(FormGetText(d11),10);
d2:= StringToReal(FormGetText(d22),10);
d:= (d2/60)+d1;
ClearForm;
e11:=formAddTextField('^b0 минут','',20,TF_ANY);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
e1:= StringToReal(FormGetText(e11),10);
e:= e1/60;
ClearForm;
f11:=formAddTextField('t0 градусов','',20,TF_NUMERIC);
f22:=formAddTextField('t0 минут','',20,TF_ANY);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
f1:= StringToReal(FormGetText(f11),10);
f2:= StringToReal(FormGetText(f22),10);
f:= (f2/60)+f1;
ClearForm;
g11:=formAddTextField('^t0 минут','',20,TF_ANY);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
g1:= StringToReal(FormGetText(g11),10);
g:= g1/60;
ClearForm;
k11:=formAddTextField('Коэффициент К','',20,TF_ANY);
tc11:=formAddTextField('Tc(весеннее и летнее время=1)','',20,TF_NUMERIC);
addCommand(ok);
delay(500);
repeat until getClickedCommand=ok;
k:= StringToReal(FormGetText(k11),10);
tc:= StringToReal(FormGetText(tc11),10);
ClearForm;
dal:=(c-tc)+k;
b00:= d+dal*e;
t00:=f+dal*g+15*(c-tc)+b;
sin1:= sin(toRadians(t00));
tg1:= tan(toRadians(a));
cos1:= cos(toRadians(t00));
tg2:= tan(toRadians(b00));
cos2:= cos(toRadians(a));
tg3:= sin1/((tg1*cos1-tg2)*cos2);
tg4:= atan(tg3)*180/pi;
label_id1 := formAddString('b='+b00);
label_id2 := formAddString('t='+t00);
label_id3 := formAddString('tga='+tg4);
delay(50000);
end.
Прошу ПОМОГИТЕ!!!!!!
|