1000 A=500:GOTO 20:REM DREIECKSBERECHNUNG 1010 S0$=" =":S1$=" "+S0$ 1020 S2$="Seite ":S3$="Winkel " 1030 S4$="Seitenhalbierende ":S5$="Winkelhalbier. " 1040 S6$="alpha":S7$="beta " 1050 S8$="gamma":S9$="Hoehe auf "+S2$ 1060 SM$=" --------------------------------------" 1070 GOTO 3030 2000 REM * RECHENUNTERROUTINEN * 2010 N=A:P=X 2020 M=N*SIN(PY*Q/F)/SIN(PY*P/F):RETURN 2030 M=(N*N+Q*Q-P*P)/(2*N*Q):IF (M>=1)OR(M<=-1)THEN 3310 2040 M=(-ATN(M/SQR(1-M*M))+PY/2)*F/PY:RETURN 2050 M=SQR(N*N+Q*Q-2*N*Q*COS(PY*P/F)):RETURN 2060 IF N1 THEN 3310 2090 M=ATN(M/SQR(1-M*M))*F/PY:RETURN 2100 M=N*SIN(PY*Q/F)/(SIN(PY*(F-P/2-Q)/F)):RETURN 2110 REM 2200 REM * VERZOEGERUNG / TASTATUR * 2210 FOR I=0 TO 1000:NEXT I:GOTO 3030 2220 REM 2300 REM * TASTATURABFRAGE * 2310 GOSUB 200 2320 IF IN=32 THEN RETURN 2330 IF IN=64 THEN GOSUB 5030:GOTO 4810:REM @ 2340 IF IN=69 THEN 950:REM E(NDE) 2350 GOTO 2310 2360 REM 2400 REM * SYSTEMROUTINEN * 2410 VE=2:SR=A:GOTO 2470 2420 VE=3:SR=B:GOTO 2470 2430 VE=4:SR=C:GOTO 2470 2440 VE=6:SR=X:GOTO 2470 2450 VE=7:SR=Y:GOTO 2470 2460 VE=8:SR=Z 2470 HO=23:GOSUB 300:GOSUB 110:GOSUB 150 2480 PRINT :RETURN 2500 IF A<>0 THEN Q=A:GOSUB 2060:X=M:GOTO 3810 2510 RETURN 2600 IF M<0 THEN 3250 2610 E=E+1 2620 IF M<=0 THEN 2700 2630 IF E=1 THEN E1=1 2640 IF E=2 THEN E2=1 2650 IF E=3 THEN E3=1 2660 IF E=4 THEN E4=1 2670 IF E=5 THEN E5=1 2680 IF E=6 THEN E6=1 2690 D=D+1:IF E>=4 THEN D=D+3 2700 RETURN 2800 PRINT " ";S2$;"a";S1$;:RETURN 2810 PRINT " ";S2$;"b";S1$;:RETURN 2820 PRINT " ";S2$;"c";S1$;:RETURN 2830 PRINT " ";S3$;S6$;S0$;:RETURN 2840 PRINT " ";S3$;S7$;S0$;:RETURN 2850 PRINT " ";S3$;S8$;S0$;:RETURN 3000 REM 3010 REM * HAUPTPROGRAMM * 3020 REM 3030 ZL=1:E=0:E1=0:E2=0:E3=0:H1=0:H2=0:H3=0:E4=0:E5=0:E6=0 3040 PY=3.14159265:REM (PY=PI) 3050 A=0:B=0:C=0:D=0:F=180:X=0:Y=0:Z=0 3060 GOSUB 100:PRINT TAB(13);"Easy Triangles":PRINT 3070 PRINT TAB(4);"BASICODE-3-Version D.Winkel '89" 3080 PRINT 3090 PRINT :GOSUB 2800:INPUT A:M=A:GOSUB 2600 3100 PRINT :GOSUB 2810:INPUT B:M=B:GOSUB 2600 3110 PRINT :GOSUB 2820:INPUT C:M=C:GOSUB 2600 3120 PRINT 3130 PRINT :GOSUB 2830:INPUT X:M=X:GOSUB 2600 3140 PRINT :GOSUB 2840:INPUT Y:M=Y:GOSUB 2600 3150 PRINT :GOSUB 2850:INPUT Z:M=Z:GOSUB 2600 3160 PRINT 3170 REM * EINGABE PRUEFEN * 3180 IF (X+Y>=180)OR(Y+Z>=180)OR(X+Z>=180)THEN 3250 3190 IF D=9 THEN 3810 3200 IF D=6 THEN 3610 3210 IF D=3 THEN 3520 3220 IF (D<3)OR(D=4)OR(D=5)OR(D=8)THEN 3270 3230 IF (D=7)OR(D=10)OR(D=11)OR(D>12)THEN 3290 3240 REM * SYSTEMMELDUNGEN * 3250 PRINT :PRINT TAB(10);"unzulaessige Werte !":GOSUB 250 3260 GOTO 2210 3270 PRINT :PRINT TAB(10);"zu wenig Parameter !":GOSUB 250 3280 GOTO 2210 3290 PRINT :PRINT TAB(9);"nur 3 Werte eingeben !":GOSUB 250 3300 GOTO 2210 3310 GOSUB 100:PRINT :PRINT TAB(12);"keine Loesung !":PRINT 3320 GOSUB 250:GOSUB 2310 3330 GOTO 3030 3500 REM ** RECHENROUTINEN ** 3510 REM * 3 SEITEN * 3520 IF X=0 THEN N=B:Q=C:P=A:GOSUB 2030:X=M 3530 IF Y=0 THEN N=A:Q=C:P=B:GOSUB 2030:Y=M 3540 IF Z=0 THEN N=A:Q=B:P=C:GOSUB 2030:Z=M 3550 GOTO 4010 3600 REM * 2 SEITEN + EING. WINKEL * 3610 IF (A=0)OR(B=0)OR(Z=0)THEN 3630 3620 N=A:Q=B:P=Z:GOSUB 2050:C=M:H1=1:GOTO 3520 3630 IF (B=0)OR(C=0)OR(X=0)THEN 3650 3640 N=B:Q=C:P=X:GOSUB 2050:A=M:H2=1:GOTO 3520 3650 IF (A=0)OR(C=0)OR(Y=0)THEN 3690 3660 N=A:Q=C:P=Y:GOSUB 2050:B=M:H3=1:GOTO 3520 3670 REM * 2 SEITEN + 1 WINKEL * 3680 REM IFA+B=XTHENX=X-.00001:REM EVENTUELL EINFUEGEN 3690 IF X<>0 THEN N=A:P=X:GOTO 3710 3700 GOTO 3730 3710 IF B<>0 THEN Q=B:GOSUB 2060:Y=M:GOTO 3810 3720 Q=C:GOSUB 2060:Z=M:GOTO 3810 3730 IF Y<>0 THEN N=B:P=Y:GOSUB 2500:GOTO 3750 3740 GOTO 3760 3750 Q=C:GOSUB 2060:Z=M:GOTO 3810 3760 N=C:P=Z:GOSUB 2500:Q=B:GOSUB 2060:Y=M 3800 REM * 1 SEITE + 2 WINKEL * 3810 W=F-X-Y-Z 3820 IF X=0 THEN X=W 3830 IF Y=0 THEN Y=W 3840 IF Z=0 THEN Z=W 3850 IF C<>0 THEN N=C:P=Z:GOTO 3880 3860 IF B<>0 THEN N=B:P=Y:GOTO 3880 3870 IF A<>0 THEN Q=Y:GOSUB 2010:B=M:GOTO 3900 3880 Q=X:GOSUB 2020:A=M 3890 IF B=0 THEN Q=Y:GOSUB 2010:B=M:GOTO 4010 3900 Q=Z:GOSUB 2010:C=M 4000 REM * HOEHEN/S.-HALB./W.-HALB. * 4010 HA=B*SIN(PY*Z/F):HB=C*SIN(PY*X/F):HC=A*SIN(PY*Y/F) 4020 N=A/2:Q=C:P=Y:GOSUB 2050:SA=M 4030 N=B/2:Q=A:P=Z:GOSUB 2050:SB=M:N=C/2 4040 Q=B:P=X:GOSUB 2050:SC=M:N=C:Q=Y:P=X:GOSUB 2100 4050 WA=M:N=A:Q=Z:P=Y:GOSUB 2100 4060 WB=M:N=B:Q=X:P=Z:GOSUB 2100:WG=M:UM=A+B+C 4070 FL=.5*A*B*SIN(PY*Z/F) 4500 REM * LOESUNGEN AUSGEBEN * 4510 D=6:G$="A":IF ZL=3 THEN G$="B" 4520 GOSUB 100:PRINT TAB(12);"Loesungen ";G$:PRINT 4530 GOSUB 2800:IF E1=1 THEN GOSUB 2410:GOTO 4550 4540 PRINT A 4550 GOSUB 2810:IF E2=1 THEN GOSUB 2420:GOTO 4570 4560 PRINT B 4570 GOSUB 2820:IF E3=1 THEN GOSUB 2430:GOTO 4590 4580 PRINT C 4590 PRINT SM$ 4600 GOSUB 2830:IF E4=1 THEN GOSUB 2440:GOTO 4620 4610 PRINT X 4620 GOSUB 2840:IF E5=1 THEN GOSUB 2450:GOTO 4640 4630 PRINT Y 4640 GOSUB 2850:IF E6=1 THEN GOSUB 2460:GOTO 4660 4650 PRINT Z 4660 PRINT SM$ 4670 PRINT " ";S9$;"a =";HA 4680 PRINT " ";S9$;"b =";HB 4690 PRINT " ";S9$;"c =";HC 4700 PRINT SM$ 4710 PRINT " ";S4$;"a =";SA 4720 PRINT " ";S4$;"b =";SB 4730 PRINT " ";S4$;"c =";SC 4740 PRINT SM$ 4750 PRINT " ";S5$;S6$;" =";WA 4760 PRINT " ";S5$;S7$;" =";WB 4770 PRINT " ";S5$;S8$;" =";WG 4780 PRINT SM$ 4790 PRINT " Flaecheninhalt =";FL 4800 PRINT " Umfang ";S1$;UM;:GOSUB 2310 4810 IF ZL<>2 THEN 3030 4820 REM * 2. LOESUNG BEI SSW(K) * 4830 ZL=3:IF E4=1 THEN 4870 4840 IF E5=1 THEN 4890 4850 IF E1=1 THEN B=0:Y=0:GOTO 4930 4860 A=0:X=0:GOTO 4920 4870 IF E2=1 THEN C=0:Z=0:GOTO 4920 4880 B=0:Y=0:GOTO 4910 4890 IF E1=1 THEN C=0:Z=0:GOTO 4930 4900 A=0:X=0 4910 Z=F-Z:GOTO 3810 4920 Y=F-Y:GOTO 3810 4930 X=F-X:GOTO 3810 5000 REM 5010 REM * BS-HARDCOPY * 5020 REM 5030 FOR VE=0 TO 23 5040 SR$="" 5050 FOR HO=0 TO 39 5060 GOSUB 220:SR$=SR$+CHR$(IN) 5070 NEXT HO 5080 GOSUB 330:GOSUB 350:GOSUB 360 5090 NEXT VE 5100 RETURN 30000 REM **************************** 30010 REM * * 30020 REM * DAS PROGRAMM BERECHNET * 30030 REM * ALLE WICHTIGEN WERTE * 30040 REM * EINES DREIECKS * 30050 REM * * 30060 REM * DREI WERTE MUESSEN * 30070 REM * EINGEGEBEN WERDEN * 30080 REM * * 30090 REM * UNBEKANNTE WERTE MIT * 30100 REM * 'ENTER' BZW. 'RETURN' * 30110 REM * UEBERSPRINGEN * 30120 REM * * 30130 REM * DAS PROGRAMM ERKENNT * 30140 REM * WENN KEINE LOESUNG * 30150 REM * ODER EINE 2. LOESUNG * 30160 REM * MOEGLICH IST * 30170 REM * * 30180 REM * INPUT-WERTE WERDEN * 30190 REM * REVERS DARGESTELLT * 30200 REM * * 30210 REM * BEI HARDCOPY EINGERUECKT * 30220 REM * * 30230 REM * BS-HARDCOPY MIT '@' * 30240 REM * * 30250 REM * UMSCHALTUNG IN NORMAL- * 30260 REM * BETRIEB MIT 'E' * 30270 REM * * 30280 REM * PROGRAMMFORTSETZUNG MIT * 30290 REM * 'SPACE' * 30300 REM * * 30310 REM * VARIABLE PY=PI * 30320 REM * * 30330 REM **************************** 30340 REM 32000 REM **************************** 32010 REM * * 32020 REM * BC-3 DREIECKSBERECHNUNG * 32030 REM * DETLEV WINKEL * 32040 REM * AM SEE 4 * 32050 REM * BERLINGERODE * 32060 REM * 5 6 0 1 * 32070 REM * D D R * 32080 REM * * 32090 REM * NACH F. SCHNEIDER * 32100 REM * IN '64ER' 4/89 * 32110 REM * * 32120 REM * (W) 4/89 AUF C=64 * 32130 REM * * 32140 REM **************************** 32150 REM Erstausstrahlung: 32160 REM REM-Computernacht,15/16.9.89 32170 REM ACORN-Master