Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß) 0 REMB!b!G># :# ####(~#> Copyright H.Voelz Dez.1987 10 CLEAR 5000:WINDOW:CLS 20 DEF FN A(X)=2*2^X 30 DEF FN B(X)=2*2^X*(LN(2)) 40 M=30:DIM F$(M),FS$(M),FU$(M),FV$(M),F1$(M),O(M) 50 Z$="+-*/":READ FZ:DIM X$(FZ),XS$(FZ),L(FZ) 60 FOR I=1 TO FZ:READ X$(I),XS$(I):L(I)=LEN(X$(I)):NEXT:GOTO 1190 70 Z=0:F$(0)="":POKE 1032,65:INPUT "f(x) =";F$(0):CALL*40A:GOSUB 110:POKE 1030,1 75 LF$=F$(0) 80 POKE 1031,1:PRINT "f'(x)= "FS$(0):IF LEN(FS$(0))>65 THEN POKE 1031,2:RETURN 90 FOR I=1 TO LEN(FS$(0)):POKE 865+I,ASC(MID$(FS$(0),I,1)):NEXT 100 POKE 865+I,0:POKE 1032,66:CALL*40A:RETURN 110 F$=F$(Z):S$=F$:GOSUB 1010 120 IF P=L THEN 990:ELSE IF P=1 AND O>2 THEN 990 130 IF P=0 THEN 760 140! u,v 150 O(Z)=O:FU$(Z)=LEFT$(F$,P-1):FV$(Z)=MID$(F$,P+1) 160 Z=Z+1:F$(Z)=FU$(Z-1):GOSUB 110:F1$(Z-1)=FS$(Z) 170 F$(Z)=FV$(Z-1):GOSUB 110:Z=Z-1 180 FU$=FU$(Z):FV$=FV$(Z):F1$=F1$(Z):F2$=FS$(Z+1):O=O(Z) 190 ON O GOTO 210,210,260,260,450 200! u+v 210 IF F1$<>"0"AND F2$<>"0"THEN FS$(Z)=F1$+MID$(Z$,O,1)+F2$:RETURN 220 IF F1$<>"0"THEN FS$(Z)=F1$:RETURN 230 IF F2$<>"0"THEN FS$(Z)=MID$(Z$,2,O-1)+F2$:RETURN 240 FS$(Z)="0":RETURN 250! u*v 260 IF F1$="0"THEN T=0:FS$=F1$:GOTO 310 270 T=1:IF F1$="1"THEN FS$=FV$:GOTO 310 280 S$=F1$:GOSUB 1010:IF O<3 THEN F1$="("+F1$+")" 290 FF$=FV$:S$=FF$:GOSUB 1010:IF O<3 THEN FF$="("+FF$+")" 300 FS$=F1$+"*"+FF$ 310 IF F2$="0"THEN 390 320 FF$=F1$:S$=F1$:GOSUB 1010:IF O<3 THEN FF$="("+FF$+")" 330 T=T+1 340 FS$=MID$(FS$,1-(T=1))+MID$(Z$,O(Z)-2,1+((T=1)AND O(Z)=3)) 350 IF F2$="1"THEN FS$=FS$+FU$:GOTO 390 360 S$=FU$:GOSUB 1010:IF O<3 THEN FU$="("+FU$+")" 370 S$=F2$:GOSUB 1010:IF O<3 THEN F2$="("+F2$+")" 380 FS$=FS$+FU$+"*"+F2$ 390 IF F2$="0"OR O(Z)=3 THEN 430 400 IF T=2 THEN FS$="("+FS$+")" 410 S$=FV$:GOSUB 1010:IF O<3 THEN FV$="("+FV$+")" 420 FS$=FS$+"/"+FV$+"^2" 430 FS$(Z)=FS$:RETURN 440! u^v 450 IF F2$<>"0"THEN 650 460 IF F1$="0"THEN FS$(Z)=F1$:RETURN 470 IF F1$="1"THEN FS$="":GOTO 500 480 S$=F1$:GOSUB 1010:IF O<3 THEN F1$="("+F1$+")" 490 FS$=F1$+"*" 500 IF RIGHT$(FV$,1)=")"THEN FV$=LEFT$(FV$,LEN(FV$)-1) 510 IF LEFT$(FV$,1)="("THEN FV$=MID$(FV$,2) 515 IF FV$<>"1"THEN FS$=FV$+"*"+FS$ 520 S$=FV$:GOSUB 1110:IF N THEN F2=VAL(FV$)-1:ELSE 590 530 F2$=STR$(F2):IF F2<0 THEN 610:ELSE F2$=MID$(F2$,2):GOTO 620 590 F2$=FV$+"-1" 610 F2$="("+F2$+")" 620 IF F2$="1"THEN FS$(Z)=FS$+FU$:RETURN 630 IF F2$="0"THEN FS$(Z)=FS$+"1":RETURN 640 FS$(Z)=FS$+FU$+"^"+F2$:RETURN 650 FF$=FU$ 660 S$=FF$:GOSUB 1010:IF O<3 THEN FF$="("+FF$+")" 670 S$=F1$:GOSUB 1010:IF O<3 THEN F1$="("+F1$+")" 680 S$=FV$:GOSUB 1010:IF O<3 THEN FV$="("+FV$+")" 690 S$=F2$:GOSUB 1010:IF O<3 THEN F2$="("+F2$+")" 700 FS$=F$(Z)+"*(":IF F1$<>"0"THEN FS$=FS$+F1$+"/"+FF$+"*"+FV$+"+" 710 FS$=FS$+"LN":IF LEFT$(FU$,1)<>"("THEN FU$="("+FU$+")" 720 FS$=FS$+FU$ 730 IF F2$="1"THEN FS$(Z)=FS$+")":RETURN 740 FS$(Z)=FS$+"*"+F2$+")":RETURN 750!F-Suche 760 FOR I=1 TO FZ:IF LEFT$(F$,L(I))<>X$(I)THEN NEXT:GOTO 940 770 II=I:I=FZ:NEXT:IF RIGHT$(F$,1)<>")"THEN 990 780! u 790 O(Z)=II 800 Z=Z+1:F$(Z)=MID$(F$,L(II)+1,L-L(II)-1):GOSUB 110:Z=Z-1 810 F$=F$(Z):FU$=F$(Z+1):F1$=FS$(Z+1) 820 IF F1$="0"THEN FS$(Z)="0":RETURN 830 S$=F1$:GOSUB 1010:IF O<3 THEN F1$="("+F1$+")" 840 O=O(Z):IF O>10 THEN 900 850!f'=u'*g(u) 860 FS$=XS$(O)+FU$+")":IF F1$<>"1"THEN FS$=F1$+"*"+FS$ 870 IF O>5 THEN FS$=FS$+"^2" 880 FS$(Z)=FS$:RETURN 890!f'=u'/g(u) 900 FS$=XS$(O)+FU$+")":FS$=F1$+"/"+FS$ 910 IF O<>19 THEN FS$=FS$+"2)" 920 FS$(Z)=FS$:RETURN 930! ([{< >}]) 940 IF LEFT$(F$,1)<>"("OR RIGHT$(F$,1)<>")"THEN 970 950 S$=MID$(F$,2,LEN(F$)-2):GOSUB 1110:IF N THEN FS$(Z)="0":RETURN 960 F$(Z)=MID$(F$,2,LEN(F$)-2):GOTO 110 970 IF F$="X"THEN FS$(Z)="1":RETURN 980 FS$(Z)="0":RETURN 990 PRINT "Fehlerhafte Eingabe !":GOSUB 1320:RUN 1000! +-*/ 1010 L=LEN(S$):P=0:O=6:KL=0:IF L=0 THEN S$=" ":GOTO 1010 1020 FOR I=1 TO L:K$=MID$(S$,I,1):KL=KL+(K$=")"):KL=KL-(K$="(") 1030 IF KL<>0 THEN NEXT:GOTO 1080 1040 IF K$="+"OR K$="-"THEN P=I:O=1-(K$="-") 1050 IF K$="*"OR K$="/"THEN IF O>2 THEN P=I:O=3-(K$="/") 1060 IF K$="^"THEN IF O>4 THEN P=I:O=5 1070 NEXT 1080 IF KL THEN 990 1090 RETURN 1100!TERM=ZAHL ? 1110 FOR I=1 TO LEN(S$):K$=MID$(S$,I,1) 1120 IF K$>"/"AND K$<":"THEN NEXT:N=1:RETURN 1130 IF(K$="-"OR K$=" ")AND I=1 THEN NEXT 1140 N=0:RETURN 1150!FKT. 1160 DATA 7,SIN(,COS(,COS(,(-1)*SIN(,EXP(,EXP(,LN(,1/( 1170 DATA SQR(,.5/SQR(,TAN(,1/COS(,ATN(,1/(1+ 1180!MAIN 1190 WINDOW:CLS:A$=STRING$(32,""):PRINT AT(0,0);A$ 1200 FOR I=0 TO 30:PRINT AT(I,31);"":NEXT:PRINT AT(31,0);A$ 1210 PRINT AT(2,6);"DIFFERENZIALRECHNUNG":PRINT AT(3,5);STRING$(22,"*") 1220 WINDOW 6,29,2,30:CLS:PRINT "1 1. Ableitung bilden":PRINT 1230 PRINT "2 hoehere Ableitungen":PRINT:PRINT "3 rechnen":PRINT 1240 PRINT "4 Ende":PRINT:PRINT:PRINT "Ihre Wahl ..." 1250 A$=INKEY$:IF A$<"1"OR A$>"4"THEN 1250 1260 CLS:ON VAL(A$)GOSUB 70,1340,1280,1270:GOSUB 1320:GOTO 1220 1270 WINDOW:CLS:END 1280 IF PEEK(1031)=2 THEN PRINT "Die Ableitung kann wegen":ELSE 1282 1281 PRINT "Ueberlaenge nicht bearbeitet werden !":PRINT 1282 INPUT "Startwert:";X1 1283 INPUT "Endwert :";X2 1284 INPUT "Anzahl :";N:GOTO 1300 1285 CLS:PRINT " f(x)="LF$:PRINT:PRINT STR$(PEEK(1030))". Ableitung:" 1288 PRINT " g(x)="FS$(0):PRINT 1290 PRINT " x"TAB(10)"f(x)"TAB(16)STR$(PEEK(1030))".Ableitung" 1295 PRINT:RETURN 1300 GOSUB 1285:N1=0:FOR X=X1 TO X2 STEP(X2-X1)/(N-1) 1310 PRINT X TAB(9)FN A(X);:IF PEEK(1031)=2 THEN 1312 1311 PRINT TAB(19);FN B(X); 1312 PRINT:N1=N1+1:IF N1>9 THEN N1=0:GOSUB 1320:GOSUB 1285 1313 NEXT:RETURN 1320 PRINT:PRINT TAB(20)">ENTER<" 1330 IF INKEY$=CHR$(13)THEN RETURN:ELSE 1330 1340 INPUT "Nr. der Ableitung:";AN:IF AN<1 OR AN>INT(AN)THEN 1340 1350 PRINT "Alle Ableitungen listen J/(N) ?" 1360 AL$=INKEY$:IF AL$=""THEN 1360 1370 POKE 1032,65:F$(0)="":INPUT "f(x)=";F$(0):CALL*40A:LF$=F$(0) 1380 FOR AB=1 TO AN:Z=0:GOSUB 110:GOSUB 1400:IF LEN(FS$(0))>65 THEN 1420 1390 F$(0)=FS$(0):NEXT:POKE 1030,AN:GOSUB 90:POKE 1031,1:GOTO 1430 1400 IF AL$="N"THEN RETURN 1410 PRINT:PRINT STR$(AB)". Ableitung:":PRINT "g(x)=";FS$(0):RETURN 1420 X=AB:AB=AN+1:NEXT:POKE 1031,2:PRINT:PRINT "Ueberlaenge !":AB=X+1:POKE 1030,X 1430 AB=AB-1:IF AL$="N"THEN 1410:ELSE RETURN