home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh3x
/
sh34d.d64
/
chemie-trainer
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
20KB
|
582 lines
1 REM *********************************
2 REM * VAS'88*
3 REM * CHEMISCHE GLEICHUNGEN UEBUNG *
4 REM * *
5 REM * VASCO ALEXANDER SCHMIDT *
6 REM * SIEGLINDESTR.9 *
7 REM * 1000 BERLIN 41 *
8 REM * *
9 REM *********************************
10 :
50 :
100 POKE 53281,15: POKE 53280,12
110 POKE 53272,23: POKE 646,00
120 PRINT CHR$(147);
130 :
140 GOSUB 500: REM INITIALISIERUNG
150 REM *** STEUERTEIL
160 PRINT"[147]":QT$="[205]ENUE: CHGL.U.I":GOSUB63520
170 PRINT"[145][145]----------------------------------------"
180 PRINT" F1 [146] [210]EAKTION [205]ETALL + [206]ICHTMETALL UEBEN"
190 PRINT" F3 [146] [210]EAKTION [204]AUGE + [211]AEURE UEBEN"
200 PRINT" F5 [146] [194]EIDE [210]EAKTIONSARTEN UEBEN"
210 PRINT" F7 [146] [210]EAKTIONSGLEICHUNGEN BERECHNEN LASSEN"
220 PRINT" SHIFT[146] F1-F5[146] [193]RBEITSBOEGEN ZU F1-F5"
230 PRINT" DRUCKEN LASSEN"
240 PRINT" RETURN[146] [215]ERTIGKEIT"
300 PRINT" F8 [146] [197]NDE"
310 PRINT "----------------------------------------"
320 Z1=22:S1=14:QM$="[194]ITTE WAEHLEN":GOSUB63525
321 Z1=23:S1=14:QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163]":GOSUB63525
340 GETA$:IFA$=""THEN340
350 IF A$="[140]" THEN PRINT"[147]";: END
355 IF A$=CHR$(13) THEN Z1=17:S1=7:QM$="_":GOSUB63525: PP=5: GOSUB 5000:GOTO150
360 IF ASC(A$)<133 OR ASC(A$)>140 THEN 340
370 IF A$=CHR$(133) THEN Z1=4:S1=5:QM$="_":GOSUB63525: PP=1
375 IF A$=CHR$(134) THEN Z1=7:S1=5:QM$="_":GOSUB63525: PP=2
380 IF A$=CHR$(135) THEN Z1=9:S1=5:QM$="_":GOSUB63525: PP=3
385 IF A$=CHR$(136) THEN Z1=11:S1=5:QM$="_":GOSUB63525: PP=4
390 IF ASC(A$)>136 AND ASC(A$)<141 THEN Z1=14:S1=12:QM$="_":GOSUB63525
400 :
410 ONASC(A$)-132GOSUB10000,20000,30000,40000,19000,29000,39000
415 IF PP=5 THEN GOSUB 5000
420 IF QQ=1 THEN 410
450 GOTO 150
499 END
500 REM *** INITIALISIERUNG
510 SS=2:RR=0:TT=3:PP=1:QQ=0:SK=1:D=0
515 DIMTA$(5,24,4),TA(5,24),W(2),NA$(4,2),KO(4),ST$(2),K(2),TT(TT),N$(2,50)
520 FOR I=1 TO SS: READ X: NEXT I
530 FOR I=1 TO TT
540 : READ TT(I)
550 : FOR J=1 TO TT(I)
560 : : FOR K=1 TO 4
570 : : : READ TA$(I,J,K)
580 : : NEXT K
590 : : READ TA(I,J)
600 : NEXT J
610 NEXT I
620 DEF FN F1(R)=INT(RND(1)*R)+1
999 RETURN
5000 REM --- RETURN: BEGRIFFE
5300 REM ... WERTIGKEIT
5310 PRINT"[147]":QT$="[197]RKLAERUNG [215]ERTIGKEIT": GOSUB 63520
5320 PRINT"[215]ERTIGKEIT [163][163][163][163][163][163][163][163][163][163]"
5325 PRINT"[196]IE [215]ERTIGKEIT IST EIN [200]ILFSMITTEL"
5330 PRINT"ZUR EINFACHEN [196]ARSTELLUNG VON [211]TOFF- VERBINDUNGEN."
5331 PRINT"[196]IE [215]ERTIGKEIT GIBT AN, WIEVIELE"
5332 PRINT"[215]ASSERSTOFFATOME EIN [193]TOM DES JEWEILI-"
5333 PRINT"GEN [211]TOFFES BINDEN ODER ERSETZEN KANN."
5334 PRINT"(Z.[194].: [200]2[207] - [207] 2-WERTIG [195][200]4 - [195] 4-WERTIG)"
5335 PRINT"[214]ERBINDEN SICH JE EIN [212]EILCHEN ZWEIER [211]TOFFE, SO HABEN SIE DIE GLEICHE"
5336 PRINT"[215]ERTIGKEIT."
5337 PRINT"[211]O KONNTE MAN DIE [215]ERTIGKEITEN VIELER [211]TOFFE HERLEITEN."
5338 GOSUB 14000
5339 PRINT"[147]":QT$="[197]RKLAERUNG [215]ERTIGKEIT [201][201]": GOSUB 63520
5340 PRINT"[193]US DEM [208]ERIODENSYSTEM KANN MAN DIE [215]ERTIGKEIT AUCH HERAUSLESEN."
5341 PRINT"[198]UER [199]RUPPEN [201] - [201][214] :": PRINT" [215]ERTIGKEIT = [199]RUPPENNUMMER"
5342 PRINT"[198]UER [199]RUPPEN [214] - [214][201][201]": PRINT" [215]ERTIGKEIT = 8 - [199]RUPPENNUMMER"
5343 PRINT"[196]AS GILT NUR FUER DIE [200]AUPTGRUPPEN."
5344 PRINT"[197]DELGASE HABEN DIE [215]ERTIGKEIT 0 : SIE REAGIEREN NICHT."
5499 GOSUB14000: RETURN
10000 REM --- F1: METALL + NICHTMETALL
10100 W(1)=FN F1(24): W(2)=FN F1(8)
10110 GOSUB 18000: QQ=0
10120 GOSUB 13000
10300 F$="[210]EAKTIONSPRODUKT ": G$=NA$(3,1):GOSUB 12000: GOSUB 49000: GOSUB 12200
10310 IF RR=1 THEN RR=0: GOSUB 15100: GOSUB 14000: GOSUB 13000: GOSUB 49000
10400 F$="1.[211]TOFF KURZ ":G$=NA$(1,2): GOSUB12000: GOSUB 12300
10410 F$="2.[211]TOFF KURZ ":G$=NA$(2,2): GOSUB12000: GOSUB 12300
10420 F$="3.[211]TOFF KURZ ":G$=NA$(3,2): GOSUB12000: GOSUB 49500: GOSUB 12200
10430 IF RR=1 THEN RR=0: GOSUB 15200: GOSUB 14000: GOSUB 13000: GOSUB 49500
10500 F$="1.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(1)),1)
10505 GOSUB 12000: GOSUB 12300
10510 F$="2.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(2)),1)
10515 GOSUB 12000: GOSUB 12300
10520 F$="3.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(3)),1)
10535 GOSUB 12000: GOSUB 48000: GOSUB 12200
10540 IF RR=1 THEN RR=0: GOSUB 15300: GOSUB 14000: GOSUB 48000
10800 Z1=22:S1=14:QM$="NOCHMAL (J) ?": GOSUB 63525
10810 Z1=23:S1=14:QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163]": GOSUB 63525
10820 GET A$: IF A$="" THEN 10820
10830 IF A$="J" THEN QQ=1
10840 IF PP=1 AND QQ=1 THEN 10000
11990 RETURN
12000 REM ... ABFRAGE
12100 Z1=18:S1=0:QM$=F$:GOSUB63525
12110 INPUT N$
12120 IF N$=G$ THEN QM$="RICHTIG!":Z1=20:S1=16:GOSUB63525:GOTO12140
12130 QM$="FALSCH. [210]ICHTIG: "+G$:Z1=20:S1=(40-LEN(QM$))/2:GOSUB63525
12140 FOR L=1 TO 500: NEXT L
12150 RETURN
12200 :
12230 QM$="[197]RKLAERUNG (SPACE)":Z1=22:S1=11:GOSUB63525
12240 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]":Z1=23:S1=11:GOSUB63525
12250 GET A$: IF A$="" THEN 12250
12260 IF A$=" " THEN RR=1
12270 GOSUB 12300
12280 RETURN
12300 QM$=" ":Z1=18:S1=0:GOSUB63525
12310 Z1=19:GOSUB63525: Z1=20:GOSUB63525: Z1=22:GOSUB63525: Z1=23:GOSUB63525
12320 RETURN
12321 RETURN
13000 REM ... BILDSCHIRM
13120 PRINT"[147]": QT$="[193]BFRAGEN [205]ETALL+[206]ICHTMETALL": GOSUB 63520
13200 PRINT"[145][199]IB DAS BEI DER [210]EAKTION VON"
13201 PRINTNA$(1,1)" MIT "NA$(2,1)
13202 PRINT"ENTSTEHENDE [210]EAKTIONSPRODUKT AN UND"
13203 PRINT"STELLE DIE [210]EAKTIONSGLEICHUNG AUF."
13300 RETURN
14000 REM ... ABFRAGE
14100 QM$="(RETURN)": Z1=22: S1=16: GOSUB 63525
14110 QM$="[163][163][163][163][163][163][163][163]": Z1=23: S1=16: GOSUB 63525
14120 GET A$: IF A$<>CHR$(13) THEN 14120
14130 RETURN
14200 GET A$: IF A$="" THEN 14100
14210 IF A$=" " THEN RR=1
14220 RETURN
14990 RETURN
15000 REM ... ERK1
15100 REM ... ERK1,1
15110 PRINT"[147]": QT$="[197]RKLAERUNG [210]EAKTIONSPRODUKT": GOSUB 63520
15120 PRINTNA$(1,1)" UND "NA$(2,1)" REAGIEREN ZU ": PRINT "==> "NA$(3,1)""
15130 PRINT"[196]ER [206]AME EINER [205]ETALL-[206]ICHTMETALL- [214]ERBINDUNG SETZT SICH I.A. AUS"
15140 PRINT"[205]ETALLNAME + [206]ICHTMETALLNAME + 'ID'"
15150 PRINT"ZUSAMMEN."
15160 PRINT "[193]USNAHMEN: [211]AUERSTOFF - OX-ID"
15170 PRINT " [211]CHWEFEL - SULF-ID"
15180 PRINT " [211]TICKSTOFF - NITR-ID"
15190 RETURN
15200 REM ... ERK1,2
15210 PRINT"[147]":QT$="[197]RKLAERUNG [211]YMBOLE": GOSUB 63520
15220 PRINT"[196]AS [211]YMBOL VON "NA$(1,1)" HEISST "TA$(1,W(1),2)"."
15230 PRINT"[196]AS [211]YMBOL VON "NA$(2,1)" HEISST "TA$(2,W(2),2)"."
15240 IF RIGHT$(NA$(2,2),1)<>"2" THEN 15260
15250 PRINT"[196]A "NA$(2,1)" EIN [199]AS IST UND MOLEKULAR"
15255 PRINT"VORKOMMT, MUSS DER [201]NDEX '2' STEHEN:": PRINT"==> "NA$(2,2)
15260 PRINT"[196]IE [198]ORMEL FUER "NA$(3,1): PRINT"HEISST "NA$(3,2)"."
15261 QM$="WEITER (RETURN)": Z1=22: S1=12: GOSUB 63525
15262 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=12: GOSUB 63525
15263 GET A$: IF A$="" THEN 15263
15264 PRINT"[147]":QT$="[197]RKLAERUNG [211]YMBOLE [201][201]": GOSUB 63520
15265 PRINT"[196]IE [198]ORMEL FUER "NA$(3,1): PRINT"HEISST "NA$(3,2)"."
15270 PRINT""TA$(1,W(1),2)" IST"TA(1,W(1))"[157]-WERTIG. ";
15275 PRINTTA$(2,W(2),2)" IST"TA(2,W(2))"[157]-WERTIG."
15280 PRINT" 1 "NA$(1,2)"-[193]TOM VERBINDET SICH"
15290 PRINT "MIT ("TA(1,W(1))"/"TA(2,W(2))") "TA$(2,W(2),2)"-[193]TOM(EN)."
15291 IF K(1)=1 THEN PRINT "1 "NA$(1,2)"-[193]TOM VERBINDET SICH":GOTO 15293
15292 PRINT ""K(1);NA$(1,2)"-[193]TOME VERBINDEN SICH"
15293 IF K(2)=1 THEN PRINT "MIT 1 "TA$(2,W(2),2)"-[193]TOM.": GOTO 15295
15294 PRINT"MIT"K(2);TA$(2,W(2),2)"-[193]TOMEN."
15295 PRINT "==> ";NA$(3,2)
15299 RETURN
15300 REM ... ERK1,3
15310 PRINT"[147]":QT$="[197]RKLAERUNG [203]OEFFIZIENTEN": GOSUB 63520
15320 PRINT NA$(1,2)" + "NA$(2,2)" ===> "NA$(3,2)
15330 PRINT "[196]IE [193]NZAHL DER [193]TOME VON JEDEM [197]LEMENT"
15331 PRINT"IN DER [199]LEICHUNG MUSS AUSGEGLICHEN"
15332 PRINT"WERDEN.":PRINT"[193]UF BEIDEN [211]EITEN DER [210]EAKTIONSGLEICHUNG"
15335 PRINT "[145]MUESSEN DIE [197]LEMENTE IN GLEICHER [193]NZAHL VORHANDEN SEIN."
15340 QM$="WEITER (RETURN)": Z1=22: S1=12: GOSUB 63525
15341 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=12: GOSUB 63525
15342 GET A$: IF A$="" THEN 15342
15345 PRINT"[147]":QT$="[197]RKLAERUNG [203]OEFFIZIENTEN [201][201]": GOSUB 63520
15350 PRINT NA$(1,2)" + "NA$(2,2)" ===> "NA$(3,2)
15360 PRINT "[193]UF DER LINKEN [211]EITE DER [199]LEICHUNG GIBT ES";
15361 L=1: IF RIGHT$(NA$(2,2),1)="2" THEN L=2
15362 PRINTL;NA$(2,1)"-[193]TOM(E): "NA$(2,2)
15363 PRINT "[193]UF DER RECHTEN [211]EITE"
15364 L=VAL(RIGHT$(NA$(3,2),1)): IF L=0 THEN L=1
15365 PRINT "[157]"L;NA$(2,1)"-[193]TOM(E): "NA$(3,2)
15366 PRINT "[215]IR GLEICHEN AUS: ";KO(2);NA$(2,2)
15367 PRINT " ";KO(3);NA$(3,2)
15368 PRINT "==> "NA$(1,2)" + "KO(2);NA$(2,2)" ===> "KO(3);NA$(3,2)
15370 QM$="WEITER (RETURN)": Z1=22: S1=12: GOSUB 63525
15371 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=12: GOSUB 63525
15372 GET A$: IF A$="" THEN 15372
15373 PRINT"[147]":QT$="[197]RKLAERUNG [203]OEFFIZIENTEN [201][201][201]": GOSUB 63520
15374 PRINT NA$(1,2)" + "KO(2);NA$(2,2)" ===> "KO(3);NA$(3,2)
15380 PRINT "[206]UN MUSS NUR NOCH DAS ";NA$(1,1):PRINT"AUSGEGLICHEN WERDEN"
15381 PRINT"[193]UF DER LINKEN [211]EITE IST":PRINT"1 "NA$(1,1)"-[193]TOM VORHANDEN: ";NA$(1,2)
15382 PRINT"[193]UF DER RECHTEN [211]EITE":PRINTKO(1);NA$(1,1)"-[193]TOME: "KO(3);NA$(3,2)
15383 PRINT "[215]IR GLEICHEN AUS: ";KO(1);NA$(1,2)
15384 PRINT "==> "KO(1);NA$(1,2)" + "KO(2);NA$(2,2)" ===> "KO(3);NA$(3,2)
15399 RETURN
17990 RETURN
18000 REM ... BER1
18010 QT$="[194]ERECHNUNG [205]ETALL+[206]ICHTMETALL": GOSUB 63520: UU=1
18100 NA$(1,1)=TA$(1,W(1),1)
18110 NA$(2,1)=TA$(2,W(2),1)
18120 NA$(3,1)=TA$(1,W(1),1)+TA$(2,W(2),3)
18130 NA$(1,2)=TA$(1,W(1),2)
18140 NA$(2,2)=TA$(2,W(2),2)
18145 IF NA$(2,2)<>"[208]" AND NA$(2,2)<>"[211]" THEN NA$(2,2)=NA$(2,2)+"2"
18150 IF TA(1,W(1))/TA(2,W(2))=1 THEN K(1)=1: K(2)=1: GOTO 18180
18160 IF TA(1,W(1))/TA(2,W(2))=2 THEN K(1)=1: K(2)=2: GOTO 18180
18170 K(1)=TA(2,W(2)): K(2)=TA(1,W(1))
18180 NA$(3,2)=TA$(1,W(1),2)
18190 IF K(1)<>1 THEN NA$(3,2)=NA$(3,2)+RIGHT$(STR$(K(1)),1)
18200 NA$(3,2)=NA$(3,2)+TA$(2,W(2),2)
18210 IF K(2)<>1 THEN NA$(3,2)=NA$(3,2)+RIGHT$(STR$(K(2)),1)
18220 NA$(4,1)="": NA$(4,2)="": KO(4)=0
18230 KO(1)=K(1): KO(2)=K(2): KO(3)=1
18240 IF RIGHT$(NA$(2,2),1)<>"2" THEN 18270
18250 KO(2)=KO(2)/2
18260 IF INT(KO(2))<>KO(2) THEN KO(1)=2*KO(1): KO(2)=2*KO(2): KO(3)=2*KO(3)
18270 RETURN
19000 REM --- F2
19010 PRINT"[147]":QT$="[193]RBEITSBOGEN [205]ETALL+[206]ICHTMETALL": GOSUB 63520
19100 GOSUB 19400
19110 FOR L=1 TO N
19120 : W(1)=FNF1(24): W(2)=FNF1(8)
19130 : N$(1,L)=TA$(1,W(1),1)
19140 : N$(2,L)=TA$(2,W(2),1)
19150 NEXT L
19160 GOSUB 19500
19170 RETURN
19400 REM ... EINGABE
19420 INPUT "[215]IEVIELE [193]UFGABEN ";N
19430 IF N>50 THEN PRINT"[145][145][145]": GOTO 19420
19440 POKE198,0: RETURN
19500 REM ... DRUCK
19510 POKE768,61:OPEN1,4:PRINT#1:CLOSE1:POKE768,139:IF ST<>-128 THEN GOTO19520
19515 INPUT"[196]RUCKER EINGESCHALTET ";L
19520 OPEN 1,4
19530 FOR L=1 TO N
19540 : PRINT#1,"";N$(1,L);" + ";N$(2,L);" ====>"
19550 : PRINT#1: PRINT#1: PRINT#1
19560 NEXT L
19570 CLOSE1
19580 RETURN
20000 REM --- F3: LAUGE + SAEURE
20010 PRINT"[147]": QT$="[204]AUGE+[211]AEURE": GOSUB 63520
20100 W(1)=FN F1(12): W(2)=FN F1(8)
20110 GOSUB 28000: QQ=0
20120 GOSUB 23000
20300 F$="1.[210]EAKTIONSPRODUKT ": G$=NA$(3,1): GOSUB 12000: GOSUB 12300
20350 F$="2.[210]EAKTIONSPRODUKT ": G$=NA$(4,1):GOSUB 12000:GOSUB 49000: GOSUB 12200
20360 IF RR=1 THEN RR=0: GOSUB 25100: GOSUB 14000: GOSUB 23000: GOSUB 49000
20400 F$="1.[211]TOFF KURZ ":G$=NA$(1,2): GOSUB12000: GOSUB 12300
20410 F$="2.[211]TOFF KURZ ":G$=NA$(2,2): GOSUB12000: GOSUB 12300
20420 F$="3.[211]TOFF KURZ ":G$=NA$(3,2): GOSUB12000: GOSUB 12300
20430 F$="4.[211]TOFF KURZ ":G$=NA$(4,2): GOSUB12000: GOSUB 49500: GOSUB 12200
20440 IF RR=1 THEN RR=0: GOSUB 25200: GOSUB 14000: GOSUB 23000: GOSUB 49500
20500 F$="1.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(1)),1)
20505 GOSUB 12000: GOSUB 12300
20510 F$="2.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(2)),1)
20515 GOSUB 12000: GOSUB 12300
20520 F$="3.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(3)),1)
20525 GOSUB 12000: GOSUB 12300
20530 F$="4.[203]OEFFIZIENT ":G$=RIGHT$(STR$(KO(4)),1)
20535 GOSUB 12000: GOSUB 48000: GOSUB 12200
20540 IF RR=1 THEN RR=0: GOSUB 25300: GOSUB 14000: GOSUB 48000
20800 Z1=22:S1=14:QM$="NOCHMAL (J) ?": GOSUB 63525
20810 Z1=23:S1=14:QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163]": GOSUB 63525
20820 GET A$: IF A$="" THEN 20820
20830 IF A$="J" THEN QQ=1
20840 IF PP=2 AND QQ=1 THEN 20000
21990 RETURN
23000 REM ... BILDSCHIRM
23120 PRINT"[147]": QT$="[193]BFRAGEN [204]AUGE+[211]AEURE": GOSUB 63520
23200 PRINT"[145][199]IB DIE BEI DER [210]EAKTION VON"
23201 PRINTNA$(1,1)" MIT "NA$(2,1)
23202 PRINT"ENTSTEHENDE [210]EAKTIONSPRODUKTE AN UND"
23203 PRINT"STELLE DIE [210]EAKTIONSGLEICHUNG AUF."
23300 RETURN
24990 RETURN
25000 REM ... ERK2
25100 REM ERK 2,1
25110 PRINT"[147]": QT$="[197]RKLAERUNG [210]EAKTIONSPRODUKTE": GOSUB 63520
25120 PRINT"[145]"NA$(1,1)" UND "NA$(2,1):PRINT"REAGIEREN ZU ":PRINTNA$(3,1)" UND [215]ASSER"
25130 PRINT"[194]EI DER [210]EAKTION VON EINER [204]AUGE UND EINER [211]AEURE ENSTEHT EIN [211]ALZ,"
25131 PRINT"EINE [214]ERBINDUNG DES [205]ETALLS AUS DER [204]AUGE UND DES [211]AEURERESTES."
25132 PRINT"[196]ER [206]AME DES [211]ALZES WIRD AUS":PRINT"[205]ETALLNAME + [211]AEURERESTNAME GEBILDET."
25133 PRINT"[194]EI DIESER [210]EAKTION ([206]EUTRALISATIONS- REAKTION) ENSTEHT AUS DEM"
25134 PRINT"[215]ASSERSTOFF DER [211]AEURE UND DEN [200]YDROXYL-TEILCHEN DER [204]AUGE [215]ASSER."
25140 PRINT"==> "NA$(3,1)
25141 PRINT" ("TA$(1,W(1),1)"+"TA$(3,W(2),3)")"
25142 PRINT"==> [215]ASSER"
25143 RETURN
25200 REM ERK 2,2
25210 PRINT"[147]": QT$="[197]RKLAERUNG [211]YMBOLE/[198]ORMELN": GOSUB 63520
25220 PRINT"[196]IE [198]ORMEL VON "NA$(1,1):PRINT"HEISST "NA$(1,2)".":L$=TA$(1,W(1),2)
25221 L=TA(1,W(1)):PRINT"("L$" IST"L"WERTIG UND BINDET"L"[200]YDROXID-":PRINT"[199]RUPPE(N))"
25222 PRINT"[196]IE [198]ORMEL VON "NA$(2,1):PRINT"HEISST "NA$(2,2)"."
25223 PRINT"[196]IE [198]ORMEL DES [210]EAKTIONSPRODUKTES "NA$(3,1)" HEISST "NA$(3,2)"."
25224 PRINT"[196]IE [198]ORMEL VON [215]ASSER LAUTET [200]2[207]."
25225 QM$="WEITER (RETURN)": Z1=22: S1=12: GOSUB 63525
25226 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=12: GOSUB 63525
25227 GET A$: IF A$="" THEN 25226
25228 PRINT"[147]": QT$="[197]RKLAERUNG [211]YMBOLE/[198]ORMELN [201][201]": GOSUB 63520
25230 PRINT NA$(1,2)" + "NA$(2,2)" ===> "NA$(3,2)" + [200]2[207]"
25231 PRINT "[196]IE [198]ORMEL FUER "NA$(3,1):PRINT"HEISST "NA$(3,2)"."
25232 PRINT""TA$(1,W(1),2)" IST"L"[157]-WERTIG. (BINDET"L"[200]YDROXID-":PRINT"[199]RUPPE(N))"
25233 L=TA(3,W(2))
25234 PRINT""TA$(3,W(2),2)" IST"L"[157]-WERTIG. (BINDET"L"[215]ASSER-":PRINT"STOFFATOM(E))"
25235 PRINT" 1 "TA$(1,W(1),2)"-[212]EILCHEN VERBINDET SICH"
25236 PRINT"MIT ("TA(1,W(1))"/"TA(3,W(2))") "TA$(3,W(2),2)"-[212]EILCHEN."
25237 PRINT""K(1);TA$(1,W(1),2)"-[212]EILCHEN";:IF K(1)=1 THEN PRINT" VERBINDET";:GOTO25239
25238 PRINT" VERBINDEN";
25239 PRINT" SICH":PRINT"MIT"K(2);TA$(3,W(2),2)"-[212]EILCHEN."
25240 PRINT"==> ";NA$(3,2)
25299 RETURN
25300 REM ERK 2,3
25310 PRINT"[147]":QT$="[197]RKLAERUNG [203]OEFFIZIENTEN": GOSUB 63520
25315 PRINT NA$(1,2)" + "NA$(2,2)" ===> "NA$(3,2)" + "NA$(4,2)
25320 PRINT""K(1);TA$(1,W(1),2)"-[212]EILCHEN";:IF K(1)=1 THENPRINT" VERBINDET";:GOTO25322
25321 PRINT" VERBINDEN";
25322 PRINT" SICH":PRINT"MIT"K(2);TA$(3,W(2),2)"-[212]EILCHEN."
25330 PRINT"[193]LSO MUESSEN DIE [203]OEFFIZIENTEN HEISSEN:"
25331 PRINT ""KO(1);NA$(1,2):PRINTKO(2);NA$(2,2):PRINTKO(3);NA$(3,2)
25332 PRINT "([196]A IN DER [204]AUGE EIN [205]ETALL-[193]TOM UND"
25333 PRINT "IN DER [211]AEURE EIN [211]AEUREREST-[212]EILCHEN VORHANDEN SIND)"
25334 QM$="WEITER (RETURN)": Z1=22: S1=12: GOSUB 63525
25335 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=12: GOSUB 63525
25336 GET A$: IF A$="" THEN 25336
25337 PRINT"[147]": QT$="[197]RKLAERUNG [203]OEFFIZIENTEN [201][201]": GOSUB 63520
25338 PRINT"[157]"KO(1)NA$(1,2)" +"KO(2)NA$(2,2)" ===>"KO(3)NA$(3,2)" + [200]2[207]"
25340 PRINT"[202]ETZT MUSS NUR NOCH DAS [215]ASSER AUSGE- GLICHEN WERDEN:"KO(4)"[200]2[207]"
25341 PRINT"([193]UF DER LINKEN [211]EITE DER [210]EAKTIONS- GLEICHUNG SIND NOCH"
25342 PRINT KO(4)*2"[215]ASSERSTOFF-[193]TOME UND":PRINTKO(4)"[211]AUERSTOFFATOME UEBRIG.)"
25399 RETURN
28000 REM ... BER2
28010 QT$="[194]ERECHNUNG [204]AUGE+[211]AEURE": GOSUB 63520: UU=2
28100 NA$(1,1)=TA$(1,W(1),1)+"LAUGE"
28110 NA$(2,1)=TA$(3,W(2),1)
28120 NA$(3,1)=TA$(1,W(1),1)+TA$(3,W(2),3)
28130 NA$(4,1)="[215]ASSER"
28140 NA$(1,2)=TA$(1,W(1),2)
28150 IF TA(1,W(1))=1 THEN NA$(1,2)=NA$(1,2)+"[207][200]": GOTO 28170
28160 NA$(1,2)=NA$(1,2)+"([207][200])"+RIGHT$(STR$(TA(1,W(1))),1)
28170 NA$(2,2)="[200]"
28180 IF TA(3,W(2))<>1 THEN NA$(2,2)=NA$(2,2)+RIGHT$(STR$(TA(3,W(2))),1)
28190 NA$(2,2)=NA$(2,2)+TA$(3,W(2),2)
28200 IF TA(3,W(2))/TA(1,W(1))=1 THEN K(1)=1: K(2)=1: GOTO 28220
28210 K(1)=TA(3,W(2)): K(2)=TA(1,W(1))
28220 NA$(3,2)=TA$(1,W(1),2)
28230 IF K(1)<>1 THEN NA$(3,2)=NA$(3,2)+RIGHT$(STR$(K(1)),1)
28240 IF K(2)=1 THEN NA$(3,2)=NA$(3,2)+TA$(3,W(2),2): GOTO 28270
28250 IF TA$(3,W(1),1)="[195]L" THEN NA$(3,2)=NA$(3,2)+"[195]L"+RIGHT$(STR$(K(2)),1):GOTO28270
28260 NA$(3,2)=NA$(3,2)+"("+TA$(3,W(2),2)+")"+RIGHT$(STR$(K(2)),1)
28270 NA$(4,2)="[200]2[207]"
28280 KO(1)=K(1): KO(2)=K(2): KO(3)=1: KO(4)=KO(1)*TA(1,W(1))
28290 RETURN
29000 REM --- F4
29010 PRINT"[147]":QT$="[193]RBEITSBOGEN [204]AUGE+[211]AEURE": GOSUB 63520
29100 GOSUB 19400
29110 FOR L=1 TO N
29120 : W(1)=FNF1(12): W(2)=FNF1(8)
29130 : N$(1,L)=TA$(1,W(1),1)+"LAUGE"
29140 : N$(2,L)=TA$(3,W(2),1)
29150 NEXT L
29160 GOSUB 19500
29170 RETURN
30000 REM --- F5: F1 / F3
30010 PRINT"[147]": QT$="[193]BFRAGEN": GOSUB 63520
30100 W=FN F1(2): QQ=0
30110 ON W GOSUB 10000,20000
30120 IF QQ=0 THEN RETURN
30130 GOTO 20100
39000 REM --- F6
39010 PRINT"[147]":QT$="[193]RBEITSBOGEN": GOSUB 63520
39100 GOSUB 19400
39110 FOR L=1 TO N
39120 : W(1)=FN F1(2)
39130 : IF W(1)=2 THEN 39180
39140 : W(1)=FN F1(24): W(2)=FN F1(8)
39150 : N$(1,L)=TA$(1,W(1),1)
39160 : N$(2,L)=TA$(2,W(2),1)
39170 : GOTO 39210
39180 : W(1)=FN F1(12): W(2)=FN F1(8)
39190 : N$(1,L)=TA$(1,W(1),1)+"LAUGE"
39200 : N$(2,L)=TA$(3,W(2),1)
39210 NEXT L
39220 GOSUB 19500
39990 RETURN
40000 REM --- F7: GLEICHUNGEN
40010 PRINT"[147]":QT$="[210]EAKTIONSGLEICHUNG AUFSTELLEN": GOSUB 63520
40020 QQ=0: TT=0
40100 GOSUB 44000: IF QQ=2 THEN RETURN
40110 IF SK(1)+SK(2)=3 THEN GOSUB 18000
40120 IF SK(1)+SK(2)=12 THEN GOSUB 28000
40130 GOSUB 48000
40140 QM$="[197]RKLAERUNG (SPACE)": Z1=22: S1=11: GOSUB 63525
40150 QM$="[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]": Z1=23: S1=11: GOSUB 63525
40160 GET A$: IF A$="" THEN 40160
40170 IF A$=" " THEN GOSUB 41000
40180 QM$=" NOCHMAL (J) ": Z1=22: S1=11: GOSUB 63525
40185 QM$=" [163][163][163][163][163][163][163][163][163][163][163] ": Z1=23: S1=11: GOSUB 63525
40190 GET A$: IF A$="" THEN 40190
40200 IF A$="J" THEN 40000
40210 RETURN
41000 REM GOERK
41100 IF UU=1 THEN GOSUB15100:GOSUB14000:GOSUB15200:GOSUB14000:GOSUB15300
41110 IF UU=2 THEN GOSUB25100:GOSUB14000:GOSUB25200:GOSUB14000:GOSUB 25300
41120 GOSUB 14000: GOSUB 48000
41130 RETURN
44000 REM ... EINGABE
44010 PRINT"[147]":QT$="[197]INGABE":GOSUB63520
44100 PRINT " [194]ITTE [210]EAKTIONSSTOFFE EINGEBEN"
44110 PRINT " [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]"
44130 I=0
44140 I=I+1: IF I=3 THEN RETURN
44150 QT$="[197]INGABE":GOSUB63520:PRINT"": IF I=2 THEN PRINT""
44160 PRINTI;: INPUT "[157].[211]TOFF : ";QO$
44161 IF QO$="_" THEN QQ=2: RETURN
44162 IF QO$="^" AND I<>1 THEN I=I-2: GOTO 44140
44170 ST$(I)=QO$: A=0: GOSUB 45000
44180 SK(I)=A: W(I)=B
44190 IF A=0 THEN PRINT "[145] ";: I=I-1
44200 IF I<2 THEN 44140
44300 RESTORE: VV=0
44310 FOR L=1 TO SS
44320 : READ X: IF SK(1)+SK(2)=X THEN VV=1
44330 NEXT L
44340 DATA 3,12
44390 IF VV=0 THEN 44000
44400 VV=0
44410 IF SK(1)<SK(2) THEN VV=1
44440 IF VV=1 THEN 44600
44450 X$=ST$(1): X=SK(1): ST$(1)=ST$(2): SK(1)=SK(2): ST$(2)=X$: SK(2)=X
44460 X=W(1): W(1)=W(2): W(2)=X
44470 FOR L=1 TO 2: X$=NA$(1,L): NA$(1,L)=NA$(2,L): NA$(2,L)=X$: NEXT L
44600 RETURN
45000 REM .. PRUEFEN + DATEN
45010 QT$="[208]RUEFEN UND [196]ATEN HOLEN":GOSUB63520
45100 GOSUB 45600: REM LAUGE
45105 IF A<>0 THEN RETURN
45110 GOSUB 45800: REM SAEURE
45115 IF A<>0 THEN RETURN
45120 GOSUB 45400: REM NICHTMETALL
45125 IF A<>0 THEN RETURN
45130 GOSUB 45200: REM METALL
45135 IF A<>0 THEN RETURN
45140 RETURN
45200 REM . PR+DA METALL
45210 QT$="[208]RUEFEN AUF [205]ETALL": GOSUB 63520
45220 VV=0: TT=1: A$=QO$: GOSUB 50000
45300 IF VV=1 THEN A=1
45310 RETURN
45400 REM . PR+DA NICHTMETALL
45410 QT$="[208]RUEFEN AUF [206]ICHTMETALL": GOSUB 63520
45420 VV=0: TT=2: A$=QO$: GOSUB 50000
45500 IF VV=1 THEN A=2
45510 RETURN
45600 REM . PR+DA LAUGE
45610 QT$="[208]RUEFEN AUF [204]AUGE": GOSUB 63520
45620 VV=0
45630 X$=RIGHT$(QO$,2)
45640 IF X$="[207][200]" THEN A$=LEFT$(QO$,LEN(QO$)-2): VV=1: GOTO 45670
45650 IF X$=")2" OR X$=")3" THEN A$=LEFT$(QO$,LEN(QO$)-5): VV=1: GOTO 45670
45660 IF RIGHT$(QO$,5)="LAUGE" THEN A$=LEFT$(QO$,LEN(QO$)-5): VV=1
45670 IF VV=0 THEN 45750
45680 VV=0: TT=1: GOSUB 50000
45690 IF B>12 THEN VV=0
45700 IF VV=1 THEN A=4
45750 RETURN
45800 REM . PR+DA SAEURE
45810 QT$="[208]RUEFEN AUF [211]AEURE": GOSUB 63520
45820 VV=0: A$=QO$
45830 X$=RIGHT$(QO$,6)
45840 IF X$="[211]AEURE" OR X$="SAEURE" THEN VV=1
45850 X$=LEFT$(QO$,2):IFX$="[200]2"ORX$="[200]3"THENVV=1:A$=RIGHT$(QO$,LEN(A$)-2):GOTO45870
45860 IF LEFT$(QO$,1)="[200]" THEN VV=1: A$=RIGHT$(QO$,LEN(A$)-1)
45870 IF VV=0 THEN 45950
45880 VV=0: TT=3: GOSUB 50000
45890 IF VV=1 THEN A=8
45950 RETURN
48000 REM ... AUSGABE
48010 PRINT"[147]";:QT$="[193]USGABE":GOSUB63520
48020 PRINT:PRINT NA$(1,1);" + ";NA$(2,1);" ===> ": PRINT NA$(3,1);
48030 IF KO(4)<>0 THEN PRINT " + ";NA$(4,1);
48040 PRINT ""
48050 AU$=" ": IF KO(1)>1 THEN AU$=AU$+RIGHT$(STR$(KO(1)),1)
48055 AU$=AU$+" "+NA$(1,2)+" + ": IF KO(2)>1 THEN AU$=AU$+RIGHT$(STR$(KO(2)),1)+" "
48060 AU$=AU$+NA$(2,2)+" ===> ": IF KO(3)>1 THEN AU$=AU$+RIGHT$(STR$(KO(3)),1)+" "
48065 AU$=AU$+NA$(3,2)
48070 IF KO(4)=0 THEN 48100
48075 AU$=AU$+" + ": IF KO(4)>1 THEN AU$=AU$+RIGHT$(STR$(KO(4)),1)+" "
48080 AU$=AU$+NA$(4,2)
48100 FOR L=1 TO LEN(AU$)
48110 : X$=MID$(AU$,L,1)
48120 : IF ASC(X$)<48 OR ASC(X$)>57 THEN PRINT X$;: GOTO 48150
48130 :IFASC(MID$(AU$,L-1,1))=41ORASC(MID$(AU$,L-1,1))>64THENPRINT"";X$;"[145]";:GOTO48150
48140 : PRINT X$;
48150 : IF X$=">" AND UU=2 THEN PRINT"[157][157][157][157][157]";
48155 NEXT L
48175 IF PP<4 THEN 48200
48200 RETURN
49000 REM ... AUSGABE1
49100 Z1=9:S1=1:QM$="[157]"+NA$(1,1)+" + "+NA$(2,1)+" ===>":GOSUB63525
49110 QM$="[157]"+NA$(3,1): IF NA$(4,1)<>"" THEN QM$=QM$+" + "+NA$(4,1)
49120 Z1=11:S1=1:GOSUB63525
49130 RETURN
49500 REM ... AUSGABE2
49600 GOSUB 49000
49610 QM$=NA$(1,2)+" + "+NA$(2,2)+" ===> "
49611 IF UU=1 THEN QM$=QM$+NA$(3,2): GOTO 49630
49615 QM$=QM$+"[157][157][157][157][157][157][157][157][157][157]"+NA$(3,2)
49620 IF NA$(4,2)<>"" THEN QM$=QM$+" + "+NA$(4,2)
49630 Z1=14:S1=1:GOSUB63525
49640 RETURN
50000 REM --- TABELLEN
50010 FOR K=1 TO TT(TT)
50020 :FORL=1TO4
50030 : : IF TA$(TT,K,L)=A$ THEN VV=1: B=K
50040 : NEXT L
50050 NEXT K
50060 RETURN
51000 REM ... METALLE
51500 DATA 24
51600 DATA "[204]ITHIUM", "[204]I", "", "", 1
51610 DATA "[206]ATRIUM", "[206]A", "", "", 1
51620 DATA "[203]ALIUM", "[203]", "", "", 1
51630 DATA "[210]UBIDIUM", "[210]B", "", "", 1
51640 DATA "[195]AESIUM", "[195]S", "", "", 1
51650 DATA "[194]ERYLLIUM", "[194]E", "", "", 2
51660 DATA "[205]AGNESIUM", "[205]G", "", "", 2
51670 DATA "[195]ALCIUM", "[195]A", "", "", 2
51680 DATA "[211]TRONTIUM", "[211]R", "", "", 2
51690 DATA "[194]ARIUM", "[194]A", "", "", 2
51700 DATA "[194]OR", "[194]", "", "", 3
51710 DATA "[193]LUMINIUM", "[193]L", "", "", 3
51720 DATA "[199]ALLIUM", "[199]A", "", "", 3
51730 DATA "[201]NDIUM", "[201]N", "", "", 3
51740 DATA "[212]HALLIUM", "[212]L", "", "", 3
51750 DATA "[211]ILICIUM", "[211]I", "", "", 4
51760 DATA "[199]ERMANIUM", "[199]E", "", "", 4
51770 DATA "[218]INN", "[211]N", "", "", 4
51780 DATA "[194]LEI", "[208]B", "", "", 4
51790 DATA "[193]RSEN", "[193]S", "", "", 3
51800 DATA "[193]NTIMON", "[211]B", "", "", 3
51810 DATA "[194]ISMUT", "[194]I", "", "", 3
51820 DATA "[211]ELEN", "[211]E", "", "", 2
51830 DATA "[212]ELLUR", "[212]E", "", "", 2
52000 REM ... NICHTMETALLE
52500 DATA 8
52600 DATA "[211]TICKSTOFF", "[206]", "NITRID", "", 3
52610 DATA "[208]HOSPHOR", "[208]", "PHOSPHID", "", 3
52620 DATA "[211]AUERSTOFF", "[207]", "OXID", "", 2
52630 DATA "[211]CHWEFEL", "[211]", "SULFID", "", 2
52640 DATA "[198]LUOR", "[198]", "FLUORID", "", 1
52650 DATA "[195]HLOR", "[195]L", "CHLORID", "", 1
52660 DATA "[194]ROM", "[194]R", "BROMID", "", 1
52670 DATA "[201]OD", "[201]", "IODID", "", 1
53000 REM ... SAEURERESTE
53500 DATA 8
53600 DATA "[211]ALZSAEURE", "[195]L", "CHLORID", "", 1
53610 DATA "SCHWEFELIGE [211]AEURE", "[211][207]3", "SULFIT", "", 2
53620 DATA "[211]CHWEFELSAEURE", "[211][207]4", "SULFAT", "", 2
53630 DATA "[203]OHLENSAEURE", "[195][207]3", "CARBONAT", "", 2
53640 DATA "[208]HOSPHORSAEURE", "[208][207]4", "PHOSPHAT", "", 3
53650 DATA "PHOSPHORIGE [211]AEURE", "[208][207]3", "PHOSPHIT", "", 3
53660 DATA "[211]ALPETERSAEURE", "[206][207]3", "NITRAT", "", 1
53670 DATA "SALPETRIGE [211]AEURE", "[206][207]2", "NITRIT", "", 1
63519 REM --- BILDSCHIRM
63520 PRINT""QT$;:FORQ=LEN(QT$)TO39:PRINT" [146]";:NEXTQ:PRINT""
63521 POKE 2018,22: POKE 2019,01: POKE 2020,19: POKE 2021,39
63522 POKE 2022,56: POKE 2023,56: FOR Q=0 TO 7: POKE 56288+Q,12: NEXT Q: RETURN
63523 :
63524 REM --- CURSOR
63525 POKE 214,Z1: POKE 211,S1: SYS 58640: PRINT QM$;: RETURN