home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 46 / 64er_Magazin_Sonderheft_46_19xx_Markt__Technik_de_Side_B.d64 / chemiekastenv2.0 (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  26KB  |  988 lines

  1. 1 rem ********************************
  2. 2 rem *                              *
  3. 3 rem *      chemiekasten v2.0       *
  4. 4 rem *             von              *
  5. 5 rem *         thomas henke         *
  6. 6 rem *     im brinkmannsfeld 31     *
  7. 7 rem *         4250 bottrop         *
  8. 8 rem *                              *
  9. 9 rem ********************************
  10. 10 gosub8050
  11. 20 poke53265,peek(53265)and223:poke53272,2
  12. 30 sys36864
  13. 40 :
  14. 50 rem * menue hm *
  15. 60 :
  16. 70 garbcol:print"[147]"
  17. 80 menu8,1,20,10,140,1,0,hm$(0),a
  18. 90 onagoto150,210,1540,270,330,390,4540,5390,5680,6300
  19. 100 ifa=0then7200
  20. 110 goto70
  21. 120 :
  22. 130 rem * menue mm *
  23. 140 :
  24. 150 menu3,15,14,3,141,1,0,mm$(0),a
  25. 160 ifa=0then70
  26. 170 onagoto450,600,800
  27. 180 :
  28. 190 rem * menue gp *
  29. 200 :
  30. 210 menu3,14,17,2,141,1,0,gp$(0),a
  31. 220 ifa=0then70
  32. 230 onagoto1010,1190
  33. 240 :
  34. 250 rem * menue lp *
  35. 260 :
  36. 270 menu0,12,36,3,141,1,0,lp$(0),a
  37. 280 ifa=0then70
  38. 290 onagoto2190,2320,2440
  39. 300 :
  40. 310 rem * menue ma *
  41. 320 :
  42. 330 menu3,18,25,2,141,1,0,ma$(0),a
  43. 340 ifa=0then70
  44. 350 onagoto2640,2820
  45. 360 :
  46. 370 rem * menue loe *
  47. 380 :
  48. 390 menu14,8,21,6,141,1,0,l$(0),a
  49. 400 ifa=0then70
  50. 410 onagoto3290,3500,3710,3990,4200,4380
  51. 420 :
  52. 430 rem * molmasse *
  53. 440 :
  54. 450 pu=1:print"[147]"
  55. 460 text0,15,"[205][207][204][205][193][211][211][197][146]"
  56. 470 ze=2:sp=9:l=30:text2,1,"[198]ormel:":gosub6960
  57. 480 z=e:gosub7300
  58. 490 forx=1tob
  59. 500 text2*x+2,1,"[197]lement: "ee$(x)b$(8)"[193]nzahl:"c(x)
  60. 510 nextx
  61. 520 ifb=1andc(b)=1then:text6,1,"[193]tomgewicht: "z$" g/mol":goto540
  62. 530 text2*b+4,1,"[205]olmasse: "z$" g/mol"
  63. 540 dz=b+2:gosub7970
  64. 550 ifa=0then150
  65. 560 goto450
  66. 570 :
  67. 580 rem * mol & masse *
  68. 590 :
  69. 600 dz=3:a=0:pu=0:print"[147]"
  70. 610 text0,14,"[205][207][204] & [205][193][211][211][197][146]"
  71. 620 text2,3,"[198]ormel:"
  72. 630 text4,4,b$(12)
  73. 640 text6,1,"[205]olmenge: 1       mol"
  74. 650 er=0:ze=2:sp=11:l=28:gosub6960
  75. 660 nk=4:x=1:ze=4:l=7:gosub6840:mv=val(ip$)
  76. 670 x=2:sp=28:l=5:gosub6840:w=val(ip$)/100
  77. 680 x=3:ze=6:sp=11:l=7:gosub6840:n=val(ip$)
  78. 690 ifa=0thengosub7920:goto650
  79. 700 ifa=1thenz=n*e/w:gosub7280:text4,11,z$:goto740
  80. 710 ifa=3thenz=mv*w/e:gosub7280:text6,11,z$:goto740
  81. 720 nk=2
  82. 730 ifa=2thenz=100*n*e/mv:gosub7280:text4,28,z$:goto740
  83. 740 gosub7970
  84. 750 ifa=0then150
  85. 760 goto600
  86. 770 :
  87. 780 rem * gravimetrie *
  88. 790 :
  89. 800 dz=4:pu=0:print"[147]"
  90. 810 text0,14,"[199][210][193][214][201][205][197][212][210][201][197][146]"
  91. 820 text2,1,"[199]esuchte [211]ubstanz:"
  92. 830 text4,13,"[205]asse: ?       g"
  93. 840 text6,2,"[193]usgew. [211]ubstanz:"
  94. 850 text8,13,"[205]asse: 1       g"
  95. 860 ze=2:sp=20:l=20:gosub6960:er=e:swaparer$,ee$:dupearct,c:f=b
  96. 870 ze=6:gosub6970
  97. 880 forx=1tob
  98. 890 fory=1tof
  99. 900 ifee$(x)=er$(y)thenc=c(x)/ct(y):goto930
  100. 910 nexty:nextx
  101. 920 gosub7920:l=20:goto870
  102. 930 ze=8:l=7:gosub6830:mv=val(ip$)
  103. 940 nk=4:z=c*mv*er/e:gosub7280:text4,20,z$
  104. 950 gosub7970
  105. 960 ifa=0then150
  106. 970 goto800
  107. 980 :
  108. 990 rem * gewichtsprozente sf *
  109. 1000 :
  110. 1010 pu=2:print"[147]"
  111. 1020 text0,8,"[199][197][215][201][195][200][212][211][208][210][207][218][197][206][212][194][197][210][197][195][200][206][213][206][199][146]"
  112. 1030 ze=2:sp=9:l=30:text2,1,"[198]ormel:":gosub6960
  113. 1040 text4,1,"[197]lem.  [193]nz.   [199]ew%"
  114. 1050 nk=2:forx=1tob
  115. 1060 w(x)=c(x)*am(ez%(x))*100/e
  116. 1070 z=w(x):gosub7280:w$=z$:c$=str$(c(x))
  117. 1080 text2*x+4,2,ee$(x)tab(11-len(c$))c$tab(13)w$
  118. 1090 nextx
  119. 1100 menu26,4,10,3,141,1,0,wm$(0),a
  120. 1110 ifa<4then:killm
  121. 1120 ifa=0then210
  122. 1130 ifa=2thendz=b+2:gosub7550:goto1100
  123. 1140 ifa=1then1010
  124. 1150 ifa=3thenup=1:goto1540
  125. 1160 :
  126. 1170 rem * gewichtsprozente vw *
  127. 1180 :
  128. 1190 b=8:pu=2:ps=0:a=1:nk=2:print"[147]"
  129. 1200 text0,8,"[199][197][215][201][195][200][212][211][208][210][207][218][197][206][212][194][197][210][197][195][200][206][213][206][199][146]"
  130. 1210 text2,1,"[197]inw. [193][211]  [214]erb.   [193]usw. [214][194]   [199]ew.% [197]l."
  131. 1220 wline3,0,40,1:sline2,10,2,1:sline2,18,2,1:sline2,29,2,1:text4,1,"1"
  132. 1230 forx=1to8
  133. 1240 wline2*x+3,0,40,1:sline2*x+2,10,2,1:sline2*x+2,18,2,1:sline2*x+2,29,2,1
  134. 1250 ifx>1thenpu=1:nk=nb:z=es:gosub7280:text2*x+2,1,z$:pu=2:nk=2
  135. 1260 eingabe2*x+2,1,7,"1234567890.",ip$,"[133]",sv%
  136. 1270 ifsv%=1thenb=x-1:goto1440
  137. 1280 es=val(ip$):z=es:gosub7430
  138. 1290 text2*x+2,12,"     "
  139. 1300 text2*x+2,12,vb$(a)
  140. 1310 getkp$:ifkp$=""then1310
  141. 1320 ifkp$=""thenifa<8thena=a+1:goto1290
  142. 1330 ifkp$="[145]"thenifa>1thena=a-1:goto1290
  143. 1340 ifpeek(203)=1then1360
  144. 1350 goto1310
  145. 1360 ee$(x)=ve$(a):eingabe2*x+2,21,7,"1234567890.r",ip$
  146. 1370 ifip$="r"thenw(x)=100-ps:z=w(x):gosub7280:ps=100:text2*x+2,21," "
  147. 1380 ifip$="r"thenb=x:text2*x+2,31,z$:x=x+1:goto1440
  148. 1390 av=val(ip$):w(x)=fnr(fv(a)*av*100/es)
  149. 1400 ps=ps+w(x):z=w(x):gosub7280
  150. 1410 text2*x+2,31,z$
  151. 1420 ifa<8thena=a+1
  152. 1430 nextx
  153. 1440 la=2*x+2:gosub7870:ifb>6thengosub7500
  154. 1450 menu12,16,10,3,141,1,0,wm$(0),a
  155. 1460 ifa<4then:killm
  156. 1470 ifa=0then210
  157. 1480 ifa=2thendz=b+1:gosub7550:goto1450
  158. 1490 ifa=1then1190
  159. 1500 ifa=3thenup=2
  160. 1510 :
  161. 1520 rem * empirische formel *
  162. 1530 :
  163. 1540 nk=2:pu=2:ee=0:print"[147]"
  164. 1550 text0,4,"[194][197][210][197][195][200][206][213][206][199] [196][197][210] [197][205][208][201][210][201][211][195][200][197][206] [198][207][210][205][197][204][146]"
  165. 1560 ifup=1thenup=0:ps=100:g=1:dupearz,c:goto1700
  166. 1570 ifup=2thenup=0:gosub7090:goto1650
  167. 1580 ze=2:sp=11:l=28:text2,1,"[197]lemente:":gosub6960:ifb=9then1580
  168. 1590 ps=100
  169. 1600 forx=1tob
  170. 1610 text2*x+2,4,ee$(x)spc(5)"[199]ew% ? "fnr(ps)
  171. 1620 eingabe2*x+2,19,6,"1234567890.",ip$,"[133]",sv%:ifsv%=1then70
  172. 1625 w(x)=val(ip$):ps=ps-w(x):ifw(x)=0then1620
  173. 1630 nextx
  174. 1640 ps=100-ps
  175. 1650 g=100:forx=1tob
  176. 1660 z(x)=w(x)/am(ez%(x))
  177. 1670 ifz(x)<gtheng=z(x)
  178. 1680 nextx
  179. 1690 forx=1tob:c(x)=z(x)/g:nextx
  180. 1700 e=0:nk=5:gosub7090:er=e
  181. 1710 dupearct,c:goto1730
  182. 1720 e=0:nk=5:gosub7090
  183. 1730 gosub7860:nk=2
  184. 1740 text2,2,"[197]lement  [208]rozent  [201]ndexw.  [210]el.[201]ndex"
  185. 1750 forx=1tob
  186. 1760 z=w(x):gosub7280:w$=z$:z=z(x):gosub7280:i$=z$:z=c(x):gosub7280:c$=z$
  187. 1770 text2*x+2,4,ee$(x)spc(4)w$spc(2)i$spc(3)c$
  188. 1780 nextx
  189. 1790 text2*b+4,2,"[205]olmasse:"e" [197]ingabe:"ee
  190. 1800 text2*b+6,2,"[208]rozentsumme:"ps"%"
  191. 1810 ifb>4then:gosub7500
  192. 1820 dupearc,ct
  193. 1830 menu25,14,10,4,141,1,0,ef$(0),a
  194. 1840 ifa<5then:killm
  195. 1850 ifa=0then70
  196. 1860 ifa=2thendz=b+3:gosub7550:goto1810
  197. 1870 onagoto1540,7550,1890,2070
  198. 1880 :
  199. 1890 text2*b+6,2,"[197]rmittelte [205]olmasse ? "e
  200. 1900 eingabe2*b+6,25,8,"1234567890.",ip$,"[133]",sv%:ifsv%=1then70
  201. 1910 ee=val(ip$):f=int(ee/er+0.5)
  202. 1920 iff<1thenf=1
  203. 1930 menu16,16,8,2,141,1,0,te$(0),a
  204. 1940 ifa<3then:killm
  205. 1950 onagoto2020,1970
  206. 1960 :
  207. 1970 forx=1tob
  208. 1980 c(x)=c(x)*f
  209. 1990 nextx
  210. 2000 goto1720
  211. 2010 :
  212. 2020 forx=1tob
  213. 2030 c(x)=c(x)*f:c(x)=int(c(x)+.5)
  214. 2040 nextx
  215. 2050 goto1720
  216. 2060 :
  217. 2070 clearz2*b+6
  218. 2080 text2*b+6,2,"[197]lement+[193]nzahl ?  "ee$(1)
  219. 2090 eingabe2*b+6,20,4,"1234567890[171][179][177][178][163][183][184][162][185][175]",ip$,"[133]",sv%:ifsv%=1then70
  220. 2100 falip$:ee$(0)=chr$(peek(40449))+chr$(peek(40450)):f=peek(40451)
  221. 2110 forx=1tob
  222. 2120 ifee$(0)=ee$(x)theng=z(x)/f:goto2150
  223. 2130 nextx
  224. 2140 gosub7920:goto2080
  225. 2150 forx=1tob:c(x)=z(x)/g:nextx:goto1720
  226. 2160 :
  227. 2170 rem * loeslichkeitsprodukt *
  228. 2180 :
  229. 2190 dz=3:print"[147]"
  230. 2200 text0,2,"[204][207][197][211][204][201][195][200][203][197][201][212] [201][206][160][204][207][197][211][204][201][195][200][203][197][201][212][211][208][210][207][196][213][203][212][146]"
  231. 2210 text2,1,"[198]ormel des [211]alzes:"
  232. 2220 ze=2:sp=20:l=18:gosub6960:loeprfo$,q1%,q2%
  233. 2230 text4,2,"[211]aettigungskonz.: 5.0e-5":ze=4:gosub6630:nk=2
  234. 2240 ml=q1%^q1%*q2%^q2%*ml^(q1%+q2%):el=el*(q1%+q2%):ml=ml/1000:el=el+3:gosub6760
  235. 2250 text6,2,"[204]oeslichkeitspr.:"z$
  236. 2260 gosub7970
  237. 2270 ifa=0then270
  238. 2280 goto2190
  239. 2290 :
  240. 2300 rem * loeslichkeit *
  241. 2310 :
  242. 2320 dz=4:print"[147]"
  243. 2330 text0,2,"[204][207][197][211][204][201][195][200][203][197][201][212][211][208][210][207][196][213][203][212][160][201][206][160][204][207][197][211][204][201][195][200][203][197][201][212][146]"
  244. 2340 gosub2570:nk=4
  245. 2350 ml=(ml/(q1%^q1%*q2%^q2%))^(1/(q1%+q2%)):el=el/(q1%+q2%):sw=el:sq=ml
  246. 2360 gosub6760:text6,2,"[211]aettigungskonz.:"z$" mol/l"
  247. 2370 ml=sq*e/1000:el=sw+3:gosub6760:text8,3,"[205]assenkonzentr.:"z$" g/l"
  248. 2380 gosub7970
  249. 2390 ifa=0then270
  250. 2400 goto2320
  251. 2410 :
  252. 2420 rem * gleichioniger zusatz *
  253. 2430 :
  254. 2440 dz=5:print"[147]"
  255. 2450 text0,10,"[199][204][197][201][195][200][201][207][206][201][199][197][210][160][218][213][211][193][212][218][146]"
  256. 2460 gosub2570:sw=el:sq=ml
  257. 2470 er=e:swaparer$,ee$:dupearct,c
  258. 2480 text6,3,"[214]orgelegtes [201]on: "er$(1):ze=6:gosub6970
  259. 2490 ifee$(1)=er$(1)thenc=q1%:goto2510
  260. 2500 c=q2%
  261. 2510 text8,5,"[203]onzentration: 3.0e-3":ze=8:gosub6630:nk=4
  262. 2520 ml=sq/ml^c:el=sw-el*c:gosub6760:text10,4,"[198]ehlende [203]onz.:"z$" mol/l"
  263. 2530 gosub7970
  264. 2540 ifa=0then270
  265. 2550 goto2440
  266. 2560 :
  267. 2570 text2,1,"[198]ormel des [211]alzes:"
  268. 2580 ze=2:sp=20:l=18:gosub6960:loeprfo$,q1%,q2%
  269. 2590 text4,2,"[204]oeslichkeitspr.: 5.0e-5":ze=4:gosub6630
  270. 2600 return
  271. 2610 :
  272. 2620 rem * massanalyse titration *
  273. 2630 :
  274. 2640 dz=5:pu=0:a=0:print"[147]"
  275. 2650 text0,8,"[205][193][211][211][193][206][193][204][217][211][197]: [212][201][212][210][193][212][201][207][206][197][206][146]"
  276. 2660 gosub3090
  277. 2670 ifa=1thenz=vh*ch*zh*th*e*fa/(zg*w*1000):gosub7280:text4,8,z$:goto2760
  278. 2680 ifa=5thenz=mv*w*zg*1000/(vh*ch*zh*e*fa):gosub7280:text8,34,z$:goto2760
  279. 2690 nk=3
  280. 2700 ifa=6thenz=vh*ch*zh*th*e*fa/(zg*vg):gosub7280:c$=z$:z=z/e:gosub7280
  281. 2710 ifa=6then:text4,5,"c="c$" g/l="z$" mol/l"
  282. 2720 ifa=4thenz=mv*w*zg*1000/(th*vh*zh*e*fa):gosub7280:text8,19,z$:goto2760
  283. 2730 nk=2
  284. 2740 ifa=2thenz=vh*ch*zh*th*e*fa/(zg*10*mv):gosub7280:text4,21,z$:goto2760
  285. 2750 ifa=3thenz=mv*w*zg*1000/(th*ch*zh*e*fa):gosub7280:text8,7,z$
  286. 2760 gosub7970
  287. 2770 ifa=0then330
  288. 2780 goto2640
  289. 2790 :
  290. 2800 rem * massanalyse ruecktitration *
  291. 2810 :
  292. 2820 dz=7:pu=0:a=0:print"[147]"
  293. 2830 text0,5,"[205][193][211][211][193][206][193][204][217][211][197]: [210][213][197][195][203][212][201][212][210][193][212][201][207][206][197][206][146]"
  294. 2840 text12,1,"[196]aten zur [205]asslsg. ([214]orlage):"
  295. 2850 text14,1,b$(10)
  296. 2860 gosub3090
  297. 2870 ze=14:sp=3:l=1:gosub6830:zv=val(ip$)
  298. 2880 sp=7:l=5:gosub6830:vv=val(ip$)
  299. 2890 sp=19:gosub6830:cv=val(ip$)
  300. 2900 sp=34:l=6:gosub6830:tv=val(ip$)
  301. 2910 ifa=1thenz=(vv*cv*tv-vh*ch*zh*th/zv)*e*fa*zv/(zg*w*1000):gosub7280
  302. 2920 ifa=1then:text4,8,z$:goto3050
  303. 2930 ifa=5thenz=(vv*cv*tv-1000*mv*w*zg/(zv*e*fa))*zv/(vh*ch*zh):gosub7280
  304. 2940 ifa=5then:text8,34,z$:goto3050
  305. 2950 nk=3
  306. 2960 ifa=6thenz=(vv*cv*tv-vh*ch*zh*th/zv)*e*fa*zv/(zg*vg):gosub7280:c$=z$
  307. 2970 ifa=6thenz=z/e:gosub7280:text4,5,"[195]="c$" g/l="z$" mol/l":goto3050
  308. 2980 ifa=4thenz=(vv*cv*tv-1000*mv*w*zg/(zv*e*fa))*zv/(vh*th*zh):gosub7280
  309. 2990 ifa=4then:text8,19,z$:goto3050
  310. 3000 nk=2
  311. 3010 ifa=2thenz=(vv*cv*tv-vh*ch*zh*th/zv)*e*fa*zv/(zg*mv*10):gosub7280
  312. 3020 ifa=2then:text4,21,z$:goto3050
  313. 3030 ifa=3thenz=(vv*cv*tv-1000*mv*w*zg/(zv*e*fa))*zv/(th*ch*zh):gosub7280
  314. 3040 ifa=3then:text8,7,z$
  315. 3050 gosub7970
  316. 3060 ifa=0then330
  317. 3070 goto2820
  318. 3080 :
  319. 3090 text2,1,"[196]aten zur ges. [214]erb.:"
  320. 3100 text4,1,"z=1  m=1       g  w=100   %"
  321. 3110 text6,1,"[196]aten zur [205]asslsg.:"
  322. 3120 text8,1,b$(10)
  323. 3130 text10,1,"[193]liquotierungsfaktor: 1"
  324. 3140 er=0:ze=2:sp=23:l=16:gosub6960
  325. 3150 nk=4
  326. 3160 ze=4:sp=3:l=1:gosub6830:zg=val(ip$)
  327. 3170 x=1:sp=8:l=7:gosub6840:mv=val(ip$)
  328. 3180 x=2:sp=21:l=5:gosub6840:w=val(ip$)/100
  329. 3190 ze=8:sp=3:l=1:gosub6830:zh=val(ip$)
  330. 3200 x=3:sp=7:l=5:gosub6840:vh=val(ip$)
  331. 3210 x=4:sp=19:gosub6840:ch=val(ip$)
  332. 3220 x=5:sp=34:l=6:gosub6840:th=val(ip$)
  333. 3230 ze=10:sp=23:l=2:gosub6830:fa=val(ip$)
  334. 3240 ifa=0thena=6:text4,30,"[214]=10    ml":ze=4:sp=32:l=5:gosub6830:vg=val(ip$)
  335. 3250 return
  336. 3260 :
  337. 3270 rem * loesungen herstellen *
  338. 3280 :
  339. 3290 dz=4:pu=0:a=0:print"[147]"
  340. 3300 text0,9,"[204][207][197][211][213][206][199][197][206]: [200][197][210][211][212][197][204][204][197][206][146]"
  341. 3310 text2,1,"[199]eloeste [211]ubstanz:"
  342. 3320 text4,9,b$(12)
  343. 3330 text6,7,"[214]olumen: 10     ml"
  344. 3340 text8,1,"[203]onzentration: 0.5    mol/l"
  345. 3350 er=0:ze=2:sp=20:l=19:gosub6960
  346. 3360 nk=4:l=7:x=1:ze=4:sp=16:gosub6840:mv=val(ip$):l=5:sp=33:gosub6830:w=val(ip$)/100
  347. 3370 sp=16:ze=6:x=2:gosub6840:vv=val(ip$)
  348. 3380 ze=8:x=3:gosub6840:cv=val(ip$)
  349. 3390 ifa=0thengosub7920:goto3350
  350. 3400 ifa=1thenz=e*cv*vv/1000/w:gosub7280:text4,16,z$:goto3440
  351. 3410 ifa=3thenz=mv*w*1000/(e*vv):gosub7280:text8,16,z$:goto3440
  352. 3420 nk=1
  353. 3430 ifa=2thenz=mv*w*1000/(e*cv):gosub7280:text6,16,z$
  354. 3440 gosub7970
  355. 3450 ifa=0then390
  356. 3460 goto3290
  357. 3470 :
  358. 3480 rem * loesungen einengen/verd. *
  359. 3490 :
  360. 3500 dz=5:er=1:nk=4:pu=0:print"[147]"
  361. 3510 text0,3,"[204][207][197][211][213][206][199][197][206] [197][201][206][197][206][199][197][206] [207][196][197][210] [214][197][210][196][213][197][206][206][197][206][146]"
  362. 3520 text2,1,"[196]aten der gegebenen [204]oesung:"
  363. 3530 text4,1,b$(12):text8,1,b$(12)
  364. 3540 text6,1,"[196]aten der vorliegenden [204]oesung:"
  365. 3550 text14,1,"[197]inengen: [199]ew% unten groesser als oben."
  366. 3560 text16,0,"[214]erduennen: [199]ew% unten kleiner als oben."
  367. 3570 ze=4:sp=8:l=7:gosub6830:c(1)=val(ip$)
  368. 3580 sp=25:l=5:gosub6830:w(1)=val(ip$)
  369. 3590 ze=8:sp=8:l=7:gosub6830:mv=val(ip$)
  370. 3600 sp=25:l=5:gosub6830:zv=val(ip$):f=zv-w(1):iff<0then3630
  371. 3610 z=c(1)-((c(1)*(zv-w(1)))/zv):gosub7280:text8,8,z$
  372. 3620 z=c(1)-z:gosub7280:text10,1,"[193]bzudampfende [205]enge: "z$" g":goto3650
  373. 3630 z=mv*zv/w(1):gosub7280:text4,8,z$
  374. 3640 z=mv-z:gosub7280:text10,1,"[215]asserzugabe: "z$" g"
  375. 3650 gosub7970
  376. 3660 ifa=0then390
  377. 3670 goto3500
  378. 3680 :
  379. 3690 rem * loesungen mischen *
  380. 3700 :
  381. 3710 ue=0:dz=5:nk=4:mv=0:print"[147]"
  382. 3720 pu=1:text0,10,"[204][207][197][211][213][206][199][197][206] [205][201][211][195][200][197][206][146]"
  383. 3730 text2,1,"[196]aten der [197]inzelloesungen:"
  384. 3740 text4,1,b$(12):text6,1,b$(12)
  385. 3750 text8,1,"[196]aten der [205]ischung:"
  386. 3760 text10,1,b$(12)
  387. 3770 ifue=4then:text4,7,mv:gosub7280:text4,25,z$
  388. 3780 a=0:pu=0:er=0:x=1:ze=4:sp=8:l=7:gosub6840:c(x)=val(ip$)
  389. 3790 x=2:sp=25:l=5:gosub6840:w(1)=val(ip$)
  390. 3800 x=3:ze=6:sp=8:l=7:ifc(1)=0then:textze,sp,"?":goto3820
  391. 3810 gosub6840:c(2)=val(ip$):mv=c(1)+c(2)
  392. 3820 sp=25:l=5:gosub6840:w(2)=val(ip$):ifw(2)=w(1)then3820
  393. 3830 ifmv<>0then:text10,7,mv
  394. 3840 ze=10:sp=8:l=7:gosub6830:mv=val(ip$):ifmv=0then3840
  395. 3850 x=4:sp=25:l=5:gosub6840:zv=val(ip$)
  396. 3860 ifa=0then3780
  397. 3870 ifa=1thenz=mv*(zv-w(2))/(w(1)-w(2)):gosub7280:text4,8,z$
  398. 3880 ifa=1thenz=mv-z:gosub7280:text6,8,z$:goto3930
  399. 3890 nk=2
  400. 3900 ifa=2thenz=((mv*zv)-(c(2)*w(2)))/c(1):gosub7280:text4,25,z$:goto3930
  401. 3910 ifa=3thenz=((mv*zv)-(c(1)*w(1)))/c(2):gosub7280:text6,25,z$:goto3930
  402. 3920 ifa=4thenz=((c(1)*w(1))+(c(2)*w(2)))/mv:gosub7280:text10,25,z$
  403. 3930 ue=a:gosub7970
  404. 3940 ifa=0then390
  405. 3950 goto3720
  406. 3960 :
  407. 3970 rem * dichte *
  408. 3980 :
  409. 3990 dz=3:pu=0:print"[147]"
  410. 4000 text0,16,"[196][201][195][200][212][197][146]"
  411. 4010 text2,3,b$(12)
  412. 4020 text4,1,"[214]olumen: 1       ml"
  413. 4030 text6,2,"[196]ichte: 1       g/ml"
  414. 4040 a=0:er=0:nk=4:x=1:ze=2:sp=10:l=7:gosub6840:mv=val(ip$)
  415. 4050 x=2:sp=27:l=5:gosub6840:w=val(ip$)/100
  416. 4060 x=3:ze=4:sp=10:l=7:gosub6840:vh=val(ip$)
  417. 4070 x=4:ze=6:sp=10:gosub6840:zv=val(ip$)
  418. 4080 ifa=0thengosub7920:goto4040
  419. 4090 ifa=1thenz=zv*vh/w:gosub7280:text2,10,z$:goto4140
  420. 4100 ifa=3thenz=mv*w/zv:gosub7280:text4,10,z$:goto4140
  421. 4110 ifa=4thenz=mv*w/vh:gosub7280:text6,10,z$
  422. 4120 nk=2
  423. 4130 ifa=2thenz=100*zv*vh/mv:gosub7280:text2,27,z$:goto4140
  424. 4140 gosub7970
  425. 4150 ifa=0then390
  426. 4160 goto3990
  427. 4170 :
  428. 4180 rem * ph-wert-berechnung *
  429. 4190 :
  430. 4200 a=0:dz=2:pu=1:print"[147]"
  431. 4210 text0,11,"p[200]-[215][197][210][212]-[194][197][210][197][195][200][206][213][206][199]"
  432. 4220 text2,7,"p[200]-[215]ert: ?":text4,1,"[203]onzentration: ?"
  433. 4230 l=4:er=0:x=1:ze=2:sp=16:gosub6840:mv=val(ip$):ifmv>14then4230
  434. 4240 ze=4:x=2:l=8
  435. 4250 eingabeze,sp,l,"1234567890.e-?",ip$,"[133]",sv%:ifsv%=1then70
  436. 4255 ifleft$(ip$,1)="?"ander=1then4250
  437. 4260 ifleft$(ip$,1)="?"thena=x
  438. 4270 cv=val(ip$):gosub6640:ifel<-14then4250
  439. 4280 nk=2:ifa=0then4230
  440. 4290 ifa=1thenz=-log(cv)/log(10):gosub7280:text2,16,z$:goto4320
  441. 4300 ifa=2thenip$=str$(10^-mv):ip$=right$(ip$,len(ip$)-1):cv=val(ip$):gosub6640
  442. 4310 ifa=2thengosub6760:text4,15,z$
  443. 4320 gosub7970
  444. 4330 ifa=0then390
  445. 4340 goto4200
  446. 4350 :
  447. 4360 rem * interpolieren *
  448. 4370 :
  449. 4380 l=8:nk=4:a=0:dz=4:pu=1:print"[147]"
  450. 4390 text0,13,"[201][206][212][197][210][208][207][204][201][197][210][197][206][146]"
  451. 4400 text2,1,"[199]esuchter [215]ert:"
  452. 4410 text4,1,"[213]ntere [199]renzen:"
  453. 4420 text6,2,"[207]bere [199]renzen:"
  454. 4430 ze=2:sp=31:gosub6830:gw=val(ip$)
  455. 4440 ze=4:sp=21:gosub6830:vv=val(ip$):sp=31:gosub6830:zv=val(ip$)
  456. 4450 ze=6:sp=21:gosub6830:vh=val(ip$):sp=31:gosub6830:zh=val(ip$)
  457. 4460 f=zh-zv:g=vh-vv:zh=gw-zv:zv=zh*g/f:z=vv+zv:gosub7280
  458. 4470 text8,1,"[199]esuchter [215]ert ist: "z$
  459. 4480 gosub7970
  460. 4490 ifa=0then390
  461. 4500 goto4380
  462. 4510 :
  463. 4520 rem * ausbeuteberechnungen *
  464. 4530 :
  465. 4540 pu=0:print"[147]"
  466. 4550 text0,10,"[193][213][211][194][197][213][212][197][194][197][210][197][195][200][206][213][206][199][197][206][146]"
  467. 4560 text2,1,"[210]eaktionsgleichung:":ze=4:sp=2:sz=1:y=10:f=100:er=0:sm=0:l=34:g=1
  468. 4570 text8,24,"[205]asse     [193]nteil"
  469. 4580 d(sz)=sp:textze,sp,"1":eingabeze,sp,2,"1234567890",ip$,"[133]",sv%
  470. 4590 ifsv%=1andsz=1andze=4then70
  471. 4595 ifsv%=1andg=szthen4580
  472. 4600 ifsv%=1andze=4theng=sz:sp=sp-1:textze,sp," [172]":ze=6:sp=2:l=34:goto4580
  473. 4610 ifsv%=1andze=6thensp=sp-1:textze,sp,"  ":sz=sz-1:goto4860
  474. 4620 zt(sz)=val(ip$):ifzt(sz)>9thend(sz)=d(sz)-1
  475. 4630 sp=sp+2
  476. 4640 :
  477. 4650 fo$="[200][179][207]":gosub6960
  478. 4660 ff$(sz)=fo$
  479. 4670 z(sz)=e:sp=sp+len(fo$)
  480. 4680 :
  481. 4690 ifsm>6then4800
  482. 4700 wt(sz)=y:texty,1,ff$(sz):texty,24,"1"
  483. 4710 eingabey,24,7,"1234567890.?",ip$,"[133]",sv%
  484. 4720 ifsv%=1thenct(sz)=-2:clearzy:goto4800
  485. 4730 ct(sz)=val(ip$)
  486. 4740 ifleft$(ip$,1)="?"thenct(sz)=-1:er=1
  487. 4750 texty,34,"100":eingabey,34,5,"1234567890.?",ip$,"[133]",sv%
  488. 4755 ifsv%=1thenct(sz)=-2:clearzy:goto4800
  489. 4760 w(sz)=val(ip$)/100
  490. 4770 ifer=1andleft$(ip$,1)="?"then4750
  491. 4780 ifleft$(ip$,1)="?"thenw(sz)=-1
  492. 4790 y=y+2:sm=sm+1
  493. 4800 ifsz=9then4860
  494. 4810 l=35-sp:er=0:sz=sz+1
  495. 4820 ifl<3andze=4thensv%=1:sp=sp+1:goto4600
  496. 4830 ifl<3andze=6thensz=sz-1:goto4860
  497. 4840 textze,sp,"+":sp=sp+1:goto4580
  498. 4850 :
  499. 4860 forx=1tog-1:text4,d(x),zt(x):nextx:forx=gtosz:text6,d(x),zt(x):nextx
  500. 4870 x=1
  501. 4880 ze=4:ifx>=gthenze=6
  502. 4890 a=zt(x)
  503. 4900 textze,d(x),"  ":textze,d(x),a
  504. 4910 ifx<>1andx<>gthenifa>9then:textze,d(x),"+"
  505. 4920 getkp$:ifkp$=""then4920
  506. 4930 ifkp$=""thenifa<99thena=a+1
  507. 4940 ifkp$=""thenifa=10thend(x)=d(x)-1
  508. 4950 ifkp$=""then4900
  509. 4960 ifkp$="[145]"thenifa>1thena=a-1
  510. 4970 ifkp$="[145]"thenifa=9thend(x)=d(x)+1
  511. 4980 ifkp$="[145]"then4900
  512. 4990 ifkp$=""thenifx<szthenx=x+1:zt(x-1)=a:goto4880
  513. 5000 ifkp$="[157]"thenifx>1thenx=x-1:zt(x+1)=a:goto4880
  514. 5010 ifkp$="[133]"thenzt(x)=a:goto5050
  515. 5020 zt(x)=a:goto4880
  516. 5030 goto4880
  517. 5040 :
  518. 5050 ifsm=0then:clearz8:goto5330
  519. 5060 ze=4
  520. 5070 forx=1tog-1:ad=49312+d(x)
  521. 5080 ifzt(x)=1then:fory=xtog-1:d(y)=d(y)-2:nexty:transad+2,ad+40,ad
  522. 5090 z(x)=z(x)*zt(x):nextx
  523. 5100 ze=6
  524. 5110 forx=gtosz:ad=49392+d(x)
  525. 5120 ifzt(x)=1then:fory=xtosz:d(y)=d(y)-2:nexty:transad+2,ad+40,ad
  526. 5130 z(x)=z(x)*zt(x):nextx
  527. 5140 forx=1tog-1
  528. 5150 ifct(x)<0orw(x)=-1then5170
  529. 5160 mv=ct(x)*w(x)/z(x):ifmv<fthenf=mv
  530. 5170 nextx
  531. 5180 iff<>100then5240
  532. 5190 forx=gtosz
  533. 5200 ifct(x)<0then5220
  534. 5210 mv=ct(x)/(w(x)*z(x)):ifmv<fthenf=mv
  535. 5220 nextx
  536. 5230 iff=100then4540
  537. 5240 nk=4:z=f:gosub7280:text8,1,"[205]olmenge: "z$" mol"
  538. 5250 forx=1tosz
  539. 5260 nk=4:ifct(x)=-1andx>=gthenz=f*z(x)*w(x):gosub7280:textwt(x),24,z$:goto5310
  540. 5270 ifct(x)=-1thenz=f*z(x)/w(x):gosub7280:textwt(x),24,z$:goto5310
  541. 5280 nk=2
  542. 5290 ifw(x)=-1andx>=gthenz=100*ct(x)/(f*z(x)):gosub7280:textwt(x),34,z$:goto5310
  543. 5300 ifw(x)=-1thenz=100*f*z(x)/ct(x):gosub7280:textwt(x),34,z$
  544. 5310 nextx
  545. 5320 ifsm>4thengosub7500
  546. 5330 dz=sm+4:gosub7970
  547. 5340 ifa=0then70
  548. 5350 goto4540
  549. 5360 :
  550. 5370 rem * gasgesetze *
  551. 5380 :
  552. 5390 dz=5:pu=0:print"[147]"
  553. 5400 text0,15,"[199][193][211][199][197][211][197][212][218][197][146]"
  554. 5410 text2,1,"[193]usgangsbedingungen:"
  555. 5420 text4,1,b$(11)
  556. 5430 text6,1,"[213]mrechnungsbedingungen:"
  557. 5440 text8,1,b$(11)
  558. 5450 text10,1,"[205]olmenge: 1      mol"
  559. 5460 er=0:x=1:ze=4:l=7:a=0
  560. 5470 sp=3:gosub6830:p0=val(ip$)
  561. 5480 sp=18:gosub6830:v0=val(ip$)
  562. 5490 sp=31:l=5:gosub6830:t0=val(ip$)
  563. 5500 ze=8:sp=3:l=7:gosub6840:p1=val(ip$)
  564. 5510 sp=18:x=2:gosub6840:v1=val(ip$)
  565. 5520 sp=31:l=5:x=3:gosub6840:t1=val(ip$)
  566. 5530 ze=10:sp=11:l=6:x=4:gosub6840:n=val(ip$)
  567. 5540 ifa=0then5460
  568. 5550 r=p0*v0/t0:nk=3
  569. 5560 ifa=1thenz=n*r*t1/v1:gosub7280:text8,3,z$:goto5620
  570. 5570 ifa=2thenz=n*r*t1/p1:gosub7280:text8,18,z$:goto5620
  571. 5580 nk=2
  572. 5590 ifa=3thenz=p1*v1/(n*r):gosub7280:text8,31,z$:goto5620
  573. 5600 nk=3
  574. 5610 ifa=4thenz=p1*v1/(r*t1):gosub7280:text10,11,z$
  575. 5620 gosub7970
  576. 5630 ifa=0then70
  577. 5640 goto5390
  578. 5650 :
  579. 5660 rem * statistik *
  580. 5670 :
  581. 5680 n=30:pu=1:dz=3:sa=1:sm=3:sw=0:sq=0:sp=13:ze=8:ue=0:er=1:print"[147]"
  582. 5690 text0,15,"[211][212][193][212][201][211][212][201][203][146]"
  583. 5700 text2,1,"[205]esswertnummer:":text4,7,"[205]esswert:   1"
  584. 5710 forx=1to30
  585. 5720 text2,18,x
  586. 5730 eingabe4,19,6,"1234567890.^",ip$,"[133]",sv%
  587. 5735 ifsv%=1andx=1then70
  588. 5740 ifsv%=1thenn=x-1:goto5790
  589. 5745 ifleft$(ip$,1)="^"andx=1then5730
  590. 5750 ifleft$(ip$,1)="^"thenx=x-1:sw=sw-dx(x):sq=sq-dx(x)^2:x=x-1:goto5780
  591. 5760 dx(x)=val(ip$):sw=sw+dx(x):sq=sq+dx(x)^2
  592. 5770 ifx=1thenz=dx(1):gosub7430
  593. 5780 nextx
  594. 5790 nk=nb:se=n:ifn<2then5680
  595. 5800 text6,1,"[201]ch sortiere [196]eine [196]aten. [196]as dauert..."
  596. 5810 forx=n-1to1step-1
  597. 5820 fory=1tox
  598. 5830 ifdx(y)<=dx(y+1)then5850
  599. 5840 arrswapdx(y),dx(y+1)
  600. 5850 nexty:nextx
  601. 5860 clearz6:gosub6180
  602. 5870 ifn<3thensm=2
  603. 5880 menu26,16,10,sm,141,1,0,sm$(0),a
  604. 5890 ifa<sm+1then:killm
  605. 5900 ifa=0then70
  606. 5910 ifa=2thengosub7550:goto5880
  607. 5920 ifa=3then5950
  608. 5930 goto5680
  609. 5940 :
  610. 5950 text6,7,"[193][213][211][210][197][201][211][211][197][210][212][197][211][212] [206][193][195][200] [206][193][204][201][205][207][214][146]":text8,1,"[193]usreisser:"
  611. 5960 ifs=0thenws=1:goto6000
  612. 5970 r=(n/(n-1))^0.5:zv=(mx-dx(sa))*r/s:zh=(dx(se)-mx)*r/s
  613. 5980 ifzv>zhthenws=zv:r=1:goto6000
  614. 5990 ws=zh:r=0
  615. 6000 ifws<tw(n-2)thenifue=0then:text8,1,"[203]ein [193]usreisser vorhanden."
  616. 6010 ifws<tw(n-2)thensm=2:goto6100
  617. 6020 ifr=1then:z=dx(sa):gosub7300:textze,sp,z$:sw=sw-dx(sa):sq=sq-dx(sa)^2
  618. 6030 ifr=1then:sa=sa+1:goto6050
  619. 6040 z=dx(se):gosub7300:textze,sp,z$:sw=sw-dx(se):sq=sq-dx(se)^2:se=se-1
  620. 6050 n=n-1:ue=1
  621. 6060 ifsp+el>34thensp=1:ze=ze+2:goto6080
  622. 6070 sp=sp+el
  623. 6080 gosub6180:goto5960
  624. 6090 :
  625. 6100 ifsp=0thenze=ze-2
  626. 6110 sp=8:ze=ze+2:textze,1,"[215]erte:"
  627. 6120 forx=satose
  628. 6130 z=dx(x):gosub7300:textze,sp,z$
  629. 6140 ifsp+el>34thensp=1:ze=ze+2:goto6160
  630. 6150 sp=sp+el
  631. 6160 nextx:dz=ze/2:goto5880
  632. 6170 :
  633. 6180 nk=nk+1:mk=nk:ifnk>4thennk=4:er=0:mk=nk
  634. 6190 mx=sw/n:s=(1/(n-1)*(sq-1/n*sw^2))^0.5
  635. 6200 clearz2,4
  636. 6210 z=mx:gosub7300
  637. 6220 text2,1,"[205]esswerte: "n"  [205]ittelwert: "z$
  638. 6230 z=s:gosub7300
  639. 6240 text4,3,"[211]tandardabweichung:   "z$
  640. 6250 ifer=1thennk=nk-1:mk=nk
  641. 6260 return
  642. 6270 :
  643. 6280 rem * lineare regression *
  644. 6290 :
  645. 6300 n=30:dz=3:nk=4:sa=0:mx=0:sw=0:sq=0:sm=0:print"[147]"
  646. 6310 text0,11,"[204][201][206][197][193][210][197][160][210][197][199][210][197][211][211][201][207][206][146]"
  647. 6320 text2,1,"[193]llgemeine [199]eradengleichung: y=mx+b"
  648. 6330 text4,20,"x-[215]ert    y-[215]ert"
  649. 6340 text6,3,"[215]ertepaar    :   1"
  650. 6350 forx=1to30
  651. 6360 text6,12,x
  652. 6370 eingabe6,20,9,"-1234567890.^",ip$,"[133]",sv%
  653. 6375 ifsv%=1andx=1then70
  654. 6380 ifsv%=1thenn=x-1:goto6450
  655. 6385 ifleft$(ip$,1)="^"andx=1then6370
  656. 6390 ifleft$(ip$,1)="^"thenx=x-1:sw=sw-dy(x):mx=mx-dx(x):sq=sq-(dx(x)*dy(x))
  657. 6400 ifleft$(ip$,1)="^"thensa=sa-dx(x)^2:sm=sm-dy(x)^2:x=x-1:goto6440
  658. 6410 dx(x)=val(ip$)
  659. 6420 eingabe6,30,9,"-1234567890.",ip$:dy(x)=val(ip$)
  660. 6430 sm=sm+dy(x)^2:sq=sq+(dx(x)*dy(x)):sw=sw+dy(x):mx=mx+dx(x):sa=sa+dx(x)^2
  661. 6440 nextx
  662. 6450 ifn<2then6300
  663. 6460 clearz4,6
  664. 6470 z=((n*sq)-(mx*sw))/((n*sa)-mx^2):z$=str$(fnr(z)):z=fnr(z)
  665. 6480 f=(sw-z*mx)/n:w$=str$(fnr(f)):f=fnr(f)
  666. 6490 ifabs(z)<1thenz$=left$(z$,1)+"0"+right$(z$,len(z$)-1)
  667. 6500 ifabs(f)<1thenw$=left$(w$,1)+"0"+right$(w$,len(w$)-1)
  668. 6510 iff<0thenz$="y="+z$+"x"+w$:goto6540
  669. 6520 iff=0thenz$="y="+z$+"x":goto6540
  670. 6530 z$="y="+z$+"x+"+w$
  671. 6540 text4,1,"[199]eradengleichung: "z$
  672. 6550 r=(n*sq-mx*sw)/((n*sa-mx^2)*(n*sm-sw^2))^0.5
  673. 6560 text6,1,"[203]orrelationskoeffizient: "r
  674. 6570 gosub7970
  675. 6580 ifa=0then70
  676. 6590 goto6300
  677. 6600 :
  678. 6610 rem * eingaben mit e *
  679. 6620 :
  680. 6630 eingabeze,sp,l,"1234567890.e-",ip$,"[133]",sv%:cv=val(ip$):ifsv%=1then70
  681. 6640 forx=1tolen(ip$)
  682. 6650 ifmid$(ip$,x,1)="e"then6720
  683. 6660 nextx
  684. 6670 forx=1tolen(ip$)
  685. 6680 ifmid$(ip$,x,1)<>"."andmid$(ip$,x,1)<>"0"then6700
  686. 6690 nextx
  687. 6700 x=x-2:ifleft$(ip$,1)<>"0"thenx=x+1
  688. 6710 ml=cv*10^x:el=-x:return
  689. 6720 ml=val(left$(ip$,x-1)):el=val(right$(ip$,len(ip$)-x))
  690. 6730 ifml=0thenml=1
  691. 6740 return
  692. 6750 :
  693. 6760 ue=int(el)+1:el=el-ue:z=ml*10^el:cv=z
  694. 6770 ip$=str$(z):ip$=right$(ip$,len(ip$)-1):gosub6640
  695. 6780 z$=str$(fnr(ml))+"e"+str$(el+ue)
  696. 6790 return
  697. 6800 :
  698. 6810 rem * eingaben *
  699. 6820 :
  700. 6830 eingabeze,sp,l,"1234567890.",ip$,"[133]",sv%:ifsv%=1then70
  701. 6835 return
  702. 6840 eingabeze,sp,l,"1234567890.?",ip$,"[133]",sv%:ifsv%=1then70
  703. 6850 ifleft$(ip$,1)="?"ander=1then6840
  704. 6860 ifleft$(ip$,1)="?"thena=x:er=1
  705. 6870 return
  706. 6930 :
  707. 6940 rem * formelanalyse *
  708. 6950 :
  709. 6960 textze,sp,fo$
  710. 6970 eingabeze,sp,l,"1234567890[171][179][177][178][163][183][184][162][185][175]()[]*",fo$,"[133]",sv%
  711. 6980 ifsv%=1then70
  712. 6990 falfo$
  713. 7000 ad=40448:b=peek(ad):ad=ad+1
  714. 7010 ifb>9orb=255then7160
  715. 7020 e=0:nk=5
  716. 7030 forx=1tob
  717. 7040 ee$(x)=chr$(peek(ad))
  718. 7050 ee$(x)=ee$(x)+chr$(peek(ad+1))
  719. 7060 c(x)=peek(ad+2)
  720. 7070 ad=ad+3
  721. 7080 nextx
  722. 7090 forx=1tob
  723. 7100 searchee$(x),es$(1),es$(75),ez%(x):ifez%(x)=0then7160
  724. 7110 e=e+am(ez%(x))*c(x)
  725. 7120 ifke(ez%(x))<nkthennk=ke(ez%(x))
  726. 7130 nextx
  727. 7140 e=fnr(e):return
  728. 7150 :
  729. 7160 gosub7920:goto6970
  730. 7170 :
  731. 7180 rem * programmende *
  732. 7190 :
  733. 7200 print"[147]"
  734. 7210 text12,8,"[194]ist [196]u sicher (j/n) ?"
  735. 7220 text14,18,"n":eingabe14,18,1,"jn",ip$
  736. 7230 ifip$="n"then70
  737. 7240 sys64738
  738. 7250 :
  739. 7260 rem * print using *
  740. 7270 :
  741. 7280 mk=nk:vk=fnp(z):ifvk=3thennk=nk-1
  742. 7290 ifvk=4thennk=nk-2
  743. 7300 z$=str$(fnr(z)):z$=right$(z$,len(z$)-1):vk=fnp(z):kg=len(z$)-vk-1
  744. 7310 ifkg<1andnk>0thenz$=z$+"."+b$(nk):goto7360
  745. 7320 ifkg<0thenkg=0
  746. 7330 ifkg>nkthenkg=nk
  747. 7340 z$=z$+b$(nk-kg)
  748. 7350 ifvk=0andleft$(z$,1)="."thenz$="0"+z$:vk=vk+1
  749. 7360 ifpu=0thenz$=""+z$+"[146]":goto7390
  750. 7370 ifpu=1then7390
  751. 7380 z$=b$(9-vk)+z$
  752. 7390 nk=mk:return
  753. 7400 :
  754. 7410 rem * nk-bestimmung *
  755. 7420 :
  756. 7430 nb=len(ip$)-fnp(z)-1:el=len(ip$)+2:ifz<1thennb=nb-1
  757. 7440 ifnb>4thennb=4
  758. 7450 ifnb<0thennb=0
  759. 7460 return
  760. 7470 :
  761. 7480 rem * warte *
  762. 7490 :
  763. 7500 poke198,0:wait198,1:poke198,0
  764. 7510 return
  765. 7520 :
  766. 7530 rem * drucken *
  767. 7540 :
  768. 7550 open4,4
  769. 7560 poke768,185
  770. 7570 print#4:close4
  771. 7580 poke768,139
  772. 7590 ifst<>-128then7650
  773. 7600 rom:clearz12,13,14,15:wline12,2,36,1:wline15,2,36,1
  774. 7610 text13,8,"[194]itte [196]rucker einschalten":text14,10,"^ = zurueck ins [205]enue"
  775. 7620 getkp$:ifkp$=""then7620
  776. 7630 ifkp$="^"then:killm:return
  777. 7640 killm:goto7550
  778. 7650 kp$="":rom:clearz12,13,14,15:wline12,1,37,1:wline15,1,37,1
  779. 7660 text13,8,"[211]pace = [196]rucker bereit":text14,12,"^ = zurueck ins [205]enue"
  780. 7670 getkp$:ifkp$=""then7670
  781. 7680 ifkp$="^"then:killm:return
  782. 7690 killm:br=49232
  783. 7700 forx=1todz
  784. 7710 bscchrcbr,40,1,dd$
  785. 7800 zsdruck1,dd$
  786. 7810 br=br+80:nextx
  787. 7820 return
  788. 7830 :
  789. 7840 rem * zeilen loeschen *
  790. 7850 :
  791. 7860 la=2
  792. 7870 forx=lato23:clearzx:nextx
  793. 7880 return
  794. 7890 :
  795. 7900 rem * fehlerton *
  796. 7910 :
  797. 7920 beep1,8000,200,33
  798. 7930 return
  799. 7940 :
  800. 7950 rem * menue: wegweiser *
  801. 7960 :
  802. 7970 menu26,18,10,2,141,1,0,wm$(0),a
  803. 7980 ifa<3then:killm
  804. 7990 ifa=2thengosub7550:goto7970
  805. 8000 return
  806. 8010 :
  807. 8020 rem * einlesen der chemiedaten *
  808. 8030 rem *     und funktionen       *
  809. 8040 :
  810. 8050 dimes$(75),am(75),c(9),w(9),z(9),b$(12),ee$(9),ct(9),wt(9),zt(9)
  811. 8060 dimez%(9),ke(75),hm$(10),wm$(5),te$(2),lp$(3),gp$(2),ma$(2),vb$(8),ef$(4)
  812. 8070 dimve$(8),fv(8),gg$(6),l$(6),dx(30),dy(30),sm$(3),tw(28),ff$(9)
  813. 8080 dimmm$(3),er$(9)
  814. 8090 :
  815. 8100 fory=1to75
  816. 8110 reades$(y),am(y),ke(y)
  817. 8120 nexty
  818. 8130 fory=1to28:readtw(y):nexty
  819. 8140 :
  820. 8150 e=0:b=0:z=0:a=0:nk=1:ze=0:sp=0:l=0:pu=0:dz=0:er=0:x=0:y=0:mv=0:ps=0:sv%=0
  821. 8160 es=0:la=0:ee=0:g=0:f=0:ml=0:el=0:q1%=0:q2%=0:cv=0:tv=0:vv=0:zv=0:zg=0:w=0
  822. 8170 zh=0:vh=0:ch=0:th=0:fa=0:vg=0:sm=0:p0=0:v0=0:t0=0:p1=0:v1=0:t1=0:n=0:r=0
  823. 8180 sw=0:sq=0:sa=0:se=0:mx=0:gw=0:ws=0:s=0:mk=0:vk=0:ue=0:ad=0:kg=0:av=0:i=0
  824. 8190 br=0:nb=0:up=0
  825. 8200 :
  826. 8210 deffnr(x)=int(10^nk*x+0.5)/10^nk
  827. 8220 deffnp(x)=abs((x>=1)+(x>=10)+(x>=100)+(x>=1000))
  828. 8230 :
  829. 8240 forx=1to4:b$(x)=b$(x-1)+"0":nextx
  830. 8250 forx=6to9:b$(x)=b$(x-1)+" ":nextx
  831. 8260 :
  832. 8270 b$(10)="z=1 [214]=20.0  ml  c=0.1   mol/l  t=1"
  833. 8280 b$(11)="p=1.013   bar  [214]=22.4    l  [212]=273   [203]"
  834. 8290 b$(12)="[205]asse: 1       g  [199]ew%: 100   %":fo$="[206]a[207][200]"
  835. 8295 dd$="                                        "
  836. 8300 :
  837. 8310 hm$(0)="[200]auptmenue"
  838. 8320 hm$(1)="[205]assen und [205]ole"
  839. 8330 hm$(2)="[199]ewichtsprozente"
  840. 8340 hm$(3)="[197]mpirische [198]ormel"
  841. 8350 hm$(4)="[204]oeslichkeitsprodukt"
  842. 8360 hm$(5)="[205]assanalyse"
  843. 8370 hm$(6)="[204]oesungen"
  844. 8380 hm$(7)="[193]usbeuteberechnungen"
  845. 8390 hm$(8)="[199]asgesetze"
  846. 8400 hm$(9)="[211]tatistik"
  847. 8410 hm$(10)="[204]ineare [210]egression"
  848. 8420 :
  849. 8430 wm$(0)="[213]nd [206]un ?"
  850. 8440 wm$(1)="[210]echnen"
  851. 8450 wm$(2)="[196]rucken"
  852. 8460 wm$(3)="[213]ebernahme"
  853. 8470 wm$(4)="[205]olmasse"
  854. 8480 wm$(5)="[197]lement"
  855. 8490 :
  856. 8500 ef$(0)="[213]nd [206]un ?"
  857. 8510 ef$(1)="[210]echnen"
  858. 8520 ef$(2)="[196]rucken"
  859. 8530 ef$(3)="[205]olmasse"
  860. 8540 ef$(4)="[197]lement"
  861. 8550 :
  862. 8560 te$(0)="[215]onach ?"
  863. 8570 te$(1)="[212]heorie"
  864. 8580 te$(2)="[197]ingabe"
  865. 8590 :
  866. 8600 lp$(0)="[213]mrechnungen"
  867. 8610 lp$(1)="[204]oeslichkeit in [204]oeslichkeitsprodukt"
  868. 8620 lp$(2)="[204]oeslichkeitsprodukt in [204]oeslichkeit"
  869. 8630 lp$(3)="[199]leichioniger [218]usatz"
  870. 8640 :
  871. 8650 gp$(0)="[215]oraus ?"
  872. 8660 gp$(1)="[211]ummenformel"
  873. 8670 gp$(2)="[214]erbrennungsdaten"
  874. 8680 :
  875. 8690 ma$(0)="[205]assanalyse"
  876. 8700 ma$(1)="[212]itrationen"
  877. 8710 ma$(2)="[210]uecktitrationen"
  878. 8720 :
  879. 8730 l$(0)="[204]oesungen"
  880. 8740 l$(1)="[200]erstellen"
  881. 8750 l$(2)="[197]inengen & [214]erduennen"
  882. 8760 l$(3)="[205]ischen"
  883. 8770 l$(4)="[196]ichte"
  884. 8780 l$(5)="p[200]-[215]ert-[194]erechnung"
  885. 8790 l$(6)="[201]nterpolieren"
  886. 8800 :
  887. 8810 sm$(0)="[213]nd [206]un ?"
  888. 8820 sm$(1)="[210]echnen"
  889. 8830 sm$(2)="[196]rucken"
  890. 8840 sm$(3)="[193]usreisser"
  891. 8850 :
  892. 8860 mm$(0)="[205]assen & [205]ole"
  893. 8870 mm$(1)="[205]olmasse"
  894. 8880 mm$(2)="[205]ol & [205]asse"
  895. 8890 mm$(3)="[199]ravimetrie"
  896. 8900 :
  897. 8910 vb$(1)="[195][146][207][179]":fv(1)=0.272915:ve$(1)="[195] "
  898. 8920 vb$(2)="[200][146][179][207]":fv(2)=0.111894:ve$(2)="[200] "
  899. 8930 vb$(3)="[206][146][179]":fv(3)=1:ve$(3)="[206] "
  900. 8940 vb$(4)="[207][146][179]":fv(4)=1:ve$(4)="[207] "
  901. 8950 vb$(5)="[211][146][207][179]":fv(5)=0.500468:ve$(5)="[211] "
  902. 8960 vb$(6)="[193]g[195]l[146]":fv(6)=0.247368:ve$(6)="[195]l"
  903. 8970 vb$(7)="[193]g[194]r[146]":fv(7)=0.425537:ve$(7)="[194]r"
  904. 8980 vb$(8)="[193]g[201][146]":fv(8)=0.540542:ve$(8)="[201] "
  905. 8990 :
  906. 9000 return
  907. 9010 :
  908. 9020 rem * symbole,atommassen,kennung *
  909. 9030 :
  910. 9040 data "[193]c",227.0278,4
  911. 9050 data "[193]l",26.98154,5
  912. 9060 data "[211]b",121.75,2
  913. 9070 data "[193]r",39.948,3
  914. 9080 data "[193]s",74.9216,4
  915. 9090 data "[193]t",210,0
  916. 9100 data "[194]a",137.33,2
  917. 9110 data "[194]e",9.01218,5
  918. 9120 data "[194]i",208.9804,4
  919. 9130 data "[208]b",207.2,1
  920. 9140 data "[194] ",10.811,3
  921. 9150 data "[194]r",79.904,3
  922. 9160 data "[195]d",112.41,2
  923. 9170 data "[195]s",132.9054,4
  924. 9180 data "[195]a",40.078,3
  925. 9190 data "[195]l",35.453,3
  926. 9200 data "[195]r",51.996,3
  927. 9210 data "[195]o",58.9332,4
  928. 9220 data "[198]e",55.847,3
  929. 9230 data "[198] ",18.998403,6
  930. 9240 data "[198]r",223,0
  931. 9250 data "[199]a",69.723,3
  932. 9260 data "[199]e",72.59,2
  933. 9270 data "[193]u",196.9665,4
  934. 9280 data "[200]f",178.49,2
  935. 9290 data "[200]e",4.00260,5
  936. 9300 data "[201]n",114.82,2
  937. 9310 data "[201] ",126.9045,4
  938. 9320 data "[201]r",192.22,2
  939. 9330 data "[203] ",39.0983,4
  940. 9340 data "[195] ",12.011,3
  941. 9350 data "[203]r",83.80,2
  942. 9360 data "[195]u",63.546,3
  943. 9370 data "[204]a",138.9055,4
  944. 9380 data "[204]i",6.941,3
  945. 9390 data "[205]g",24.305,3
  946. 9400 data "[205]n",54.9380,4
  947. 9410 data "[205]o",95.94,2
  948. 9420 data "[206]a",22.98977,5
  949. 9430 data "[206]e",20.179,3
  950. 9440 data "[206]i",58.69,2
  951. 9450 data "[206]b",92.9064,4
  952. 9460 data "[207]s",190.2,1
  953. 9470 data "[208]d",106.42,2
  954. 9480 data "[208] ",30.97376,5
  955. 9490 data "[208]t",195.08,2
  956. 9500 data "[208]o",209,0
  957. 9510 data "[200]g",200.59,2
  958. 9520 data "[210]a",226.0254,4
  959. 9530 data "[210]n",222,0
  960. 9540 data "[210]e",186.207,3
  961. 9550 data "[210]h",102.9055,4
  962. 9560 data "[210]b",85.4678,4
  963. 9570 data "[210]u",101.07,2
  964. 9580 data "[207] ",15.9994,4
  965. 9590 data "[211]c",44.9559,4
  966. 9600 data "[211] ",32.06,2
  967. 9610 data "[211]e",78.96,2
  968. 9620 data "[193]g",107.8682,4
  969. 9630 data "[211]i",28.0855,4
  970. 9640 data "[206] ",14.0067,4
  971. 9650 data "[211]r",87.62,2
  972. 9660 data "[212]a",180.9479,4
  973. 9670 data "[212]c",98,0
  974. 9680 data "[212]e",127.60,2
  975. 9690 data "[212]l",204.383,3
  976. 9700 data "[212]i",47.88,2
  977. 9710 data "[214] ",50.9415,4
  978. 9720 data "[200] ",1.0079,4
  979. 9730 data "[215] ",183.85,2
  980. 9740 data "[216]e",131.29,2
  981. 9750 data "[217] ",88.9059,4
  982. 9760 data "[218]n",65.38,2
  983. 9770 data "[211]n",118.69,2
  984. 9780 data "[218]r",91.224,3
  985. 9790 data 1.409,1.645,1.757,1.814,1.848,1.870,1.885,1.895,1.903,1.910,1.916
  986. 9800 data 1.920,1.923,1.926,1.928,1.931,1.933,1.935,1.936,1.937,1.938,1.939
  987. 9810 data 1.940,1.941,1.942,1.942,1.943,1.943
  988.