1 REM BASICODE 2 ROUTINES DOOR HENK WEVERS 2 REM NADERE INLICHTINGEN BASICODE 3 REM NOS, HOBBYSCOOP HILVERSUM 5 PRINT CHR$(26);:WIDTH(255) 10 GOTO 1000 20 GOTO 1010 100 PRINT CHR$(26);:RETURN 110 REM 111 IF HO>51 THEN HO=51 112 IF VE>23 THEN VE=23 113 PRINT CHR$(27);"=";CHR$(VE+32);CHR$(HO+32); 115 RETURN 120 HO=PEEK(&HEF5A):VE=PEEK(&HEF5B)-&HF0 121 VE=VE*2 122 IF HO>127 THEN HO=HO-128:VE=VE+1 123 VE=VE-PEEK(&HEF62):IF VE<0 THEN VE=32+VE 124 RETURN 200 IN$=INKEY$:RETURN 210 GOSUB 200:IF IN$="" THEN 210 211 RETURN 250 PRINT CHR$(7);:RETURN 260 RV=RND(1):RETURN 270 FR=FRE(2):RETURN 300 SR$=STR$(SR) 301 Q7=LEN(SR$):IF Q7=0 THEN RETURN 302 IF RIGHT$(SR$,1)<>" " THEN 304 303 SR$=LEFT$(SR$,Q7-1):GOTO 301 304 IF LEFT$(SR$,1)<>" " THEN RETURN 305 SR$=RIGHT$(SR$,Q7-1):GOTO 301 310 Q4=SR:IF CN<>0 THEN 316 312 SR=INT(SR+.5):GOSUB 300:GOTO 330 316 Q5=SGN(SR):SR=ABS(SR):Q8=INT(SR):Q9=SR-Q8 318 FOR Q6=1 TO CN:Q9=Q9*10:NEXT Q6 320 Q9=INT(Q9+.5):SR=Q9:GOSUB 300 322 Q9$=RIGHT$("00000000000000000000"+SR$,CN) 324 IF Q8=0 AND Q9=0 THEN Q5=1 326 SR=Q8:GOSUB 300:IF Q5=-1 THEN SR$="-"+SR$ 328 SR$=SR$+"."+Q9$ 330 IF LEN(SR$)<=CT THEN 334 332 SR$=LEFT$("********************",CT):GOTO 340 334 SR$=RIGHT$(" "+SR$,CT) 340 SR=Q4:RETURN 350 LPRINT SR$;:RETURN 360 LPRINT:RETURN 1000 A=100:GOTO 20:REM RESERVEER STRINGRUIMTE 1010 GOSUB 5000 1020 GOSUB 100 1030 PRINT"Gemeten exacte massa ";:INPUT X 1040 PRINT 1050 FOR I=1 TO 4 1060 PRINT:PRINT 1070 PRINT"Element: ";A$(I);" Massa: ";B(I) 1080 D(I)=INT((X+.03)/B(I)) 1090 NEXT I 1100 PRINT:PRINT:PRINT 1110 PRINT"Maximale afwijking (massa's)";:INPUT W 1120 IF W<=.03 THEN 1170 1130 PRINT"afwijking te hoog: deze kan maximaal" 1140 PRINT"0.03 massa's zijn !" 1150 GOTO 1110 1160 : 1170 GOSUB 100 1180 PRINT 1190 PRINT"Massa:";X;", Max. afwijking:";W 1200 PRINT:PRINT" Massa "; 1210 FOR I=1 TO 4 1220 PRINT A$(I);" "; 1230 NEXT I 1240 PRINT"Afwijking" 1250 PRINT 1260 : 1270 R1=0:I1=0 1280 R3=R1:I3=0 1290 R4=R3:I4=0 1300 I2=INT((X-W-R4)/B(2)):IF I2<0 THEN 1370 1310 R2=R4+I2*B(2) 1320 R=R2 1330 :IF RX+W THEN 1370 1350 ::GOSUB 2000 1360 I2=I2+1:R2=R2+B(2):GOTO 1320 1370 IF I40 THEN 1450 1430 PRINT"Sorry, ik kan bij deze massa geen pas-" 1440 PRINT"sende brutoformule vinden!" 1450 PRINT"Wilt U nog meer massa's weten (j/n)";:INPUT X$ 1460 IF X$="n"OR X$="N"THEN END 1470 T=0 1480 GOTO 1020 1490 : 2000 REM AFDRUK ROUTINE 2010 T=T+1 2020 J(1)=I1 2030 J(2)=I2 2040 J(3)=I3 2050 J(4)=I4 2060 SR=R:CT=8:CN=4:GOSUB 310:PRINT SR$; 2070 FOR K=1 TO 4 2080 CT=4:CN=0 2090 SR=J(K):GOSUB 310:PRINT SR$; 2100 NEXT K 2110 SR=R-X 2120 CT=10:CN=4:GOSUB 310 2130 PRINT SR$ 2140 RETURN 2150 : 5000 DIM A$(4),K$(4),B(4),D(4),J(4) 5010 GOSUB 100:PRINT:PRINT 5020 PRINT 5030 PRINT" Bepaling van een BRUTO FORMULE" 5040 PRINT 5050 PRINT" uit een EXACTE MASSA" 5060 PRINT:PRINT 5070 PRINT" met de elementen KOOLSTOF," 5080 PRINT 5090 PRINT" WATERSTOF, STIKSTOF en ZUURSTOF." 5100 HO=0:VE=23:GOSUB 110 5110 PRINT"druk op de spatiebalk voor vervolg"; 5120 GOSUB 210:IF IN$<>" "THEN 5120 5130 GOSUB 100 5140 PRINT"U vertelt mij de EXACTE massa van de" 5150 PRINT:PRINT"verbinding alsmede de maximaal toege-" 5160 PRINT:PRINT"stane afwijking (hoogstens 0.03 massa's)" 5170 PRINT:PRINT"Ik bereken dan voor U alle mogelijke" 5180 PRINT:PRINT"aantallen atomen C, H, N en O waaruit" 5190 PRINT:PRINT"Uw verbinding zou kunnen bestaan." 5200 HO=0:VE=23:GOSUB 110 5210 PRINT"druk op de spatiebalk voor vervolg"; 5220 GOSUB 210:IF IN$<>" "THEN 5220 5230 A$(1)="C":A$(2)="H":A$(3)="N":A$(4)="O" 5240 K$(1)="c":K$(2)="h":K$(3)="n":K$(4)="o" 5250 B(1)=12:B(2)=1.0078:B(3)=14.0031:B(4)=15.9949 5260 RETURN 5270 : 5280 : 5290 : 10000 REM" B R U T O F O R M U L E" 10010 REM ======================= 10020 REM 10030 REM" Deze versie november 1982. 10040 REM" Enigszins veranderd en 10050 REM" aangepast voor BASICODE-2 10060 REM" door leden van de 10070 REM" BASICODE - groep. 10080 REM 10090 REM 10100 REM 10110 REM 10120 REM" Oorspronkelijke versie uit 10130 REM" 1980, ingezonden voor de 10140 REM" HOBBYSCOOP - wedstrijd 10150 REM 10160 REM DOOR: 10170 REM 10180 REM 10190 REM" T. J. S T A M 10200 REM ================= 10210 REM