Berthold
Neues Mitglied
Hallo, liebe Wissende,
neben vielen anderen Sachen interessiere ich mich seit meiner Schulzeit, die schon einige Jahrzehnte her ist, auch für Astronomie. Gerade bin ich dabei, die Pascal-Programme aus "Astronomie für den Personal Computer" in PureBasic zu portieren. Dieses Buch scheint in diesen Kreisen gut bekannt zu sein, wenn man sich die Foreneinträge ansieht.
Nun stoße ich beim Portieren auf die Schwierigkeit, dass in dem Programm "NEWMOON", das auch die Unterprogramm "MDJ" und "CALDAT" benötigen, die Variable "B_MOON" nirgends mit einem Wert geladen wird. Wenn ich auch nicht die einzelnen mathematischen Ausdrücke des Programms verstehe, so kann ich doch den Programmablauf nachvollziehen. Nach meiner Logik hat die Variable "B_MOON" im Hauptprogramm immer den Wert 0 (Null). Und nur dort ist sie zu finden.
Liege ich richtig, oder verstehe ich die Programmiersprache Pascal nicht. (Ein wenig bin ich durch den Unterstrich im Namen dieser Variablen irritiert, obwohl ich in Beschreibungen von Pascal nichts diesbezügliches gefunden habe.)
WRITELN (' Datum':16,'UT':7,'Breite':11); WRITELN;
WRITELN (' h':23,'o':9);
…
LUNATION_0 := TRUNC( D1 * (YEAR_CALC-2000)/100 );
FOR LUNATION_I := LUNATION_0 TO LUNATION_0 + 13 DO
BEGIN
T_NEW_MOON := ( LUNATION_I - D0 ) / D1;
IMPROVE ( T_NEW_MOON, B_MOON );
IMPROVE ( T_NEW_MOON, B_MOON );
MJD_NEW_MOON := 36525.0*T_NEW_MOON + 51544.5;
CALDAT ( MJD_NEW_MOON, DAY,MONTH,YEAR,HOUR );
IF YEAR=YEAR_CALC THEN
WRITELN(DAY:10,MONTH:3,YEAR:5,HOUR:6:1,B_MOON:9:1)
…
Herzliche Grüße aus Mecklenburg
Berthold
neben vielen anderen Sachen interessiere ich mich seit meiner Schulzeit, die schon einige Jahrzehnte her ist, auch für Astronomie. Gerade bin ich dabei, die Pascal-Programme aus "Astronomie für den Personal Computer" in PureBasic zu portieren. Dieses Buch scheint in diesen Kreisen gut bekannt zu sein, wenn man sich die Foreneinträge ansieht.
Nun stoße ich beim Portieren auf die Schwierigkeit, dass in dem Programm "NEWMOON", das auch die Unterprogramm "MDJ" und "CALDAT" benötigen, die Variable "B_MOON" nirgends mit einem Wert geladen wird. Wenn ich auch nicht die einzelnen mathematischen Ausdrücke des Programms verstehe, so kann ich doch den Programmablauf nachvollziehen. Nach meiner Logik hat die Variable "B_MOON" im Hauptprogramm immer den Wert 0 (Null). Und nur dort ist sie zu finden.
Liege ich richtig, oder verstehe ich die Programmiersprache Pascal nicht. (Ein wenig bin ich durch den Unterstrich im Namen dieser Variablen irritiert, obwohl ich in Beschreibungen von Pascal nichts diesbezügliches gefunden habe.)
WRITELN (' Datum':16,'UT':7,'Breite':11); WRITELN;
WRITELN (' h':23,'o':9);
…
LUNATION_0 := TRUNC( D1 * (YEAR_CALC-2000)/100 );
FOR LUNATION_I := LUNATION_0 TO LUNATION_0 + 13 DO
BEGIN
T_NEW_MOON := ( LUNATION_I - D0 ) / D1;
IMPROVE ( T_NEW_MOON, B_MOON );
IMPROVE ( T_NEW_MOON, B_MOON );
MJD_NEW_MOON := 36525.0*T_NEW_MOON + 51544.5;
CALDAT ( MJD_NEW_MOON, DAY,MONTH,YEAR,HOUR );
IF YEAR=YEAR_CALC THEN
WRITELN(DAY:10,MONTH:3,YEAR:5,HOUR:6:1,B_MOON:9:1)
…
Herzliche Grüße aus Mecklenburg
Berthold