PROGRAM XYZ (IN,OUT); CONST PI=3.1415926536;BOG=0.01745329252;GEOB=0.8901179185; VAR D,M,J1,DA,DE,I,S:INTEGER; JD,D1,T,OMEGA,EXZ,EKL,MA,E,EN,R,V,X,Y,Z,DEC,RA,TB,SA,SU,KUL,VO:REAL; FUNCTION TAN (X:REAL):REAL; BEGIN TAN:=SIN (X)/COS (X); END; FUNCTION ARCSIN (X:REAL):REAL; BEGIN ARCSIN:=ARCTAN (X/SQRT (-X*X+1)); END; FUNCTION ARCCOS (X:REAL):REAL; BEGIN ARCCOS:=-ARCSIN (X)+PI/2; END; FUNCTION JULDAT (D,M,J:INTEGER):REAL; VAR Y,N:INTEGER; BEGIN J:=J+1900; Y:=J;N:=M+1; IF N<=3 THEN BEGIN Y:=J-1;N:=N+12 END; JULDAT:=TRUNC(365.25*Y)+TRUNC (30.6001*N)+D+1720981.5; END; FUNCTION INTERVALL (X,UNTEN,OBEN:REAL):REAL; BEGIN WHILE(X>OBEN) DO X:=X-OBEN; WHILE(X=3) THEN D1:=D1+1; T:=(365*J1+D1)/36525; OMEGA:=BOG*(281.220833+1.719175*T+0.000361); EXZ:=0.01675104-0.0000418*T; EKL:=BOG*(23.452294-0.0130125*T); MA:=BOG*(-1.524155-0.00015*T*T-0.25590255*J1+0.98560027*D1); EN:=MA; REPEAT E:=EN; EN:=MA+EXZ*SIN (E); UNTIL (ABS (E-EN)<1E-7); R:=1-EXZ*COS (E); V:=2*ARCTAN (SQRT ((1+EXZ)/(1-EXZ))*TAN (E/2)); VO:=INTERVALL (V+OMEGA,0,2*PI); X:=R*COS (VO); Y:=R*SIN (VO)*COS (EKL); Z:=R*SIN (VO)*SIN (EKL); DEC:=R*ARCSIN (Z/R); RA:=INTERVALL (2*ARCTAN ((R*COS (DEC)-X)/Y)/BOG/15,0,24); KUL:=INTERVALL ((RA-7.13-0.06570982237*(JD-2444969.5))/1.002737909+1,0,24); TB:=ARCCOS (-TAN (DEC)*TAN (GEOB))/BOG/15; SA:=INTERVALL (KUL-TB,0,24);SU:=INTERVALL (KUL+TB,0,24); WRITE("DATUM:",D:2,"."); CASE M OF 1:WRITE("JANUAR"); 2:WRITE("FEBRUAR"); 3:WRITE("MAERZ"); 4:WRITE("APRIL"); 5:WRITE("MAI"); 6:WRITE("JUNI"); 7:WRITE("JULI"); 8:WRITE("AUGUST"); 9:WRITE("SEPTEMBER"); 10:WRITE("OKTOBER"); 11:WRITE("NOVEMBER"); 12:WRITE("DEZEMBER"); END; WRITELN(" ",J1:2," JD:",JD:13:1); WRITELN("X=",X:10:6," Y=",Y:10:6," Z=",Z:10:6); WRITELN("R=",R:10:6," EXZ=",EXZ:15:8); WRITELN("EKL=",EKL/BOG:16:6); WRITELN("OMG=",OMEGA/BOG:16:6); WRITELN("MA =",MA/BOG:13:6," E =",E/BOG:13:6," V =",INTERVALL (V/BOG,0,360):13:6); WRITELN("SA =",SA:10:4," KUL=",KUL:10:4," SU =",SU:10:4); WRITELN("L =",VO/BOG:13:4); WRITELN("DEC=",DEC/BOG:10:4," RA =",RA:10:4); WRITELN; WRITELN; WRITELN; END; END. -  = f