Programmerare, skeptiker, sekulärhumanist, antirasist.
Författare till bok om C64 och senbliven lantis.
Röstar pirat.
2015-08-12
Version 0.9.2 av Gosbust finns nu att ladda hem. Tillåt mig presentera några exempel på vad aktuell version kan göra.
Det stora tillskottet handlar om stödet för arrayer. Kommandot ARRY tar ett namn (A-Z, A#-Z#, A$-Z$ eller A?-Z?) samt önskat antal element. 5 ger fem element med index 0-4.
ARRY A 5
Detta kolliderar inte med en eventuell enskild buffer som heter A. R$ och R$[3] lagras i olika minnesstrukturer. För att nå individuella element används hakparenteser. Detta skapar ett slumptal i arrayen A’s första element:
RAND A[0]
Om jag läser av element 0 borde jag se ett heltal, vilket som helst men troligen inte 0.
<<A[0]
Element 1 borde däremot fortfarande ha värdet 0, eftersom ingen tilldelning gjorts än.
<<A[1]
Om jag skulle önska ha ett slumptal i samtliga element i arrayen A, kan jag ersätta indexet med tre punkter:
RAND A[...]
Nu kan jag läsa av vilket element som helst (0-4) och få ett värde. Om jag skulle önska se samtliga element så kan jag skriva följande:
<<A[...]
Modulus kan inte appliceras på samtliga element i en array, så skulle jag önska att alla slumptal ska ligga mellan 0 och 9 kan jag skriva följande:
0>>I Mod: A[I]%10>>A[I] I++ I<10>>R? GOTO R? Mod
Om du använvänder konsollen så skulle bubbelsortering av 10 tal mellan 0 och 99 skulle se ut så här:
10 ARRY A 10 RAND A[...] 20 0>>I Mod: A[I]%100>>A[I] I++ I<10>>R? GOTO R? Mod 30 <<"Ej sorterat:" <<A[...] 40 0>>I 0>>J 50 Repeat: A[I]>A[J]>>S? GOSB S? Swap 60 I++ I>9>>I? GOSB I? NextOuter GOTO 1 Repeat 70 ShowResult: <<"Sorterat:" <<A[...] 80 QUIT 0 90 (Swap A[I]<>A[J] ) 100 (NextOuter 0>>I J++ J>9>>J? GOTO J? ShowResult )
Notera att QUIT 0 lika gärna kan ersättas med RTRN. Om callstacken är tom har dessa två kommandon samma betydelse. Men om man skulle vilja avsluta med en felkod så kan QUIT n användas.
(Om du läser in en fil istället för att använda konsollen behövs inte radnumren.)
Mycket nöje!
Categories: Geeky
Tags: Gosbust
Bjud mig på en kopp kaffe (20:-) som tack för bra innehåll!
Leave a Reply