?? teach.txt
字號:
應文檔可能存在錯誤,最新文檔請訪問我們的網址
http://redboy.512j.com
http://202.113.13.169/site/redboy/gba
RBASIC編程指導
0.相關說明:
0.1 語句行
RBASIC語句行由行號與語句構成,如 10 cls.語句行最大長度為80.
語句行中可包含多條語句,和語句由:分開。如 20 locate 2,3:print A$.
注意:由于設計上的缺陷,如果多條語句同行,語句中不能有無參數的語句,
否則可能會報錯,如 10 cls:printf "RBASIC".
0.2 數學運算
RBASIC可對任意正確的數學表達式進行運算.系統提供了6種基本運算:
+ - * / ^ %.其中^表示冪運算,如2^3=8. %是模除運算,如4/3=1.
其中,^運算優先級最高,* / % 次之,+ -最后。運用括號()可改變運算
優先級.
數學表達式可以數字,運算符,括號,函數(包括自定義函數),變量組成,如:
1+2*5+(2+sin(3+x))*LEN(A$).如果x=1,A$="ADB",則上面的表達示的值為:
12.72959251.
0.3 比較運算
RBASIC共提供6種比較運算,分別為: >,<,>=,<=,=,<>,即:大于,小于,大于
或等于,小于或等于,等于,不等于.其返回值為1(真)或0(假).
0.4 邏輯運算
RBASIC提供三種邏輯運算:NOT,AND,OR.優先級依次遞減。
邏輯表達式可以比較運算,變量,括號組成,如:
1>2 OR A=B AND C AND NOT (23+B>M || LEN(A$))
注: 比較運算與邏輯運算用于條件判斷,不能參加數學運算.但比較運算與邏輯運算
式中可包含數學運算,反之則不可.
1. 常量
RBASIC中規定了兩種常量:數字常量與字符串常量。字符串常量由"內容"
表示,如"ABCDFRG".數字常量以10進制表示,如1.234E34.
2. 變量
RBASIC共定義了三種變量:整形變量,實形變量和字符串變量。
整形變量范圍:-4294967296~4294967296,整形變量由#標識,如NUM#
實型變更范圍:-1.0e300~1.0e300,指數范圍:-300~300,12位有效數字。
字符串變量最大長度:80,字符串變量由$標識,如WORD$.
變量名不區分大小寫.可由字母,數字和下劃線組成,但變量名第一個字符必須
為字母。變量名不能與RBASIC的關健字及標準函數名相同。如無標識,變量將被
視不實型變量。不同形式的變量可以同名,如A$,A#,A.
3. 數組
RBASIC提供實型變量和整型變量的一維數組,數組由DIM定義。
如 DIM A[10],DIM B#[12] 分別表示定義一個含有10個元素的實型數組A和定義
一個含12個元素的整形數組B.數組定義后,數組名[N]就表示數組的第N個元素,
可以對其進行讀/寫值。
字符串變量不提供數組,但可以數組的形式對其某個字符對其單獨操作。如:
A$[2]="A"表示將字符串A的第二個字符置為A.
2. 標準數學函數
RBASIC提供了豐富的數學函數。可以用于數學運算。
2.1 SIN(x),COS(X),TAN(X) 三角函數,X以弧度表示。
2.2 ARCSIN(X),ARCCOS(X),ARCTAN(x) 反三角函數,返回值以弧度表示
2.3 LOG(X),LN(X) 常對數函數與自然對數函數
2.4 POW(X),EXP(X) 10的指數函數與E的指數函數
2.5 SINH(X),COSH(X),TANH(X) 雙曲線函數
2.6 SQR(X) 開方運算
2.7 ABS(X) 絕對值運算
2.8 SGN(X) 取符號運算,正數返回1,負數返回-1,零返回0
2.9 INT(X) 取整函數。
2.a RND(X) 隨機數函數,返回一個小于X的非負數
2.b TIME(X) 取系統時間,返回值為當前系統時間與X的差。
2.c MAX(x,y) 取x,y的最大值。
2.d MIN(X,Y) 取X,Y的最小值
2.e RGB(R,Y,B) 求紅黃藍分量分別為R,Y,B的顏色值。可用于著色.
2.f CALCU(exp) 對表達式EXP運算并返回結果。exp為字符串形式。
數學函數可嵌套使用。如:sin(cos(x)).
3. 統計函數:
3.1 AVER(arratname[]) 統計函數,返回數組各元素的平均值。
請注意格式!如VAR(A[]),VAR(B#[]).
3.2 VAR(arrayname[]) 統計函數,返回數組方差.
3.3 SORT arrayname[],對數組各元素進升序排序。
4. 字符串函數
RBASIC同樣也提供了強大的字符串處理函數.
4.1 LEN(str) 返回字符串長度.
4.2 STR$(x) 將X的值轉化為字符串
4.3 VAL(str) 與STR$相反,將字符串轉化為數字
4.4 LEFT$(str,num),RIGHT$(str,num),MID$($str,loc,num) 取子串
str是母串,num表字串長度,loc表子串在母串的開始位置。
如:A$="ABCDEFG"
則 LEFT$(A$,3)的值為"ABC",RIGHT$(A$,3)的值為"EFG",
MID$(A$,2,3)的值為"BCD".
4.5 CHR$(num) 得到ASCII碼值為num的字符。如CHR$(48)得到字符"0".
4.6 ASC(str) 求字符串首個字符對應的ASCII碼值
4.7 STRING$(n,A$) 產生n次重復A$的字符串
4.8 REVERSE$(A$) 取得A$的顛倒字符串
4.9 UPSTR$(A$)/LOWSTR$(A$) 取得A$的大/小寫字符串
4.a REPLACE$(str$,index$,re$) 將str串中的index串用re串替換
如REPLACE("REDBOYBASIC","REDBOY","R") 返回的是"RBASIC"
4.b COVER$(A$,B$,loc) 以覆蓋模式在A串的loc號位置插入B串
4.c CVSTR$(A$,B$,loc,n) 將A串中第LOC個位置起的n個字符用B串代替
4.d INSERT$(A$,B$,loc) 以插入模式在A$的loc號位置插入B串
4.e NOBLANK$(str) 去除字符串中所有空白
4.f TROP$(str) 去除字符串中的連續空白
4.g CAT$(A$,B$) 將A串與B串合并為另一字符串
4.h CMP(A$,B$) 按各字符的ASCII大小比較兩字符串的大小.返回值為i,0,-1.
4.i STRMV$(str,dre,step) 將字符串str循環移動,dre為0表右移,為1時左移.
step表位移量.
注意,各字符串函數并不改變作為參數的字符串內容。如執行
B$=STRMV(A$,1,1)后,A$的內容并沒有改變,而是將相關內容賦與B串.字符串函
數也同樣可嵌套使用。
5 繪圖函數
5.1 LINE X1,Y1,X2,Y2,color,mod 畫直線
(x1,y1),(x2,y2)為直線兩端點坐標
5.2 BOX x1,y1,x2,y2,color,mod 畫矩形
(x1,y1),(x2,y2)分別為矩形左上角與右下角坐標
5.3 CIRCLE x,y,r,color,mod 畫圓
(x,y)為圓心坐標,R為半徑
5.4 DRAW x,y,color,mod 描點
注:color為繪圖顏色,取值范圍為0-32767,也可以用紅黃藍分量RGB(R,Y,B)表示。如:
DRAW 100,100,RGB(30,0,21),0.
紅黃藍分量取值范圍為0-31,分別表示各色素的色深.
坐標取值范圍:X 0-239; Y 0-159
MOD為繪圖模式,取值范圍為0-5.下面為MOD值與繪圖模式的對應關系:
MOD=0 覆蓋模式描點,矩形和圓為空模式(只含邊框)
MOD=1 覆蓋模式描點,矩形和圓為實模式
MOD=2 與模式描點,矩形和圓為實模式
MOD=3 或模式描點,矩形和圓為實模式
MOD=4 異或模式描點,矩形和圓為實模式
MOD=5 非模式描點(反色),矩形和圓為實模式
5. 輸入輸出及屏冪控制語句
5.1 PRINT 屏冪輸出
在當前光標位置顯示字符或者數字,一個PRINT可顯示多個字符和數字,顯示多個字符或
數字時,可用";"或者","分開,如 print A$,"1234",1+34,"sin(23)=";sin(23)
";"表示前后兩次輸出無間隔,用","時則前后兩次輸出之間有兩個字符的間隔.
5.2 LOCATE X,Y 設置當前光標語句
X取值范圍:0-29 Y取值范圍:0-15
5.3 WRITE 自由輸出語句
格式:WRITE X,Y,COLOR,STR
此語句的功能和PRINT差不多,但只能用于顯示單個字符串(不過可以顯示中文咯^-^).
X,Y為字符顯示的坐標,其取值范圍為:x 0-239;Y 0-159(比PRINT自由吧),也就是說你可以
在屏冪的任何位置顯示字符。CORLOR為字符的顏色,可以用RGB(R,Y,B)的形式給出.
5.4 INPUT 輸入語句
格式:INPUT 變量名
可以通過按鍵輸入信息。不過一個INPUT只能輸入一個字符串或者數字。
5.5 INKEY$ 讀取按鍵函數
格式:INKEY$(MOD)
讀取按鍵值,返回的是字符。MOD=0時,機器會一直等待外部按鍵.MOD為正時則不等待,如果
有按鍵,則返回按鍵對應的字符,否則返回空值.
5.5 GETKEY
格式:GETKEY(MOD)
與GETKEY$同,不過返回的是數字而非字符
5.6 COLOR 設置字符顏色語句
格式:COLOR color 設置由PRINT顯示的字符顏色,color可由數字或RGB(R,Y,B)指出.
5.7 SCREEN 設置背景顏色
格式:COLOE color
5.8 CSRLIN
格式 CSRLIN(NUM) NUM值任意,返回當前光標Y值.
5.9 POS
格式 POS(NUM) 返回當前光標X值
5.a GETBG(),GETCOR() 返回當前背景/字符顯示顏色
5.b GETPET(x,y) 返回屏冪坐標為(x,y)的點的顏色.
5.c CLS 清屏
6.賦值語句
6.1 LET 基本賦值語句,如 LET A$="ADBG", LET B=12.3, LET C[3]=12 ...
LET通常可以省略,如 A$=B$與LET A$=B$等價.
6.2 DIM 定義數組函數,如 DIM A[12].
DIM 可連續定義多個數組,各數組之間用','號分開,也可以組數組賦初值.如:
DIM A[3]={3,5,6},B[4]
7.循環語句
7.1 FOR-NEXT
格式:FOR VAR=BE TO ED STEP SP
LINE1
...
NEXT
其中,VAR為變量名(只能是實型變量!),BE為初值,ED為終值,SP為步長. STEP可以省略,此時
步長使用默認值:1或-1(BE<ED時為1,反之為-1).
每執行一行循環體,循環變量按步長遞增(減),當循環變量的值不在(BE,ED)或(ED,BE)之間時,
則停止循環而接著運行NEXT后面的語句.
7.2 WHILE-WEND
格式 WHILE EXP
LINE1
...
WEND
當邏輯表達示EXP為真時,運行循環體內的程序,否則運行WEND后面的語句.
注:循環語句可以嵌套,但要注意次序。由于設計上的缺陷,無論條件是否滿足,FOR-NEXT與
WHILE-WEND循環體內的語句在開始的時候都會執行一次,編程的時候請特別注意運用適當的方法
避免這種情況造成的不正確執行。
8.轉子與分支語句:
8.1 GOSUB 轉子語句
格式:GUSUB LINE 其中LINE是要轉入子程序的行號。該行號應該存在,且在子程序中該RET語句
返回.
8.2 RET 子程序返回語句
格式:RET 只要在調用GOSUB語句后,RET程序才能讓程序返回轉子語句處接著運行.
8.1 GOTO 無條件轉移語句
格式:GOTO LINE 其中LINE是要跳轉到的行號,該行號應該存在,否則會出錯.
8.2 ON 條件分支語句
格式:ON VAR GOTO/GUSUB LINE1,LINE2,.....
其中VAR是一個變量或者數字表達示,當其值分別為1,2,3,4..的時候跳轉/轉子到對應該的行號
LINE1,LINE2,LINE3...處運行
9.IF 條件判斷語句:
IF EXP THEN ... [ELSE ...]
其中EXP為邏輯表達示,當其為真時執行THEN后面的語句,否則執行ELSE后面的語句.ELSE為可選項。
如果要執行多個操作,各操作以:分開,并包含在同一括號內,如:
IF A>10 (A=A+1:GOTO 30) ELSE A=A-1
a.DEAMON-DEND 伺機守候語句
格式:DEAMON count,freq
LINE1
...
DEND
此語句可以讓指定的語句行在指定的時間獨立運行.其中count為運行的次數,其值為1-65535,freq為
運行頻率,即指定的語句行在freq秒的時間間隔內運行一次。DEAMON與DEND中間的語句就是指定重復
運行的語句.
DEAMON指定的語句將獨立于其它語句行,無論當前程序運行到哪里,只要時間間隔一到且count值
為正,DEAMON-DEND體指定的語句將準時運作而不影響當前程序的運行.
b.置/讀/清數據語句
b.1 DATA 置數據語句
格式:DATA DAT1,DAT2,....
其中DATn可以為數字,字符串或者表達式,DATA語句可將這些數據的值保存在數據區然后供
READ語句批量讀取.
如:DATA 123.3,"AEDHJ",34,"HJKG".
在RBASIC中,數字型與字符型的數據存放在不同的區域。因些在讀數據的時,不必考慮置數據的
先后順序而分別對數字和字符讀取。
b.2 READ 讀數據語句
格式:DATA VAR1,VAR2,VAR3....
其中VARn為變量名,變量可以是三種變量中的任意一種或多種,也可以是數組元素.
如:READ A[1],M$,B 分別從數據區內讀取相應的內容并寫入這三個變量.在讀取數據的時候,
相應的指針會指向后一個數據,如果數據區無數據或者數據已經讀完,則不能再繼續用READ
讀取數據.
b.3 RESTORE
格式:RESTORE NUM/STR
當要重復讀取數據區的數據時,應用RESTORE語句將相應的數據指針復位。
RESTORE NUM將數字型數據區指針復位,RESTORE STR則是復位字符開型數據區指針.
數據區指針復位后,可對數據區數據重新讀入
b.4 CLEAN
格式:CLEAN NUM/STR
當數據區內數據無用處時,可用CLEAN語句將其清除,以節省內存.另一方面也可以動態載入
數據
c.DEF 自定義函數
RBASIC允許用戶自行定義數學函數,函數定義后,可以用于數學運算.
格式:DEF FNAME(p1,p2,p3,...)=exp
其中FNAME為自定義函數名,其命名與變量命名相同。pn為參數名,參數名只能由單個字母表示,
如:x,y,z等等.參數個數可變,在1個到8個之間,參數之間應由,號分隔.exp為函數的表達式.
例: DEF myfun(x,y,z,a,b,c)=sin(x/a)+cos(y/b)+tan(z/c)
d.其它
END 程序結束語句,REM 注釋語句,STOP 暫停語句,SYSTEM,NEW 清空所有變量和程序
LOAD 裝載語句.LIST列語句
e.文件操作函數
暫不支持.
本軟件尚未開發完全,可能存在諸多的錯誤,期待您的指導。同時,敬請關注完全版本。
由于動態分配內容存在的缺陷,在定義數組后可能會引起一些錯誤(是指重復運行多次)。
現已經找到了解決方案但未實施,在完全版中將徹底解決這個問題)
完全版本新功能(預定)
1.完善的LOAD,NEW,STOP,CONT(繼續運行STOP引起的中斷),LIST,EDIT命令功能
2.更為方便快捷的INPUT輸入功能.(方案已經的制定)
3.超長文本顯示(TEXT)功能
4.音樂播放功能(PLAY)
5.圖片顯示功能(IMAGE)
6.屏冪保護與恢復功能(SVSCR,LDSCR)
7.文件讀取功能(OPEN,FREAD,GET,CLOSE)
8.豐富的系統調用功能(CALL)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -