home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / s85xx / s8505.d64 / formel-druck (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  8KB  |  368 lines

  1. 10 REM ********************************
  2. 20 REM *                              *
  3. 30 REM *        FORMEL-DRUCK          *
  4. 40 REM *                              *
  5. 50 REM *     1985 BY PATRICK BOEDEKER *
  6. 60 REM *             NEUSTR. 11       *
  7. 70 REM *        4350 RECKLINGHAUSEN   *
  8. 80 REM *                              *
  9. 90 REM ********************************
  10. 100 :
  11. 110 :
  12. 120 DIMF$(50)
  13. 130 DIMG$(18)
  14. 140 G$(1)="1/X"
  15. 150 G$(2)="X^2"
  16. 160 G$(3)="EXP(X)"
  17. 170 G$(4)="SQR(X)"
  18. 180 G$(5)="SQR(EXP(X))"
  19. 190 G$(6)="EXP(SQR(X))"
  20. 200 G$(7)="SQR(X^(3*X+4))"
  21. 210 G$(8)="1/(7*X^6+3*X^2)"
  22. 220 G$(9)="(3*X^2-2*X+4)/(5*X^3+2*X-12)"
  23. 230 G$(10)="3*X^2-2*X+4/(5*X^3+2*X-12)"
  24. 240 G$(11)="(3*X^2-2*X+4)/5*X^3+2*X-12"
  25. 250 G$(12)="3*X^2-2*X+4/5*X^3+2*X-12"
  26. 260 G$(13)="(3*X^(7*X+4))/(2*X^2-7*X+2)"
  27. 270 G$(14)="EXP(X)+SQR(X^4+X^3+X^2)/7*X^3+14"
  28. 280 G$(15)="(X^SQR(3*X+4)+SQR(X^4+3))/7"
  29. 290 G$(16)="EXP(X)/SQR(X^3+4*X)+SQR(3*X)-1/X^2"
  30. 300 G$(17)="3/4*(7*X^2-3*X)+(7*X^2)/(14*X^3)"
  31. 310 G$(18)="SQR(X^23-4)+1/(3+X)-SQR(2*X^3)+1/X"
  32. 1000 OPEN1,4,8
  33. 1010 PRINT#1,"                              BASIC                    ";
  34. 1020 PRINT#1,"    FORMEL-DRUCK"
  35. 1030 PRINT#1:CLOSE1
  36. 1040 FORA=1TO18
  37. 1050 OPEN1,4
  38. 1060 PRINT#1:PRINT#1
  39. 1070 PRINT#1,CHR$(27)" T"
  40. 1080 PRINT#1,"  [194]EISPIEL";A;" :   ";
  41. 1090 PRINT#1,CHR$(27)" G";
  42. 1100 PRINT#1,G$(A);
  43. 1110 CLOSE1
  44. 1120 BB=55:F$=G$(A):GOSUB50000
  45. 1130 NEXTA
  46. 1140 OPEN1,4,4:PRINT#1,CHR$(12):CLOSE1
  47. 1150 END
  48. 1160 :
  49. 1170 :
  50. 50000 REM *****************************
  51. 50010 REM *                           *
  52. 50020 REM *  AUSGABE VON MATHEMATI-   *
  53. 50030 REM *  SCHEN FORMELN IN BRUCH-, *
  54. 50040 REM *  WURZEL- UND POTENZ-      *
  55. 50050 REM *  SCHREIBWEISE AUF DEN     *
  56. 50060 REM *  DRUCKER FX-80 MIT        *
  57. 50070 REM *  GOERLITZ INTERFACE.      *
  58. 50080 REM *                           *
  59. 50090 REM *  DIE FUNKTION MUSS IN F$, *
  60. 50100 REM *  DER ABSTAND VOM LINKEN   *
  61. 50110 REM *  RAND IN BB UEBERGEBEN    *
  62. 50120 REM *  WERDEN                   *
  63. 50130 REM *****************************
  64. 50140 :
  65. 50150 :
  66. 50160 GOTO50180
  67. 50170 T$=MID$(FU$,T,1):RETURN
  68. 50180 OPEN1,4:OPEN2,4,10,"7"
  69. 50230 :
  70. 50240 REM *********************
  71. 50250 REM * ZEICHENDEFINITION *
  72. 50260 REM *********************
  73. 50270 :
  74. 50280 PRINT#1,CHR$(27);":";CHR$(0);CHR$(0);CHR$(0);
  75. 50290 PRINT#1,CHR$(27);"&";CHR$(0);"%%";CHR$(139);
  76. 50300 PRINT#1,CHR$(0);CHR$(4);CHR$(4);CHR$(3);CHR$(2);CHR$(4);
  77. 50310 PRINT#1,CHR$(8);CHR$(16);CHR$(32);CHR$(64);CHR$(128);CHR$(0);
  78. 50320 PRINT#1,CHR$(27);"&";CHR$(0);"&&";CHR$(139);
  79. 50330 PRINT#1,CHR$(128);CHR$(128);CHR$(128);CHR$(128);CHR$(128);CHR$(128);
  80. 50340 PRINT#1,CHR$(128);CHR$(128);CHR$(128);CHR$(128);CHR$(128);CHR$(0);
  81. 50350 PRINT#1,CHR$(27);"%";CHR$(1);CHR$(0);
  82. 50360 FU$=F$
  83. 50370 SC=0:Y=0
  84. 50390 PRINT#1,CHR$(27);"E";
  85. 50400 L=LEN(FU$)
  86. 50410 :
  87. 50420 REM ***********************
  88. 50430 REM * EXPONENTIALFUNKTION *
  89. 50440 REM ***********************
  90. 50450 :
  91. 50460 I=1
  92. 50470 T=I:GOSUB50170
  93. 50480 IFT$="E"THEN50520
  94. 50490 I=I+1
  95. 50500 IFI<=LTHEN50470
  96. 50510 GOTO50620
  97. 50520 FORR=ITOI+2
  98. 50530 T=R:GOSUB50170
  99. 50540 E$=E$+T$:NEXTR
  100. 50550 IFE$="EXP"THENFU$=LEFT$(FU$,I-1)+"E^"+RIGHT$(FU$,L-I-2):L=L-1
  101. 50560 E$="":GOTO50490
  102. 50570 :
  103. 50580 REM ******************
  104. 50590 REM * WURZELFUNKTION *
  105. 50600 REM ******************
  106. 50610 :
  107. 50620 I=1
  108. 50630 T=I:GOSUB50170
  109. 50640 IFT$="S"THEN50680
  110. 50650 I=I+1
  111. 50660 IFI<=LTHEN50630
  112. 50670 GOTO50780
  113. 50680 FORR=ITOI+2
  114. 50690 T=R:GOSUB50170
  115. 50700 E$=E$+T$:NEXTR
  116. 50710 IFE$="SQR"THENFU$=LEFT$(FU$,I-1)+"%"+RIGHT$(FU$,L-I-2):L=L-2
  117. 50720 E$="":GOTO50650
  118. 50730 :
  119. 50740 REM *****************************
  120. 50750 REM *GEBROCHENRATIONALE FUNKTION*
  121. 50760 REM *****************************
  122. 50770 :
  123. 50780 I=1:KL=0
  124. 50790 T=I:GOSUB50170
  125. 50800 IFT$="("THENKL=KL+1
  126. 50810 IFT$=")"THENKL=KL-1
  127. 50820 IFT$="/"ANDKL>0THEN50840
  128. 50830 IFT$="/"THEN50980
  129. 50840 I=I+1
  130. 50850 IFI<=LTHEN50790
  131. 50860 :
  132. 50870 REM **************************
  133. 50880 REM * GANZRATIONALE FUNKTION *
  134. 50890 REM **************************
  135. 50900 :
  136. 50910 SC=SC+1:F$(SC)=FU$
  137. 50920 GOTO51320
  138. 50930 :
  139. 50940 REM *******************
  140. 50950 REM * FAKTORZERLEGUNG *
  141. 50960 REM *******************
  142. 50970 :
  143. 50980 WR=I:KL=0
  144. 50990 WR=WR-1:T=WR:GOSUB50170
  145. 51000 IFT$=")"THENKL=KL+1
  146. 51010 IFT$="("THENKL=KL-1
  147. 51020 IFT$="+"ANDKL=0THEN51070
  148. 51030 IFT$="-"ANDKL=0THEN51070
  149. 51040 IFT$="*"ANDKL=0THEN51070
  150. 51050 IFWR=1THENWR=0:GOTO51070
  151. 51060 GOTO50990
  152. 51070 WR=I-WR-1
  153. 51080 WV=I
  154. 51090 WV=WV+1:T=WV:GOSUB50170
  155. 51100 IFT$="("THENKL=KL+1
  156. 51110 IFT$=")"THENKL=KL-1
  157. 51120 IFT$="+"ANDKL=0THENWV=WV-1:GOTO51170
  158. 51130 IFT$="-"ANDKL=0THENWV=WV-1:GOTO51170
  159. 51140 IFT$="*"ANDKL=0THENWV=WV-1:GOTO51170
  160. 51150 IFWV=LTHEN51170
  161. 51160 GOTO51090
  162. 51170 WV=WV-I
  163. 51180 IFKL<0THENWV=WV-1
  164. 51190 SC=SC+1
  165. 51200 F$(SC)=LEFT$(FU$,I-1-WR)
  166. 51210 FU$=RIGHT$(FU$,L-I+WR+1)
  167. 51220 SC=SC+1
  168. 51230 F$(SC)=LEFT$(FU$,WR+WV+1)
  169. 51240 F$(SC+1)=RIGHT$(FU$,L-I-WV)
  170. 51250 FU$=RIGHT$(FU$,L-I-WV):L=LEN(FU$)
  171. 51260 GOTO50780
  172. 51270 :
  173. 51280 REM ************
  174. 51290 REM * SCHLEIFE *
  175. 51300 REM ************
  176. 51310 :
  177. 51320 Y=Y+1
  178. 51330 IFY>SCTHEN53150
  179. 51340 IFF$(Y)=""THEN51320
  180. 51350 FU$=F$(Y)
  181. 51360 CLOSE4:OPEN4,4,4
  182. 51370 PRINT#4,CHR$(27);CHR$(108);CHR$(BB);
  183. 51380 PRINT#4,CHR$(27);"E";
  184. 51390 CLOSE2:OPEN2,4,10,"7"
  185. 51400 :
  186. 51410 REM ***********
  187. 51420 REM * BRUCH ? *
  188. 51430 REM ***********
  189. 51440 :
  190. 51450 L=LEN(FU$)
  191. 51460 I=1:KL=0
  192. 51470 T=I:GOSUB50170
  193. 51480 IFT$="("THENKL=KL+1
  194. 51490 IFT$=")"THENKL=KL-1
  195. 51500 IFT$="/"ANDKL>0THEN51520
  196. 51510 IFT$="/"THEN51650
  197. 51520 I=I+1
  198. 51530 IFI<=LTHEN51470
  199. 51540 :
  200. 51550 REM **************
  201. 51560 REM * KEIN BRUCH *
  202. 51570 REM **************
  203. 51580 :
  204. 51590 OB$=FU$:UB$="":LO=L:BB=BB+L:GOTO52110
  205. 51600 :
  206. 51610 REM *************
  207. 51620 REM * ZERLEGUNG *
  208. 51630 REM *************
  209. 51640 :
  210. 51650 OB$=""
  211. 51660 FORJ=1TOI-1:T=J:GOSUB50170
  212. 51670 OB$=OB$+T$:NEXTJ:LO=LEN(OB$)
  213. 51680 IFLEFT$(OB$,1)="("ANDRIGHT$(OB$,1)=")"THENOB$=MID$(OB$,2,LEN(OB$)-2):LO=LO-2
  214. 51690 UB$=""
  215. 51700 FORJ=I+1TOL:T=J:GOSUB50170
  216. 51710 UB$=UB$+T$:NEXTJ:LU=LEN(UB$)
  217. 51720 IFLEFT$(UB$,1)="("ANDRIGHT$(UB$,1)=")"THENUB$=MID$(UB$,2,LEN(UB$)-2):LU=LU-2
  218. 51730 :
  219. 51740 REM ****************
  220. 51750 REM * POTENZANZAHL *
  221. 51760 REM ****************
  222. 51770 :
  223. 51780 Z=0:WO=0:WU=0
  224. 51790 I=0:KL=0:Z=Z+1
  225. 51800 I=I+1
  226. 51810 IFZ=1THENT$=MID$(OB$,I,1)
  227. 51820 IFZ=2THENT$=MID$(UB$,I,1)
  228. 51830 IFT$="^"THEN51870
  229. 51831 IFZ=1ANDT$="%"THENWO=WO+2
  230. 51832 IFZ=2ANDT$="%"THENWU=WU+2
  231. 51840 IFZ=1ANDI<LOTHEN51800
  232. 51850 IFZ=2ANDI<LUTHEN51800
  233. 51860 GOTO52000
  234. 51870 IFZ=1THENT$=MID$(OB$,I,1)
  235. 51880 IFZ=2THENT$=MID$(UB$,I,1)
  236. 51890 IFT$="("THENKL=KL+1
  237. 51900 IFT$=")"ANDKL=0THEN51800
  238. 51910 IFT$=")"ANDKL>0THENKL=KL-1
  239. 51920 IFT$="+"ANDKL=0THEN51800
  240. 51930 IFT$="-"ANDKL=0THEN51800
  241. 51940 IFT$="*"ANDKL=0THEN51800
  242. 51945 IFT$="/"ANDKL=0THEN51800
  243. 51950 I=I+1
  244. 51960 IFT$=""THEN52000
  245. 51970 IFZ=1THENWO=WO+.5:IFT$="^"THENWO=WO+.5
  246. 51980 IFZ=2THENWU=WU+.5:IFT$="^"THENWU=WU+.5
  247. 51990 GOTO51870
  248. 52000 IFZ=1THEN51790
  249. 52030 IFLO-WO+1.5<LU-WUTHENOB$=" "+OB$+" ":LO=LO+2:D=1:GOTO52030
  250. 52040 IFD=1THEND=0:GOTO52060
  251. 52050 IFLU-WU+1.5<LO-WOTHENUB$=" "+UB$+" ":LU=LU+2:GOTO52050
  252. 52060 :
  253. 52070 REM *******************
  254. 52080 REM * ZAEHLER DRUCKEN *
  255. 52090 REM *******************
  256. 52100 :
  257. 52110 M=0
  258. 52120 PRINT#1,CHR$(27);"E";
  259. 52130 IFUB$<>""THENPRINT#4,CHR$(27);CHR$(106);CHR$(22);:CLOSE3:OPEN3,4,10,"7"
  260. 52140 O=1:Z=1
  261. 52150 T=O:T$=MID$(OB$,T,1)
  262. 52160 IFT$="^"THENE=O:GOSUB52580:O=E:M=M+1
  263. 52170 IFT$="%"THENQ=O:GOSUB52910:O=Q
  264. 52180 IFS=1THENS=0:GOTO52200
  265. 52190 PRINT#1,T$;
  266. 52200 O=O+1
  267. 52210 IFO<=LOTHEN52150
  268. 52220 IFUB$=""THENPRINT#1:PRINT#4,CHR$(27);CHR$(106);CHR$(21):CLOSE3:OPEN3,4,10,"7"
  269. 52225 IFUB$=""THENBB=BB-INT(M-.5):GOTO51320
  270. 52230 :
  271. 52240 REM ***************
  272. 52250 REM * BRUCHSTRICH *
  273. 52260 REM ***************
  274. 52270 :
  275. 52280 CLOSE3:OPEN3,4,9,"7"
  276. 52290 PRINT#3
  277. 52300 IFLO-WO<=LU-WUTHENAA=LU-WU+.5
  278. 52310 IFLO-WO>=LU-WUTHENAA=LO-WO+.5
  279. 52320 FORI=1TOINT(AA)
  280. 52330 PRINT#3,"[192]";:NEXTI
  281. 52340 PRINT#3
  282. 52350 CLOSE3:OPEN3,4,10,"7"
  283. 52360 BB=BB+INT(AA+1)
  284. 52370 :
  285. 52380 REM ******************
  286. 52390 REM * NENNER DRUCKEN *
  287. 52400 REM ******************
  288. 52410 :
  289. 52420 U=1:Z=2
  290. 52430 T=U:T$=MID$(UB$,T,1)
  291. 52440 IFT$="^"THENE=U:GOSUB52580:U=E
  292. 52450 IFT$="%"THENQ=U:GOSUB52910:U=Q
  293. 52460 IFS=1THENS=0:GOTO52480
  294. 52470 PRINT#1,T$;
  295. 52480 U=U+1
  296. 52490 IFU<=LUTHEN52430
  297. 52500 PRINT#1
  298. 52510 PRINT#4,CHR$(27);CHR$(106);CHR$(40);
  299. 52520 GOTO51320
  300. 52530 :
  301. 52540 REM ******************
  302. 52550 REM * POTENZAUSDRUCK *
  303. 52560 REM ******************
  304. 52570 :
  305. 52580 CLOSE3:OPEN3,4,9,"7"
  306. 52590 PRINT#1,CHR$(27);"F";
  307. 52600 PRINT#1,CHR$(27);"S";CHR$(0);CHR$(15);
  308. 52610 E=E+1
  309. 52620 T=E
  310. 52630 IFZ=1THENT$=MID$(OB$,T,1):AO=AO+.5
  311. 52640 IFZ=2THENT$=MID$(UB$,T,1):AU=AU+.5
  312. 52645 IFT$="%"THENQ=E:PP=0:GOSUB52910:E=Q:M=M+PP
  313. 52650 IFT$="("THENEK=EK+1
  314. 52660 IFT$=")"ANDEK=0THEN52810
  315. 52670 IFT$=")"ANDEK>0THENEK=EK-1
  316. 52680 IFT$="+"ANDEK=0THEN52810
  317. 52690 IFT$="-"ANDEK=0THEN52810
  318. 52700 IFT$="*"ANDEK=0THEN52810
  319. 52705 IFT$="/"ANDEK=0THEN52810
  320. 52710 PRINT#1,T$;
  321. 52720 IFWW=1THENPRINT#4,CHR$(27);CHR$(106);CHR$(3);:CLOSE3:OPEN3,4,10,"7"
  322. 52730 IFWW=1THENPRINT#1,CHR$(8);
  323. 52740 IFWW=1THENPRINT#1,"&";
  324. 52750 IFWW=1THENPRINT#4,CHR$(27);CHR$(74);CHR$(3);:CLOSE3:OPEN3,4,9,"7"
  325. 52760 M=M+.5
  326. 52770 IFZ=1ANDE=LOTHENS=1:GOTO52810
  327. 52780 IFZ=2ANDE=LUTHENS=1:GOTO52810
  328. 52790 E=E+1
  329. 52800 GOTO52620
  330. 52810 PRINT#4,CHR$(27);CHR$(84);CHR$(18);
  331. 52820 EK=0
  332. 52830 PRINT#1,CHR$(27);"E";
  333. 52840 CLOSE3:OPEN3,4,10,"7"
  334. 52850 RETURN
  335. 52860 :
  336. 52870 REM ******************
  337. 52880 REM * WURZELAUSDRUCK *
  338. 52890 REM ******************
  339. 52900 :
  340. 52910 PRINT#1,"%";:KL=1:Q=Q+1:WW=1:WM=0
  341. 52920 Q=Q+1
  342. 52930 T=Q
  343. 52940 IFZ=1THENT$=MID$(OB$,T,1)
  344. 52950 IFZ=2THENT$=MID$(UB$,T,1)
  345. 52960 IFT$="^"THENE=Q:GOSUB52580:Q=E:WM=WM+1
  346. 52970 IFS=1THENS=0:GOTO52920
  347. 52980 IFT$="("THENKL=KL+1
  348. 52990 IFT$=")"THENKL=KL-1
  349. 53000 IFT$=")"ANDKL=0THENS=1:GOTO53070
  350. 53010 PRINT#1,T$;
  351. 53015 PP=PP+.5
  352. 53020 PRINT#4,CHR$(27);CHR$(106);CHR$(3);:CLOSE3:OPEN3,4,10,"7"
  353. 53030 PRINT#1,CHR$(8);
  354. 53040 PRINT#1,"&";
  355. 53050 PRINT#4,CHR$(27);CHR$(74);CHR$(3);:CLOSE3:OPEN3,4,10,"7"
  356. 53060 GOTO52920
  357. 53070 WW=0
  358. 53080 M=M+WM+2
  359. 53090 RETURN
  360. 53100 :
  361. 53110 REM ********
  362. 53120 REM * ENDE *
  363. 53130 REM ********
  364. 53140 :
  365. 53150 PRINT#4,CHR$(27);"@";:CLOSE1:CLOSE2:CLOSE3:CLOSE4
  366. 53160 OPEN3,4,8,"12":CLOSE3
  367. 53170 RETURN
  368.