2 : SCREEN 0 3 : COLOR 0, 6, 3 4 : CLS 5 : REM GOSUB 1809 6 : PRINT " " 7 : PRINT " " 10 101 : CLS 103 : PRINT " " 104 : PRINT " *******************************************************************" 106 : PRINT " N A V I G A T I O N " 107 : Print " " 108 : Print " (c) Dr. Dieter Smeets " 110 : PRINT " *******************************************************************" 111 : PRINT " " 115 : PRINT " (1) Feuer in der Kimm " 125 : PRINT " (2) Versegelung (Zeitdauer / Ankunftszeit) " 130 : PRINT " (3) Koppelort (Weg) " 155 : PRINT " (4) Stromberechnung (Bekannt: KüG/FüG) " 156 : PRINT " (5) Stromberechnung (Bekannt: KüG/FdW) " 157 : PRINT " (6) Stromberechnung (Bekannt: KdW/FdW) " 158 : PRINT " (7) Entfernung, Kurs und Zeit zwischen zwei Orten " 159 : PRINT " (8) (Groákreis-) Entfernung und Kurs zwischen zwei Orten " 163 : PRINT " (9) Windgeschwindigkeit " 164 : PRINT " (10) Mittagszeit (Astro) " 165 : PRINT " (11) Mittagsbreite (Astro) " 166 : PRINT " (12) Mittagslänge (Astro) " 172 : PRINT " (13) Sonnenaufgang/-untergang " 173 : PRINT " (14) Achterauspeilung " 174 : PRINT " " 175 : PRINT " (18) Beenden " 176 : PRINT " " 177 : INPUT " Ihre Wahl: "; w 178 : CLS 179 : PRINT " " 180 : IF w = 1 THEN GOSUB 230 190 : IF w = 2 THEN GOSUB 345 195 : IF w = 3 THEN GOSUB 415 200 : IF w = 4 THEN GOSUB 955 201 : IF w = 5 THEN GOSUB 1076 202 : IF w = 6 THEN GOSUB 1165 203 : IF w = 7 THEN GOSUB 1508 204 : IF w = 8 THEN GOSUB 1300 205 : IF w = 9 THEN GOSUB 19700 206 : IF w = 10 THEN GOSUB 15630 207 : IF w = 11 THEN GOSUB 15630 208 : IF w = 12 THEN GOSUB 15590 215 : IF w = 13 THEN GOSUB 2800 216 : IF w = 14 THEN GOSUB 290 217 : IF w = 18 THEN GOSUB 60000 230 : CLS 231 : PRINT " " 232 : PRINT " ***************** FEUER IN DER KIMM *******************" 235 : PRINT " " 240 : PRINT " " 245 : PRINT " " 250 : INPUT " Augeshöhe (m): "; ah 255 : INPUT " Feuerhöhe (m): "; fh 260 : d = 2.075 * (SQR(ah) + SQR(fh)) 265 : d = .1 * INT((d + .05) * 10) 270 : CLS 273 : PRINT " " 274 : PRINT " *********************************" 275 : PRINT " Distanz zum Feuer ="; d; "sm" 276 : PRINT " *********************************" 277 : GOSUB 1811 280 : GOTO 10000 290 : CLS 291 : PRINT " " 292 : PRINT " ***************** ACHTERAUSPEILUNG *******************" 293 : PRINT " " 294 : PRINT " " 295 : PRINT " " 296 : INPUT " Kartenkurs (KüG) (Grad) : "; kk 297 : IF kk = 360 THEN LET kk = 0 300 : aaps = kk + 180 302 : IF aaps >= 360 THEN LET aaps1 = aaps - 360 ELSE LET aaps1 = aaps 305 : PRINT " Soll-Achterauspeilung :"; aaps1; "Grad" 306 : INPUT " Ist -Achterauspeilung (Grad) :"; aapi 307 : dpeil = aapi - aaps1 310 : IF dpeil > 50 THEN LET dpeil1 = dpeil - 360 311 : IF dpeil > 50 THEN GOTO 325 315 : CLS 316 : PRINT " " 317 : PRINT " ***************************************************" 318 : IF aapi = aaps1 THEN PRINT " Keine Kurskorrektur notwendig " 319 : IF aapi > aaps1 THEN PRINT " Kurskorrektur um "; ABS(dpeil); "Grad" 320 : IF aapi > aaps1 THEN PRINT " nach Backbord notwendig " 321 : IF aapi < aaps1 THEN PRINT " Kurskorrektur um "; ABS(dpeil); "Grad" 322 : IF aapi < aaps1 THEN PRINT " nach Steuerbord notwendig " 323 : PRINT " ***************************************************" 324 : GOTO 331 325 : CLS 326 : PRINT " " 327 : PRINT " ***************************************************" 328 : PRINT " Kurskorrektur um "; ABS(dpeil1); "Grad" 329 : PRINT " nach Steuerbord notwendig " 330 : PRINT " ***************************************************" 331 : GOSUB 1811 332 : GOTO 10000 345 : CLS 346 : PRINT " " 347 : PRINT " ************* Z E I T D A U E R ******************** " 350 : PRINT " " 355 : PRINT " " 356 : PRINT " " 357 : 358 : INPUT " Distanz (sm): "; di 359 : INPUT " Fahrt (kn): "; fa 360 : PRINT " Wenn auch die Ankunftszeit ermittelt werden soll, muß die " 361 : PRINT " Abfahrtszeit eingegeben werden. Sonst 'Return' betätigen! " 362 : PRINT " " 363 : INPUT " Abfahrtszeit (Std.Min): "; azeit 364 : IF di = 0 AND fa = 0 THEN INPUT " Fahrtzeit in Min. :"; fzmin 365 : IF di = 0 AND fa = 0 THEN LET ustud = INT(fzmin / 60) 366 : IF di = 0 AND fa = 0 THEN LET umin = fzmin - (ustud * 60) 367 : astud = INT(azeit) 368 : amin = (azeit - INT(azeit)) * 100 369 : amin1 = INT(amin) 370 : IF di > 0 AND fa > 0 THEN LET zeit = (di * 60) / fa 371 : stu = zeit / 60 372 : stud = FIX(stu) 373 : IF di = 0 AND fa = 0 THEN LET stud = ustud 374 : min = INT((zeit - (stud * 60)) + .5) 375 : IF di = 0 AND fa = 0 THEN LET min = umin 388 : gmin = (stud * 60) + min 392 : zstd = astud + stud 393 : zmin = INT(amin + min) 394 : IF zmin >= 60 THEN LET zmin1 = zmin - 60 ELSE LET zmin1 = zmin 395 : IF zmin >= 60 THEN LET zstd = zstd + 1 396 : IF zstd >= 24 THEN LET zstd = zstd - 24 397 : CLS 398 : PRINT " " 399 : PRINT " ***********************************************************************" 400 : IF azeit > 0 THEN PRINT " Abfahrtszeit = "; azeit; " Uhr" 401 : PRINT " " 402 : IF di > 0 THEN PRINT " Zeit bis zum Wegpunkt ="; gmin; "Min."; " ="; stud; "Stunde(n)"; min; "Min." 403 : IF di = 0 AND fa = 0 THEN PRINT " Zeit bis zum Wegpunkt ="; fzmin; "Min."; " ="; stud; "Stunde(n)"; min; "Min." 406 : PRINT " " 407 : IF azeit > 0 AND zmin1 > 9 THEN PRINT " Ankunftszeit = "; zstd; "."; zmin1; " Uhr" 408 : IF azeit > 0 AND zmin1 < 10 THEN PRINT " Ankunftszeit = "; zstd; ".0"; zmin1; " Uhr" 409 : PRINT " ***********************************************************************" 410 : GOSUB 1811 411 : GOTO 10000 415 : CLS 416 : PRINT " " 417 : PRINT " ************* V E R S E G E L U N G **************** " 420 : PRINT " " 425 : PRINT " " 430 : PRINT " " 435 : INPUT " Start-/Ankunftszeit (1) / Fahrtdauer (0): "; x 440 : IF x = 1 THEN INPUT " Startzeit / 1. Peilung (Std.Min): "; sz 445 : IF x = 1 THEN INPUT " Ankunftszeit / 2. Peilung (Std.Min): "; az 450 : IF x = 1 THEN LET sz1 = FIX(sz) 455 : IF x = 1 THEN LET az1 = FIX(az) 460 : IF x = 1 THEN LET std = az1 - (sz1 + 1) 465 : IF x = 1 THEN LET zeit1 = (std * 60!) + (60! - ((sz - sz1) * 100!)) + ((az - az1) * 100!) 470 : IF x = 0 THEN INPUT " Fahrtzeit (Std.): "; stu 475 : IF x = 0 THEN INPUT " Fahrtzeit (Min.): "; min 480 : INPUT " Fahrt (kn): "; fa 485 : IF x = 0 THEN LET zeit2 = (stu * 60) + min 490 : IF x = 0 THEN LET zeit = zeit2 495 : IF x = 1 THEN LET zeit = zeit1 500 : weg = fa * zeit / 60 505 : weg1 = weg * 100 510 : weg2 = CINT(weg1) / 100 515 : CLS 516 : PRINT " " 519 : PRINT " ***********************************************" 520 : PRINT " Versegelung ="; weg2; "sm" 521 : PRINT " ***********************************************" 522 : GOSUB 1811 525 : RETURN 10000 955 : CLS 956 : PRINT " " 957 : PRINT " ************ KURS/FAHRT DURCHS WASSER ************** " 960 : PRINT " " 961 : PRINT " " 962 : PRINT " " 975 : INPUT " Kurs über Grund (Grad): "; kw 980 : INPUT " Fahrt über Grund (kn): "; fw 985 : INPUT " Stromrichtung (Grad): "; sr 990 : INPUT " Stromstärke (kn): "; ss 995 : re = fw * SIN(kw * 3.14159 / 180) - ss * SIN(sr * 3.14159 / 180) 1000 : im = fw * COS(kw * 3.14159 / 180) - ss * COS(sr * 3.14159 / 180) 1005 : fg = SQR(re * re + im * im) 1010 : IF im = 0 THEN GOTO 1015 ELSE GOTO 1025 1015 : IF re > 0 THEN LET kg = 90 ELSE LET kg = 270 1020 : GOTO 1035 1025 : kg = ATN(re / im) * 180 / 3.14159 1030 : IF im < 0 THEN LET kg = kg + 180 1035 : IF kg < 0 THEN LET kg = kg + 360 1040 : kg = INT(kg) 1045 : abds = kw - kg 1046 : IF ABS(abds) > 100 AND abds > 0 THEN LET abds = abds - 360 1047 : IF ABS(abds) > 100 AND abds < 0 THEN LET abds = abds + 360 1050 : fg = .1 * INT((fg + .05) * 10) 1055 : CLS 1056 : PRINT " " 1059 : PRINT " *******************************************" 1060 : PRINT " Kurs durchs Wasser (KdW) = "; kg; "Grad" 1061 : PRINT " " 1065 : PRINT " Fahrt durchs Wasser (FdW) ="; fg; "kn" 1066 : PRINT " " 1070 : PRINT " Abdrift durch Strom (BS) ="; abds; "Grad" 1071 : PRINT " *******************************************" 1073 : GOSUB 1811 1075 : RETURN 10000 1076 : PRINT " " 1077 : PRINT " ********* KURS DURCHS WASSER / FAHRT ÜBER GRUND ********* " 1078 : PRINT " " 1080 : INPUT " Kurs über Grund: "; kg 1085 : INPUT " Fahrt durchs Wasser (kn): "; fw 1090 : INPUT " Stromrichtung: "; sr 1095 : INPUT " Stromstärke (kn): "; ss 1100 : bi = ss / fw * SIN((sr - kg) * 3.14 / 180) 1105 : bs = ATN(bi / SQR(1 - bi * bi)) * 180 / 3.14 1110 : kw = kg - bs 1115 : IF kw < 0 THEN LET kw = kw + 360 1120 : IF kw > 360 THEN LET kw = kw - 360 1125 : U = 180 - sr - bs + kg 1130 : fg = SQR(ss * ss + fw * fw - 2 * ss * fw * COS(U * 3.141593 / 180)) 1135 : kw = INT(kw + .5) 1140 : fg = .1 * INT((fg + .05) * 10) 1141 : abds = kg - kw 1142 : IF ABS(abds) > 100 AND abds > 0 THEN LET abds = abds - 360 1143 : IF ABS(abds) > 100 AND abds < 0 THEN LET abds = abds + 360 1145 : CLS 1148 : PRINT " " 1149 : PRINT " *****************************************" 1150 : PRINT " Kurs durchs Wasser (KdW) ="; kw; "Grad" 1151 : PRINT " " 1152 : PRINT " Fahrt über Grund (FüG) ="; fg; "kn" 1153 : PRINT " " 1154 : PRINT " Abdrift durch Strom (BS) ="; abds; "Grad" 1156 : PRINT " *****************************************" 1157 : GOSUB 1811 1160 : RETURN 10000 1165 : CLS 1166 : PRINT " " 1167 : PRINT " ************ KURS/FAHRT ÜBER GRUND ********************" 1170 : PRINT " " 1171 : PRINT " " 1172 : PRINT " " 1175 : INPUT " Kurs durchs Wasser (Grad): "; kw 1180 : INPUT " Fahrt durchs Wassser (kn): "; fw 1185 : INPUT " Stromrichtung (Grad): "; sr 1190 : INPUT " Stromstärke (kn): "; ss 1195 : re = fw * SIN(kw * 3.14 / 180) + ss * SIN(sr * 3.14 / 180) 1200 : im = fw * COS(kw * 3.14 / 180) + ss * COS(sr * 3.14 / 180) 1205 : fg = SQR(re * re + im * im) 1210 : IF im = 0 THEN GOTO 1215 ELSE GOTO 1225 1215 : IF re > 0 THEN LET kg = 90 ELSE LET kg = 270 1220 : GOTO 1235 1225 : kg = ATN(re / im) * 180 / 3.14 1230 : IF im < 0 THEN LET kg = kg + 180 1235 : IF kg < 0 THEN LET kg = kg + 360 1240 : kg = INT(kg) 1245 : fg = .1 * INT((fg + .05) * 10) 1250 : abds = kg - kw 1251 : IF ABS(abds) > 100 AND abds > 0 THEN LET abds = abds - 360 1252 : IF ABS(abds) > 100 AND abds < 0 THEN LET abds = abds + 360 1255 : CLS 1258 : PRINT " " 1259 : PRINT " ******************************************" 1260 : PRINT " Kurs über Grund (KüG) = "; kg; "Grad" 1261 : PRINT " " 1265 : PRINT " Fahrt über Grund (FüG) ="; fg; "kn" 1266 : PRINT " " 1270 : PRINT " Abdrift durch Strom (BS) ="; abds; "Grad" 1271 : PRINT " ******************************************" 1272 : GOSUB 1811 1275 : RETURN 10000 1300 : CLS 1305 : PRINT " " 1310 : PRINT " *********** E N T F E R N U N G U N D K U R S ********* " 1315 : PRINT " " 1320 : PRINT " " 1325 : PRINT " " 1330 : 1335 : INPUT " Anfangsbreite (S = -): "; ab 1340 : ab = INT(ab) + (ab - INT(ab)) * 5 / 3 1345 : INPUT " Anfangslänge (E = -): "; al 1350 : al = INT(al) + (al - INT(al)) * 5 / 3 1355 : INPUT " Zielbreite (S = -): "; zb 1360 : zb = INT(zb) + (zb - INT(zb)) * 5 / 3 1365 : INPUT " Ziellänge (E = -): "; zl 1370 : zl = INT(zl) + (zl - INT(zl)) * 5 / 3 1375 : bo = 3.14159 / 180 1380 : en1 = (SIN(ab * bo)) 1385 : en2 = (SIN(zb * bo)) 1390 : en3 = (COS(ab * bo)) 1395 : en4 = (COS(zb * bo)) 1400 : en5 = (COS((al * bo) - (zl * bo))) 1405 : en7 = (SIN((al - zl) * bo)) 1410 : en6 = en1 * en2 + en3 * en4 * en5 1415 : ent = (-ATN(en6 / SQR(-en6 * en6 + 1)) + 3.14159 / 2) * 180 / 3.14159 1420 : entf = (INT((600 * ent) + .5)) / 10 1425 : ku1 = (SIN(zb * bo)) 1430 : ku2 = (SIN(ab * bo)) 1435 : ku3 = (COS((entf / 60) * bo)) 1440 : ku4 = (COS(ab * bo)) 1445 : ku5 = (SIN((entf / 60) * bo)) 1450 : ku6 = (ku1 - ku2 * ku3) / (ku4 * ku5) 1455 : IF al = zl AND ab < zb THEN LET kur = 360 ELSE LET kur = (-ATN(ku6 / SQR(-ku6 * ku6 + 1)) + 3.14159 / 2) * 180 / 3.14159 1460 : IF en7 < 0 THEN LET kur = 360 - kur 1465 : kurs = INT(kur + .5) 1470 : CLS 1474 : PRINT " " 1475 : PRINT " *********************************************************" 1480 : PRINT " (Großkreis-) Entfernung zum Zielort = "; entf; "sm" 1485 : PRINT " " 1490 : PRINT " (Großkreis-) Anfangskurs = "; kurs; "Grad" 1495 : PRINT " *********************************************************" 1496 : GOSUB 1811 1500 : RETURN 10000 1508 : CLS 1509 : PRINT " " 1510 : PRINT " ******* E N T F E R N U N G , K U R S UND Z E I T *********" 1515 : PRINT " " 1520 : PRINT " " 1525 : PRINT " " 1530 : 1535 : INPUT " Anfangsbreite (S = -): "; ab 1540 : ab = FIX(ab) + (ab - FIX(ab)) * 5 / 3 1545 : INPUT " Anfangslänge (W = -): "; al 1550 : al = FIX(al) + (al - FIX(al)) * 5 / 3 1555 : INPUT " Zielbreite (S = -): "; zb 1560 : zb = FIX(zb) + (zb - FIX(zb)) * 5 / 3 1565 : INPUT " Ziellänge (W = -): "; zl 1570 : zl = FIX(zl) + (zl - FIX(zl)) * 5 / 3 1575 : bo = 3.14159 / 180 1580 : b = zb - ab 1585 : l = zl - al 1590 : IF l < -180 THEN LET l = l + 360 1595 : IF l > 180 THEN LET l = l - 360 1600 : pm = (zb + ab) / 2 1605 : a = l * COS(pm * bo) 1610 : IF l > 0 AND b = 0 THEN LET kurs = 90: GOTO 1650 1615 : IF l < 0 AND b = 0 THEN LET kurs = 270: GOTO 1650 1620 : IF b = 0 THEN LET b = 1E-08 1625 : en6 = a / b 1630 : kurs = ATN(en6) * 180 / 3.14159 1635 : IF a >= 0 AND b < 0 THEN LET kurs = kurs + 180: GOTO 1650 1640 : IF x <= 0 AND y < 0 THEN LET kurs = kurs + 180: GOTO 1650 1645 : IF a < 0 AND b > 0 THEN LET kurs = 360 + kurs: GOTO 1650 1650 : IF kurs < 0 THEN LET kurs = kurs + 360 1655 : ent = (60 * b) / (COS(kurs * bo)) 1660 : entf = ABS((FIX((10 * ent) + .5)) / 10) 1665 : kurs1 = (FIX((10 * kurs) + .5)) / 10 1670 : INPUT " Fahrt (kn): "; fa 1675 : zeit = (entf * 60) / fa 1680 : stu = zeit / 60 1685 : stud = FIX(stu) 1690 : min = INT((zeit - (stud * 60)) + .5) 1695 : CLS 1699 : PRINT " " 1700 : PRINT " *********************************************************" 1705 : PRINT " Entfernung zum Zielort = "; entf; "sm" 1710 : PRINT " " 1715 : PRINT " Kurs = "; kurs1; "Grad" 1720 : PRINT " " 1725 : PRINT " Zeit bis zum Zielort ="; stud; "Stunde(n)"; min; "Min." 1730 : PRINT " *********************************************************" 1735 : PRINT " " 1740 : PRINT " " 1745 : IF entf > 500 OR ab > 60 OR zb > 60 THEN PRINT " Achtung, eingeschränkte Gültigkeit, da die Entfernung " 1746 : PRINT " 500 sm oder die Breite 60 Grad N übersteigt " 1747 : GOSUB 1811 1750 : GOTO 10000 1808 : CLS 1809 : TIME$ = "8:00:00" 1810 : LOCATE 19 1811 : RETURN 1812 : PRINT " Datum MESZ ME(W)Z UTC" 1813 : LOCATE 20, 2 1814 : PRINT DATE$, TIME$; 1815 : sec = VAL(MID$(TIME$, 7, 2)) 1816 : std = VAL(MID$(TIME$, 1, 2)) 1817 : stdmewz = std - 1 1818 : IF stdmewz >= 24 THEN LET stdmewz = -24 + stdmewz 1819 : LOCATE 20, 45 1820 : PRINT stdmewz; MID$(TIME$, 3, 6) 1821 : stdutc = std - 2 1822 : IF stdutc >= 24 THEN LET stdutc = -24 + stdutc 1823 : LOCATE 20, 60 1824 : PRINT stdutc; MID$(TIME$, 3, 6) 1825 : REM IF sec > 0 THEN 1813 1826 : REM IF sec = 0 THEN 1813 1827 : REM GOTO 100 1828 : RETURN 2800 : CLS 2805 : INPUT " Monat des Törns (in Ziffern) : "; mon 2810 : bm = 3.141593 / 180 2825 : INPUT " T-Sonne (Std.Min) : "; GT 2830 : h1 = GT: GOSUB 3535: GT = h2 2840 : INPUT " Breite des Standortes N = + / S = - (Grad.Min) : "; PH 2845 : h1 = PH: GOSUB 3535: PH = h2 2846 : INPUT " Länge des Standortes E = + / W = - (Grad.Min) : "; la 2847 : zeit = 6! + 6! - (INT(la / 15 + .5)) 2850 : PRINT " Delta für"; zeit; "Uhr UTC" 2855 : INPUT " Eingabe (Grad.Minuten) : "; DE 2856 : h1 = DE: GOSUB 3535: DE = h2 2857 : T1 = -TAN(PH * bm) * TAN(DE * bm) 2858 : T2 = (-ATN(T1 / SQR(-T1 * T1 + 1)) + 3.141593 / 2) * 180 / 3.141593 2859 : TZ = T2 / 15 2861 : UTC = (la / 15) * -1 2875 : a = GT - TZ + UTC: U = GT + TZ + UTC 2880 : H3 = a: H4 = U 2881 : GOSUB 4000 2882 : H5 = a - da: H6 = U + da 2885 : GOSUB 3740: CLS 2886 : PRINT " " 2890 : PRINT " Dämmerungsbeginn : "; h2; "Uhr UTC"; " ="; h2 + 2!; "MESZ" 2900 : GOSUB 3540 2905 : PRINT " " 2910 : PRINT " Wahrer Sonnenaufgang : "; h2; "Uhr UTC"; " ="; h2 + 2!; "MESZ" 2915 : GOSUB 3640 2920 : PRINT " " 2925 : PRINT " Wahrer Sonnenuntergang : "; h2; "Uhr UTC"; " ="; h2 + 2!; "MESZ" 2930 : GOSUB 3840 2935 : PRINT " " 2940 : PRINT " Dämmerungsende : "; h2; "Uhr UTC"; " ="; h2 + 2!; "MESZ" 3000 : PRINT " " 3010 : GOTO 5000 3535 : h2 = INT(ABS(h1)) + ((5 / 3) * (ABS(h1) - INT(ABS(h1)))) * SGN(h1): RETURN 3540 : h1 = INT(H3) + (H3 - INT(H3)) * 3 / 5 3545 : h2 = .01 * INT(((h1 + .005) * 100)): RETURN 3640 : h1 = INT(H4) + (H4 - INT(H4)) * 3 / 5 3645 : h2 = .01 * INT(((h1 + .005) * 100)): RETURN 3740 : h1 = INT(H5) + (H5 - INT(H5)) * 3 / 5 3745 : h2 = .01 * INT(((h1 + .005) * 100)): RETURN 3840 : h1 = INT(H6) + (H6 - INT(H6)) * 3 / 5 3845 : h2 = .01 * INT(((h1 + .005) * 100)): RETURN 4000 : IF PH > 0 AND PH < 25 THEN LET da = .3 4010 : IF PH > 25 AND PH < 50 THEN LET da = .5 4020 : IF PH > 50 AND PH < 65 AND mon < 7 THEN LET da = .66 4030 : IF PH > 50 AND PH < 65 AND mon > 6 AND mon < 9 THEN LET da = 1! 4040 : IF PH > 50 AND PH < 65 AND mon > 8 THEN LET da = .66 4050 : IF PH > 65 THEN LET da = 1.2 4060 : RETURN 5000 : GOTO 10000 10000 : PRINT " " 10005 : PRINT " " 10010 : PRINT " " 10015 : REM PRINT " " 10020 : INPUT " Weiter (1) / Ende (0) "; a 10025 : IF a = 1 THEN GOTO 101 ELSE GOTO 60000 15520 : CLS 15521 : GOSUB 15730 15523 : PRINT " ": INPUT " Sextantwinkel (Grad) : "; sexw 15524 : PRINT " ": INPUT " Sextantwinkel (Minuten): "; sexm 15525 : GOSUB 15780 15526 : PRINT " ": PRINT " 1) Nördl. Dec. und Sonne im S" 15527 : PRINT " 2) Südl. Declination " 15528 : PRINT " 3) Nördl. Dec. und Sonne im N" 15529 : PRINT : INPUT " Wahl : "; bob 15530 : IF bob = 1 THEN GOTO 15533 15531 : IF bob = 2 THEN GOTO 15550 15532 : IF bob = 3 THEN GOTO 15570 15533 : mbg1 = 90 + decg 15534 : hb1 = sexm + besch 15535 : IF hb1 >= 60 THEN LET hb2 = hb1 - 60 ELSE LET hb2 = hb1 15536 : IF hb1 >= 60 THEN LET sexw = sexg + 1 15537 : mbm = decm - hb2 15538 : mbg = mbg1 - sexw 15539 : IF mbm <= 0 THEN LET mbm1 = mbm + 60 ELSE LET mbm1 = mbm 15540 : IF mbm <= 0 THEN LET mbg = mbg - 1: CLS 15541 : PRINT " *******************************************************": PRINT " " 15542 : PRINT " Mittagsbreite = "; mbg; "Grad"; (INT(mbm1 * 10 + .5)) / 10; "Min N" 15543 : PRINT " ": PRINT " *******************************************************" 15544 : GOTO 10000 15550 : mbg1 = 89 - decg 15551 : hb1 = sexm + besch 15552 : IF hb1 >= 60 THEN LET hb2 = hb1 - 60 ELSE LET hb2 = hb1 15553 : IF hb1 >= 60 THEN LET sexw = sexg + 1 15554 : mbm = 60 - decm - hb2 15555 : mbg = mbg1 - sexw 15556 : IF mbm <= 0 THEN LET mbm1 = mbm + 60 ELSE LET mbm1 = mbm 15557 : IF mbm <= 0 THEN LET mbg = mbg - 1: CLS 15558 : PRINT " *******************************************************": PRINT " " 15559 : PRINT " Mittagsbreite = "; mbg; "Grad"; (INT(mbm1 * 10 + .5)) / 10; "Min N" 15560 : PRINT " ": PRINT " *******************************************************" 15561 : GOTO 10000 15570 : mbg1 = decg - 90 15571 : hb1 = sexm + besch 15572 : IF hb1 >= 60 THEN LET hb2 = hb1 - 60 ELSE LET hb2 = hb1 15573 : IF hb1 >= 60 THEN LET sexw = sexg + 1 15574 : mbm = decm + hb2 15575 : mbg = mbg1 + sexw 15576 : IF mbm >= 60 THEN LET mbm1 = mbm - 60 ELSE LET mbm1 = mbm 15577 : IF mbm >= 60 THEN LET mbg = mbg + 1: CLS 15578 : PRINT " ********************************************************": PRINT " " 15579 : PRINT " Mittagsbreite = "; mbg; "Grad"; (INT(mbm1 * 10 + .5)) / 10; "Min N" 15580 : PRINT " ": PRINT " ********************************************************" 15581 : GOTO 10000 15590 : CLS 15591 : PRINT " ": PRINT " Zeitpunkt der 1. Messung (UTC)" 15592 : INPUT " Stunden : "; std1 15593 : INPUT " Minuten : "; min1 15594 : INPUT " Sekunden : "; sek1 15595 : PRINT " ": PRINT " Zeitpunkt der 2. Messung (UTC)" 15597 : PRINT " ": INPUT " Stunden : "; std2 15598 : INPUT " Minuten : "; min2 15599 : INPUT " Sekunden : "; sek2 15600 : mstd1 = (std1 + std2) / 2 15601 : mstd = INT(mstd1) 15602 : mstdu = (mstd1 - mstd) * 60 15603 : mmin1 = ((min1 + min2) / 2) + mstdu 15604 : mmin = INT(mmin1) 15605 : mminu = (mmin1 - mmin) * 60 15606 : msek = ((sek1 + sek2) / 2) + mminu 15607 : IF msek >= 60 THEN LET mseke = msek - 60 ELSE LET mseke = msek 15608 : IF msek >= 60 THEN LET mmin = mmin + 1 15609 : IF mmin >= 60 THEN LET mmine = mmin - 60 ELSE LET mmine = mmin 15610 : IF mmin >= 60 THEN LET mstd = mstd + 1 15611 : PRINT " 1. volle Stunde "; mstd; "Uhr UTC" 15612 : min1 = mmine + (mseke / 60): GOSUB 15751 15613 : CLS 15614 : PRINT " Mittagszeit = "; mstd; "Uhr"; mmine; "Min"; mseke; "Sek" 15615 : IF gw < 180 THEN PRINT " Mittagslänge = "; decg; "Grad"; (INT(decm * 10 + .5)) / 10; "Min W" 15616 : IF gw >= 180 THEN PRINT " Mittagslänge = "; 359 - decg; "Grad"; 60 - ((INT(decm * 10 + .5)) / 10); "Min E" 15617 : GOTO 10000 15630 : CLS 15631 : INPUT " Greenwich T (Std.Min): "; gmz 15632 : INPUT " Länge (W = - / E = +): "; lg 15633 : minu = (gmz - INT(gmz)) * 100 15634 : plus = ABS(lg) - INT(ABS(lg)) 15635 : x = ABS(lg) / 15 15636 : y = INT(ABS(lg) - (INT(x) * 15)) 15637 : z = (y + plus * 100 / 60) / 15! * 60! 15638 : min1 = INT(z + .5) 15639 : IF lg < 0 THEN LET std = INT(gmz) + INT(x) 15640 : IF lg < 0 THEN LET min = INT(minu + min1) 15641 : IF lg > 0 THEN LET std = INT(gmz) - INT(x) 15642 : IF lg > 0 THEN LET min = INT(minu - min1) 15643 : IF min >= 60 THEN LET min2 = min - 60 ELSE LET min2 = min 15644 : IF min >= 60 THEN LET std = std + 1 15645 : IF min <= 0 THEN LET min2 = 60 + min 15646 : IF min <= 0 THEN LET std = std - 1 15647 : CLS 15648 : IF min2 < 10 THEN PRINT " Mittagszeit = "; std; ".0"; min2; "Uhr UTC" 15649 : IF min2 >= 10 THEN PRINT " Mittagszeit = "; std; "."; min2; "Uhr UTC" 15650 : IF w = 11 THEN GOTO 15521 15651 : GOTO 10000 15730 : PRINT " 1. volle Std "; std; "Uhr" 15731 : INPUT " d (Grad.Min) : "; vs1 15732 : vs11 = INT(vs1) 15733 : vs12 = (vs1 - vs11) * 100 / 60 15734 : vs1d = INT(vs1) + vs12 15735 : INPUT " d (Grad.Min) n. volle Std: "; vs2 15736 : vs21 = INT(vs2) 15737 : vs22 = (vs2 - vs21) * 100 / 60 15738 : vs2d = INT(vs2) + vs22 15739 : grdif = vs2d - vs1d 15740 : IF grdif < 0 THEN LET zwo = 1 15741 : IF zwo = 1 THEN LET grdif = vs1d - vs2d 15742 : anteil = grdif * (min1 / 60) 15743 : d = vs1d + anteil 15744 : IF zwo = 1 THEN LET d = vs1d - anteil 15745 : decg = INT(d) 15746 : decm = (d - decg) * 60 15747 : RETURN 15750 : PRINT " 1. volle Std "; std; "Uhr" 15751 : INPUT " GRT (Grad.Min) : "; vs1 15752 : vs11 = INT(vs1) 15753 : vs12 = (vs1 - vs11) * 100 / 60 15754 : vs1d = INT(vs1) + vs12 15755 : INPUT " GRT (Grad/Min) n. volle Std: "; vs2 15756 : vs21 = INT(vs2) 15757 : vs22 = (vs2 - vs21) * 100 / 60 15758 : vs2d = INT(vs2) + vs22 15759 : grdif = vs2d - vs1d 15760 : IF grdif < 0 THEN LET grdif = grdif + 360 15761 : anteil = grdif * (min1 / 60) 15762 : gw = vs1d + anteil 15764 : decg = INT(gw) 15765 : decm = (gw - decg) * 60 15766 : RETURN 15770 : IF sexw >= 18 AND sexw < 25 THEN LET besch = 11 15771 : IF sexw >= 25 AND sexw < 40 THEN LET besch = 12 15772 : IF sexw >= 40 THEN LET besch = 13 15773 : RETURN 15780 : sw1 = INT(sexw) 15781 : sw2 = (sexw - sw1) * 100 / 60 15782 : sw = sw1 + sw2 15783 : aa = 60! / sw 15790 : INPUT " Monat :"; mon 15791 : INPUT " Augeshöhe (m) :"; ah 15792 : bb = .25 * (COS(30! * mon)) 15793 : cc = 1.8 * SQR(ah) 15794 : besch = 16.55 - aa + bb - cc 15795 : RETURN 19700 : CLS 19701 : PRINT " " 19702 : INPUT " Windgeschwindigkeit ermitteln (0) / nur umrechnen (1) :"; choi 19703 : IF choi = 1 THEN GOTO 19714 19704 : PRINT " " 19705 : INPUT " Isobarenabstand (hPa) :"; isopa 19706 : PRINT " " 19707 : INPUT " Isobarenabstand (sm) :"; isosm 19708 : PRINT " " 19709 : INPUT " Breitengrad (Grad) : "; bgr 19710 : PRINT " " 19711 : term1 = isopa / isosm 19712 : term2 = SIN(bgr * 3.141593 / 180!) 19713 : wind = term1 * 556! / term2 19714 : IF choi = 1 THEN INPUT " Windgeschwindigkeit (Knoten) : "; wind 19722 : IF wind <= 3 THEN LET beau = 1 19723 : IF wind > 3 AND wind <= 6 THEN LET beau = 2 19724 : IF wind > 6 AND wind <= 10 THEN LET beau = 3 19725 : IF wind > 10 AND wind <= 15 THEN LET beau = 4 19726 : IF wind > 15 AND wind <= 21 THEN LET beau = 5 19727 : IF wind > 21 AND wind <= 27 THEN LET beau = 6 19728 : IF wind > 27 AND wind <= 33 THEN LET beau = 7 19729 : IF wind > 33 AND wind <= 40 THEN LET beau = 8 19730 : IF wind > 40 AND wind <= 47 THEN LET beau = 9 19731 : IF wind > 47 AND wind <= 55 THEN LET beau = 10 19732 : IF wind > 55 AND wind <= 63 THEN LET beau = 11 19733 : IF wind > 63 THEN LET beau = 12 19740 : CLS 19741 : PRINT " " 19742 : PRINT " ***************************************************************** " 19743 : PRINT " " 19744 : PRINT " Windgeschwindigkeit = "; wind; "Knoten"; " ( = "; beau; "Bft. )" 19745 : PRINT " " 19746 : PRINT " ***************************************************************** " 19747 : GOSUB 1811 19748 : GOTO 10000 20000 : CLS 20001 : PRINT " " 20002 : PRINT " ***************** S T A N D L I N I E ***********************" 20003 : PRINT " " 20004 : PRINT " Zeitpunkt der Messung " 20005 : INPUT " Stunden : "; std 20006 : INPUT " Minuten : "; min1 20007 : INPUT " Sekunden : "; sek1 20008 : sek = sek1 / 60 20009 : min = min1 + sek 20090 : IF w <> 6 THEN INPUT " Gegißte Breite [Grad.Min] : "; gb1 20091 : IF w = 6 THEN LET gb1 = breit 20092 : gb11 = INT(gb1) 20093 : gb12 = (gb1 - gb11) * 100 / 60 20094 : gb = INT(gb1) + gb12 20100 : IF w <> 6 THEN INPUT " Gegißte Länge (W = -) [Grad.Min] : "; gl1 20101 : IF w = 6 THEN LET gl1 = lang 20102 : gl11 = INT(gl1) 20103 : gl12 = (gl1 - gl11) * 100 / 60 20104 : gl = INT(gl1) + gl12 20105 : INPUT " Sextantwinkel [Grad.Min] : "; sexw 20106 : INPUT " Beschickung berechnen (1) / Vorgabe für 2m AH verwenden (0) :"; bick 20107 : IF bick = 1 THEN GOSUB 59100 20109 : IF bick = 0 THEN GOSUB 59000 20110 : INPUT " Greenwichwinkel bekannt (1) / interpolieren (0) :"; interp1 20111 : IF interp1 = 1 THEN INPUT " GRT : "; gw1 20112 : IF interp1 = 1 THEN LET gw11 = INT(gw1) 20113 : IF interp1 = 1 THEN LET gw12 = (gw1 - gw11) * 100 / 60 20114 : IF interp1 = 1 THEN LET gw = INT(gw1) + gw12 20115 : IF interp1 = 0 THEN GOSUB 49000 20120 : INPUT " Declination bekannt (1) / interpolieren (0) :"; interp 20121 : IF interp = 1 THEN INPUT " Declination : "; d1 20122 : IF interp = 1 THEN LET d11 = INT(d1) 20123 : IF interp = 1 THEN LET d12 = (d1 - d11) * 100 / 60 20124 : IF interp = 1 THEN LET d = INT(d1) + d12 20125 : IF interp = 0 THEN GOSUB 48000 20140 : bm = 3.141593 / 180 20150 : a1 = SIN(d * bm) 20160 : a2 = SIN(gb * bm) 20170 : a3 = COS(d * bm) 20180 : a4 = COS(gb * bm) 20190 : a5 = COS((gw + gl) * bm) 20200 : a0 = SIN((gw + gl) * bm) 20210 : a6 = a1 * a2 + a3 * a4 * a5 20220 : hw = (ATN(a6 / SQR(-a6 * a6 + 1))) * 1 / bm 20230 : hwg = INT(hw) 20240 : hwm = INT((hw - hwg) * 60 + .5) 20250 : a7 = COS(hw * bm) 20260 : a8 = SIN(hw * bm) 20270 : a9 = (a1 - a2 * a8) / (a7 * a4) 20280 : z = (-ATN(a9 / SQR(-a9 * a9 + 1)) + 3.141593 / 2) * 1 / bm 20290 : IF a0 < 0 THEN LET az = z ELSE LET az = 360 - z 20300 : azg = INT(az) 20310 : azm = INT((az - azg) * 60 + .5) 20320 : bh = sexw + (besch / 100) 20330 : bh1 = INT(bh) 20340 : bh2 = bh - bh1 20350 : IF bh2 >= .6 THEN LET bh3 = bh2 - .6 ELSE LET bh3 = bh2 20360 : IF bh2 >= .6 THEN LET bh1 = bh1 + 1 20370 : difr = bh1 - hwg 20380 : uschm = (bh3 * 100) + (60 * difr) - hwm 20400 : CLS 20414 : PRINT " " 20420 : PRINT " **************************************************************" 20421 : PRINT " " 20422 : PRINT " Zeitpunkt (UTC) = "; std; "Uhr"; min1; "Minuten"; sek1; "Sekunden" 20430 : PRINT " " 20440 : PRINT " Höhenwinkel = "; hwg; "Grad"; hwm; "Minuten ("; hw; "Grad )" 20450 : PRINT " " 20460 : PRINT " Azimut = "; azg; "Grad"; azm; "Minuten ("; az; "Grad )" 20461 : PRINT " " 20462 : PRINT " Unterschied = "; uschm; "sm" 20470 : PRINT " " 20480 : PRINT " **************************************************************" 20500 : GOTO 10000 40000 : CLS 48000 : PRINT " " 48020 : PRINT " **************** I N T E R P O L A T I O N ********************" 48091 : PRINT " Die 1. volle Stunde ist "; std; "Uhr" 48100 : INPUT " Gradzahl der 1. vollen Stunde (Grad.Min): "; vs1 48101 : vs11 = INT(vs1) 48102 : vs12 = (vs1 - vs11) * 100 / 60 48110 : vs1d = INT(vs1) + vs12 48111 : INPUT " Gradzahl der folgenden vollen Stunde (Grad.Min): "; vs2 48112 : vs21 = INT(vs2) 48113 : vs22 = (vs2 - vs21) * 100 / 60 48114 : vs2d = INT(vs2) + vs22 48120 : grdif = vs1d - vs2d 48130 : anteil = grdif * (min / 60) 48140 : d = vs1d - anteil 48141 : PRINT " Declination = "; d 48150 : GOTO 20140 49000 : PRINT " " 49020 : PRINT " **************** I N T E R P O L A T I O N ********************" 49091 : PRINT " Die 1. volle Stunde ist "; std; "Uhr" 49100 : INPUT " Gradzahl der 1. vollen Stunde (Grad.Min): "; vs1 49101 : vs11 = INT(vs1) 49102 : vs12 = (vs1 - vs11) * 100 / 60 49109 : vs1d = INT(vs1) + vs12 49110 : INPUT " Gradzahl der folgenden vollen Stunde (Grad.Min): "; vs2 49111 : IF ABS(vs2 - vs1) > 100! THEN LET vs2 = vs2 + 360 49112 : vs21 = INT(vs2) 49113 : vs22 = (vs2 - vs21) * 100 / 60 49114 : vs2d = INT(vs2) + vs22 49120 : grdif = vs2d - vs1d 49130 : anteil = grdif * (min / 60) 49140 : gw = vs1d + anteil 49141 : PRINT " Greenwichwinkel = "; gw 49150 : GOTO 20120 59000 : IF sexw >= 18 AND sexw < 25 THEN LET besch = 11 59001 : IF sexw >= 25 AND sexw < 40 THEN LET besch = 12 59002 : IF sexw >= 40 THEN LET besch = 13 59005 : RETURN 59100 : sw1 = INT(sexw) 59113 : sw2 = (sexw - sw1) * 100 / 60 59114 : sw = sw1 + sw2 59118 : aa = 60! / sw 59119 : PRINT " April = 4, Mai = 5, Juni = 6, Juli = 7, Aug = 8, Sept = 9, Okt = 10" 59120 : INPUT " Monat :"; mon 59121 : INPUT " Augeshöhe (m) :"; ah 59200 : bb = .25 * (COS(30! * mon * bm)) 59210 : cc = 1.8 * SQR(ah) 59300 : besch = 16.55 - aa + bb - cc 59003 : RETURN 60000 : CLS 60001 : SCREEN 10 60002 : SYSTEM