home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 17
/
64er_Magazin_Sonderheft_17_19xx_Markt__Technik_de_Side_A.d64
/
knobel
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
5KB
|
233 lines
1000 gosub1940
1005 ifa=0thena=1:load"knobel mc",8,1
1009 s$=""
1010 n$="abcdefghij"
1020 s(0)=17:s(1)=55:s(2)=60:s(3)=65
1030 s(4)=97:s(5)=177
1040 dim zi$(8),op$(5),gl$(5)
1050 goto 2310: hauptroutine
1060 '
1070 ' zi$(8) die eingegebenen 4 stel-
1080 ' ligen zahlen
1090 ' op$(5) die eingegebenen
1100 ' operatoren
1110 ' gl$(5) umgeformte gleichungen
1120 ' zu + und * gleichungen
1130 ' formten gleichung
1140 **********************************
1150 '
1160 ' die zahlen- und operations-
1170 ' variable loeschen
1180 '
1190 fort=0to5:op$(t)=" ":next
1200 fort=0to8:zi$(t)=" ":next
1210 return
1220 '
1230 ' eingaberoutine fuer eine zahl
1240 '
1250 n=0:l=0
1260 h=13+int(n/3)*65+n*5
1270 prints$tab(h+l)""mid$(zi$(n),l+1,1)"[146]"right$(zi$(n),3-l)
1280 geta$:ifa$=""then1280
1290 if(a$>="a" and a$<="j")ora$=" "then1320
1295 ifa$="[157]"andl>0thenl=l-1:goto1260
1296 ifa$="[157]"andl=0andn>0thenn=n-1:l=3:prints$tab(h)zi$(n+1)
1297 ifa$=""then1330
1300 goto1260
1320 zi$(n)=left$(zi$(n),l)+a$+right$(zi$(n),3-l)
1330 prints$tab(h)zi$(n)
1340 l=l+1:ifl=4thenn=n+1:l=0:ifn>8thenreturn
1350 goto1260
1360 '
1370 ' eingaberoutine fuer 9 zahlen
1380 '
1390 n=0
1400 h$(0)=mid$(zi$(n),1,1)
1410 h$(1)=mid$(zi$(n),2,1)
1420 h$(2)=mid$(zi$(n),3,1)
1430 h$(3)=mid$(zi$(n),4,1)
1440 gosub1250
1450 print" ok (j,n) ?"
1460 geta$:ifa$=""then1460
1470 print"[145] [145][145][145]"
1480 ifa$="n"then1390
1490 ifa$<>"j"then1450
1500 return
1510 '
1520 ' eingaberoutine fuer operatoren
1530 '
1540 forn=0to5
1550 prints$tab(s(n))""op$(n)"[146]"
1560 op$(n)=""
1570 geta$:ifa$=""then1570
1580 ifa$<>"+"anda$<>"-"anda$<>"*"anda$<>"/"then1570
1590 op$(n)=a$:prints$tab(s(n))a$:next
1600 print" ok (j,n) ?"
1610 geta$:ifa$=""then1610
1620 print"[145] [145][145][145]"
1630 ifa$="n"then1540
1640 ifa$<>"j"then1600
1650 return
1660 '
1670 ' gleichung zu + oder * gleichung
1680 ' umformen
1690 '
1700 a$=zi$(0):b$=zi$(1):c$=zi$(2)
1710 o$=op$(0):gosub1860:gl$(0)=d$
1720 a$=zi$(3):b$=zi$(4):c$=zi$(5)
1730 o$=op$(4):gosub1860:gl$(1)=d$
1740 a$=zi$(6):b$=zi$(7):c$=zi$(8)
1750 o$=op$(5):gosub1860:gl$(2)=d$
1760 a$=zi$(0):b$=zi$(3):c$=zi$(6)
1770 o$=op$(1):gosub1860:gl$(3)=d$
1780 a$=zi$(1):b$=zi$(4):c$=zi$(7)
1790 o$=op$(2):gosub1860:gl$(4)=d$
1800 a$=zi$(2):b$=zi$(5):c$=zi$(8)
1810 o$=op$(3):gosub1860:gl$(5)=d$
1820 return
1830 '
1840 ' umform routine
1850 '
1860 ifo$="+"thend$="+"+a$+b$+c$
1870 ifo$="-"thend$="+"+c$+b$+a$
1880 ifo$="*"thend$="*"+a$+b$+c$
1890 ifo$="/"thend$="*"+c$+b$+a$
1900 return
1910 '
1920 ' bildschirmmaske ausdrucken
1930 '
1940 print"[147]":poke53248+32,0:poke53248+33,0
1950 print"erlaubte symbole sind buchstaben
1960 [153]
1970 [153]": a,b,c,d,e,f,g,h,i,j"
1980 [153]
1990 [153]"und rechenoperationen
2000 print
2010 print": +,-,x,/
2020 [153]
2030 [153]"die zahlen sind maximal 4 stellig
2040 print
2050 print"---------------------------------------"
2060 print:print
2070 print"
2080 [153]" or--------------^
2090 print" [221] = [221]
2100 [153]" (NULL) (NULL)
2110 print" [221] = [221]
2120 [153]" (NULL)--------------(NULL)
2130 print" [221] = [221]
2140 [153]" /--------------exp
2150 print"
2160 [153]"
2170 return
2180 '
2190 'eingegebene gleichungen unloesbar
2200 '
2210 print"unloesbar !!!!"
2220 print"[146]weiter mit taste"
2230 geta$:ifa$=""then2230
2240 run
2250 ''''''''''''''''''''''''''''''''''
2260 ' '
2270 ' h a u p t - r o u t i n e '
2280 ' '
2290 ''''''''''''''''''''''''''''''''''
2300 '
2310 gosub 1940:rem bild-maske
2320 gosub 1190:rem
2330 gosub 1390:rem eingabe
2340 gosub 1540:rem
2350 gosub 1700:rem gleich. umformen
2355 gosub 2605:rem gleich. sortieren
2356 gosub 2700:rem 0 und 9 rausfinden
2360 fort=0to5
2365 poke52320+t,255
2370 ifmid$(gl$(t),1,1)="+"thenpoke52320+t,0
2375 next
2380 fort=0to5
2385 forx=2to13
2390 p=asc(mid$(gl$(t),x,1))-65
2395 ifp<0thenp=10
2399 poke52222+t*16+x,p:nextx,t
2400 p=0:ifw0$<>""thenp=p+1
2401 ifw9$<>""thenp=p+1
2402 poke829,p
2403 gosub 3005:rem aneup vorbereiten
2404 print" bitte warten"
2405 sys 12*4096:rem ******************
2406 if peek(828)=0 then 2550
2410 fort=0to8:e$=""
2415 forx=1to4
2420 b$=mid$(zi$(t),x,1)
2425 ifb$=" "thene$=e$+b$:goto 2450
2430 p=asc(b$)-65
2435 p=peek(52464+p)
2440 e$=e$+chr$(peek(52448+p)+48)
2450 nextx
2455 er$(t)=e$:nextt
2500 forn=0to8
2510 h=13+int(n/3)*65+n*5
2520 prints$tab(h)er$(n)
2530 nextn
2535 print" fertig ! "
2540 geta$:ifa$=""then2540
2545 run
2550 print"[145]tja...das ist mir doch etwas zu schwer."
2560 geta$:ifa$=""then2560
2565 run
2600 '
2601 ' gleichungen sortieren
2602 '
2605 e=0:fort=0to5
2610 ifmid$(gl$(t),1,1)="+"theng$(e)=gl$(t):e=e+1
2615 next:pl=e
2616 fort=0to5
2617 ifmid$(gl$(t),1,1)="*"theng$(e)=gl$(t):e=e+1
2618 next
2620 fort=0to5:gl$(t)=g$(t):next
2630 return
2690 '
2695 ' 0 herausfinden
2696 '
2700 w0$="":w9$=""
2701 fort=0topl-1:rem anzahl der + gl.
2705 a$=mid$(gl$(t),5,1):ifa$=" "then2750
2710 b$=mid$(gl$(t),9,1):ifb$=" "then2750
2715 c$=mid$(gl$(t),13,1):ifc$=" "then2750
2720 ifa$=c$anda$=b$thenw0$=a$:goto2750
2730 ifa$=c$thenw0$=b$
2740 ifb$=c$thenw0$=a$
2750 next
2770 goto 2800
2771 '
2772 ' 9 herausfinden
2773 '
2800 rem ifw0$=""thenreturn
2801 fort=0topl-1:rem anzahl der + gl.
2802 fors=1to3
2805 a$=mid$(gl$(t),6-s,1):ifa$=" "then2850
2810 b$=mid$(gl$(t),10+s,1):ifb$=" "then2850
2815 c$=mid$(gl$(t),14-s,1):ifc$=" "then2850
2820 ifa$=c$anda$=b$anda$<>w0$thenw9$=a$:goto2850
2830 ifa$=c$andb$<>w0$thenw9$=b$
2840 ifb$=c$anda$<>w0$thenw9$=a$
2850 nexts,t
2870 return
3000 '
3001 ' aneup vorbereiten
3002 '
3005 rem
3100 a$=n$:fort=1to10
3110 ifmid$(a$,t,1)=w9$thena$=w9$+left$(a$,t-1)+right$(a$,10-t)
3120 next
3130 fort=1to10
3140 ifmid$(a$,t,1)=w0$thena$=w0$+left$(a$,t-1)+right$(a$,10-t)
3150 next
3160 fort=0to9
3170 poke52464+asc(mid$(a$,t+1,1))-65,t
3180 nextt
3185 poke52352,0
3190 fort=9to1step-1
3200 poke52352+10-t,t:next
3205 return