若該文爲原創文章,未經允許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106850097
各位讀者,知識無窮而人力有窮,要麼改需求,要麼找專業人士,要麼自己研究
紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)
其他(編程相關)
前言
紅胖子來也!!!
Basic語言是很老的語言了,比VB(Visual Basic還老)。
BASIC
BASIC(Beginners’ All-purpose Symbolic Instruction Code,又譯培基),意思就是“初學者通用符號指令代碼”,是一種設計給初學者使用的程序設計語言。
BASIC是一種直譯式的編程語言,在完成編寫後不須經由編譯及連結等手續即可執行,但如果需要單獨執行時仍然需要將其建立成執行檔。
BASIC是由達特茅斯學院院長、匈牙利人約翰·凱梅尼(John G. Kemeny)與數學系教師托馬斯·卡茨(Thomas E. Kurtz)共同研製出來的。1964年BASIC語言正式發佈。第一個BASIC程序在1964年5月1日早上4時,由BASIC編譯程序進行編譯後成功運行。1975年,比爾·蓋茨把它移植到PC上。
編譯環境搭建
安裝編譯器
安裝FreeBasic,主要用他來編譯,如下圖:
安裝完後,打開命令行:
跳轉到開發目錄即可,
安裝編輯環境
安裝PowerBasic,主要用他的編輯器
打開編輯器:
下載地址
CSDN下載地址:https://download.csdn.net/download/qq21497936/12538533
軟件打包下載地址:QQ羣1047134658(點擊“文件”搜索“Basic”,羣內與博文同步更新所有可開源的源碼模板)
編譯器編譯時錯誤解決
編譯時報錯,如下圖:
主要是因爲使用了未定義的變量,其實是語言規則不同,因爲使用qb語言,所以需要加上參數“-lang qb”,即可,如下圖:
運行環境
直接打開dos,跳轉到目錄,fbc命令會生成對應的exe直接運行即可。
基本語句
打印(PRINT)語句
示例1
PRINT "12345"
PRINT "Hello world"
示例2
PRINT "12345";"54321"
PRINT "Hello world"
示例3
PRINT "12345" "54321"
PRINT "Hello world"
TAB(TAB)語句
PRINT語句中使用TAB語句就類似於使用TAB鍵。
TAB(1)和TAB(2)沒有起到作用
示例1
PRINT "123456789ANCDEF"
PRINT 1;TAB(1);2
PRINT 1;TAB(2);3
PRINT 1;TAB(3);4
PRINT 1;TAB(4);5
PRINT 1;TAB(5);6
PRINT TAB(3);"Y";TAB(9);"Z"
END
置數(DATA)語句
配合讀數語句使用,稱讀數據(READ/DATA)語句。
請參照“讀取READ語句”
讀取(READ)語句
READ是讀取data存儲的數據,並不是我們習慣所認爲的從屏幕上輸入,同時變量要先定義才能使用。
示例1:讀取數字
(字符串必須是$符號結尾)
DATA "12aaa345","11bbb11"
PRINT "READ ONE, SHOULD BE 12aaa345"
READ S
PRINT S
PRINT "READ ONE, SHOULD BE 11bbb11"
READ S
PRINT S
END
示例2:讀取字符串
DATA "12aaa345","11bbb11"
PRINT "READ ONE, SHOULD BE 12aaa345"
READ S$
PRINT S$
PRINT "READ ONE, SHOULD BE 11bbb11"
READ S$
PRINT S$
END
示例2:先讀取後置入數字
PRINT "READ ONE, SHOULD BE 12345"
READ S
PRINT S
PRINT "READ ONE, SHOULD BE 11111"
READ S
PRINT S
SLEEP
DATA "12345","1111"
END
示例3:讀取數字
DIM D1 AS INTEGER
DATA 20,10
PRINT "READ ONE, SHOULD BE 20"
READ D1
PRINT D1
PRINT "READ ONE, SHOULD BE 10"
READ D1
PRINT D1
SLEEP
END
示例4:讀取數字時,同時使用“:”進行其他操作
DATA 10,100,1000
READ T1,T2:T3=T1+T2
PRINT T1
PRINT T2
PRINT T3
READ T3
PRINT T3
END
示例5:讀取字符串
DATA "aaa"
READ A$
PRINT A$
END
賦值(LET)語句
(注意:字符串默認結尾爲$,否則認爲是整數)
示例1
LET A$="12345"
PRINT A$
LET A=10
PRINT A
PRINT A*10
END
鍵盤輸入(INPUT)語句
(注意,經測試,變量定義爲A$,有金錢符號結尾,才被認爲是字符串,否則認爲是數字,而且輸入錯誤,數字則默認爲0)
示例1
PRINT "PLEASE INPUT A NUM:"
INPUT A
PRINT "YOU INPUT NUM:";A
END
示例2
PRINT "PLEASE INPUT A NUM:"
INPUT A$
PRINT "YOU INPUT NUM:";A$
END
恢復數據區(RESTORE)語句
示例1
DATA 1,2,3,4
READ A,B
PRINT A
PRINT B
RESTORE
READ A,B
PRINT A
PRINT B
END
無條件轉移(GOTO)語句
(注意:之前的程序,每一行之前沒有數字標籤,使用GOTO加上去)
示例1
DATA 1,2,3,4
READ A,B
100
PRINT A
PRINT B
SLEEP
PRINT "GOTO AGAIN"
GOTO 100
END
條件轉移(IF ~ THEN或IF ~ GOTO)語句
示例1
DATA 1,2,10
READ A,B,C
100
PRINT A*B: A=A*B
IF A<C THEN GOTO 100
PRINT A;">";C
END
註釋(REM)語句
示例1
DATA 1,2,10
READ A,B,C
100
REM "123456"
PRINT A*B: A=A*B
IF A<C THEN GOTO 100
PRINT A;">";C
END
循環終了(NEXT)語句
與循環說明語句合成循環(FOR~NEXT)語句。
請參照“循環說明(FOR)語句”
循環說明(FOR)語句
示例1
INPUT N
FOR I=0 TO N
A=A+I
PRINT "+";I;"=";A
NEXT I
PRINT A
END
暫停(STOP)語句
stop是直接退出程序了。
示例1
PRINT "12345" "54321"
STOP
PRINT "Hello world"
轉子(GOSUB)語句
示例1:目前未發現與GOTO語句的區別
DATA 1,2,3,4
READ A,B
100
PRINT A
PRINT B
SLEEP
PRINT "GOTO AGAIN"
GOSUB 100
END
返回(RETURN)語句
配合轉子語句使用,調用子程序。
數組說明(DIM)語句
定義數組,定義的數組下標從1開始。
示例1
DIM A(6)
DATA 1,2,3,4,5,6
READ A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(0),A(1),A(2),A(3),A(4),A(5),A(6)"
PRINT A(0),A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(1),A(2),A(3),A(4),A(5),A(6)"
PRINT A(1),A(2),A(3),A(4),A(5),A(6)
PRINT "A(0);A(1);A(2);A(3);A(4);A(5);A(6)"
PRINT A(0);A(1);A(2);A(3);A(4);A(5);A(6)
PRINT "A(1);A(2);A(3);A(4);A(5);A(6)"
PRINT A(1);A(2);A(3);A(4);A(5);A(6)
END
結束(END)語句
結束程序。
程序實例
預讀入加法程序
DATA 10,20
READ A,B
PRINT A;"+";B;"=";A+B
定義數組並賦值
DATA 10,20,30,40
DIM D$(4)
READ D$(1),D$(2),D$(3),D$(4)
PRINT D$(1),D$(2),D$(3),D$(4)
END
定義數組並循環賦值
(注意:數組定義,數組下標序號從1開始,目前普遍從0開始)
DATA 6
DATA 0.01,0.01,0.01,0.02,0.02,0.2,0.03,0.03,0.03,0.04,0.04,0.04,0.05,0.05,0.05,6.1,6.2,6.3
READ M0
DIM T0(M0+1),D0(M0),J0(M0)
FOR M=1 TO M0
READ T0(M),D0(M),J0(M)
NEXT M
FOR M=1 TO M0
PRINT "M=";M;",";T0(M);",";D0(M);",";J0(M)
NEXT M
END
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106850097