![f799630bd66b9d7db1203c8d9d18f9b5.png](https://i-blog.csdnimg.cn/blog_migrate/8084377cf31b706a48c58ef6e6fc91a1.jpeg)
若该文为原创文章,未经允许不得转载
原博主博客地址: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,又译培基),意思就是“初学者通用符号指令代码”,是一种设计给初学者使用的程序设计语言。
![197236829fbaa614790d845b37f85a0b.png](https://i-blog.csdnimg.cn/blog_migrate/5e901558f4f5c87528fe7911cb456c0f.png)
BASIC是一种直译式的编程语言,在完成编写后不须经由编译及连结等手续即可执行,但如果需要单独执行时仍然需要将其建立成执行档。
BASIC是由达特茅斯学院院长、匈牙利人约翰·凯梅尼(John G. Kemeny)与数学系教师托马斯·卡茨(Thomas E. Kurtz)共同研制出来的。1964年BASIC语言正式发布。第一个BASIC程序在1964年5月1日早上4时,由BASIC编译程序进行编译后成功运行。1975年,比尔·盖茨把它移植到PC上。
编译环境搭建
安装编译器
安装FreeBasic,主要用他来编译,如下图:
![7b868ab29e7456fd67167f437fb280fd.png](https://i-blog.csdnimg.cn/blog_migrate/8f5f8bdef804144304e5926cf4e23bf8.png)
安装完后,打开命令行:
![9851fc7895b8c8d36109172d2059c1fb.png](https://i-blog.csdnimg.cn/blog_migrate/0cf791e94f51951813bbf2cce0c8e96d.png)
跳转到开发目录即可,
安装编辑环境
安装PowerBasic,主要用他的编辑器
![5f9baab6d782e9450cedd4cfb960e076.png](https://i-blog.csdnimg.cn/blog_migrate/9e2eff40c1ac3b94e8b1813650c667a7.png)
打开编辑器:
![de3c7d98a567f862ed5dcaabab48a464.png](https://i-blog.csdnimg.cn/blog_migrate/b7267107133cabb2336f1226199543f7.png)
下载地址
CSDN下载地址:https://download.csdn.net/download/qq21497936/12538533
软件打包下载地址:QQ群1047134658(点击“文件”搜索“Basic”,群内与博文同步更新所有可开源的源码模板)
编译器编译时错误解决
编译时报错,如下图:
![12d7f1d24aa44460e9df71d7ff228ae8.png](https://i-blog.csdnimg.cn/blog_migrate/1440c5ba755d5e1d5554a71e6634dfac.png)
主要是因为使用了未定义的变量,其实是语言规则不同,因为使用qb语言,所以需要加上参数“-lang qb”,即可,如下图:
![ee36e0f9e56450c026f7ad2d4941e487.png](https://i-blog.csdnimg.cn/blog_migrate/7ec38edf81a953db733072b1cd39fe31.png)
运行环境
直接打开dos,跳转到目录,fbc命令会生成对应的exe直接运行即可。
基本语句
打印(PRINT)语句
示例1
PRINT "12345" PRINT "Hello world"
![c9da3d89ca858ba65a6feea9cdf23ebf.png](https://i-blog.csdnimg.cn/blog_migrate/c5256816cdeda4d473e6c7230e48fd4f.png)
![b6a4a3f54492bf8ad04512cd1be87b01.png](https://i-blog.csdnimg.cn/blog_migrate/93c9edc7b9d12e14258eefbae0e06060.png)
示例2
PRINT "12345";"54321" PRINT "Hello world"
![a0f0d70e6c3c6181232c67bd8b9ef52a.png](https://i-blog.csdnimg.cn/blog_migrate/40dbe0fdd601d2cd6fb976d5128af111.png)
![fb46f5aa8a983eb94770bb95a37d6a76.png](https://i-blog.csdnimg.cn/blog_migrate/3bae521458d3d5be07253840ab515a0a.png)
示例3
PRINT "12345" "54321" PRINT "Hello world"
![642ed731978400739fe760844bfe197b.png](https://i-blog.csdnimg.cn/blog_migrate/e734ca4d1de4e9574b98b59433a4c4c4.png)
![e73694d3791b27bda58579f966e16d2e.png](https://i-blog.csdnimg.cn/blog_migrate/edbeb6faf48bf8c50e929cbf4d6d45dc.png)
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
![6bf1359446bd4f7eaae6a81636664814.png](https://i-blog.csdnimg.cn/blog_migrate/b7fe45c1a41e069cc8a06e50a1a85ccd.png)
![00a26cecc0ab0462add484d8691d6d95.png](https://i-blog.csdnimg.cn/blog_migrate/3ee64e736df133111b912ec410bf734b.png)
置数(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
![20820827fd187a9b18b29a55bd8aa48a.png](https://i-blog.csdnimg.cn/blog_migrate/5178d584ccf69d261700d2c5616b97d2.png)
![58a6875c80b90e93f41defd7b28ad113.png](https://i-blog.csdnimg.cn/blog_migrate/ada05690afdb578683e999cc9d9ac049.png)
示例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
![466db49917706eb012bdbf37f6b38dfd.png](https://i-blog.csdnimg.cn/blog_migrate/a740b87afada4fac316bd2f5434565ae.png)
![a179c814041fa6079ae7f66e32f7d0ff.png](https://i-blog.csdnimg.cn/blog_migrate/1fe071d0892a2e43d68a802f7e41e25a.png)
示例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
![3d4efcca63fd05ad485723b5717d3fc4.png](https://i-blog.csdnimg.cn/blog_migrate/3371af571757e3f68581e007d000b5a2.png)
![673c186ec6dd3855dd1034e2bc6ee31c.png](https://i-blog.csdnimg.cn/blog_migrate/22cd2aab2964bc0ca507e7d06809a65a.png)
示例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
![541335eeac9a9cc6be5488bc5cf97e34.png](https://i-blog.csdnimg.cn/blog_migrate/06b1f262866cbeae4581d887ad98edfb.png)
![03956e14cbcb3731b2e5591702743419.png](https://i-blog.csdnimg.cn/blog_migrate/1f96ffc4a64367726c9026c806e875de.png)
示例4:读取数字时,同时使用“:”进行其他操作
DATA 10,100,1000 READ T1,T2:T3=T1+T2 PRINT T1 PRINT T2 PRINT T3 READ T3 PRINT T3 END
![a0fb04fe33e685e6c9cf39f73136eb26.png](https://i-blog.csdnimg.cn/blog_migrate/40f8b5ea270125cd81e6a99bf3676c8f.png)
![afcca0e0f7e558e8fc0bb58bb6fbb3bd.png](https://i-blog.csdnimg.cn/blog_migrate/03e90c947086d36fa60fe74462eb59e3.png)
示例5:读取字符串
DATA "aaa" READ A$ PRINT A$ END
![673bb1c91a1dde2aa7aa9a28fc450372.png](https://i-blog.csdnimg.cn/blog_migrate/149e96731324f88baabafe7e1ff28968.png)
![8ec518a6feee3d4e9c563948d4b2000d.png](https://i-blog.csdnimg.cn/blog_migrate/da934ee483402397d61e242f9c584b10.png)
赋值(LET)语句
(注意:字符串默认结尾为$,否则认为是整数)
示例1
LET A$="12345" PRINT A$ LET A=10 PRINT A PRINT A*10 END
![92b408e935cc678f1c233d2795a5c79c.png](https://i-blog.csdnimg.cn/blog_migrate/58e9e0a9fcb08663a92b4e43a79915fd.png)
![50a88d15a0d0ed43d55dbc9602db2c64.png](https://i-blog.csdnimg.cn/blog_migrate/3540aed93f92321e6f4299233aaf81eb.png)
键盘输入(INPUT)语句
(注意,经测试,变量定义为A$,有金钱符号结尾,才被认为是字符串,否则认为是数字,而且输入错误,数字则默认为0)
示例1
PRINT "PLEASE INPUT A NUM:" INPUT A PRINT "YOU INPUT NUM:";A END
![c28f8421236f287d80340c4538817504.png](https://i-blog.csdnimg.cn/blog_migrate/943ea6b38a9a5c60ed28c5dda175232c.png)
示例2
PRINT "PLEASE INPUT A NUM:" INPUT A$ PRINT "YOU INPUT NUM:";A$ END
![05c59373b4d3e8074f4d8166232eb302.png](https://i-blog.csdnimg.cn/blog_migrate/f2cdfdc2489966acb08eb0c8beb71132.png)
恢复数据区(RESTORE)语句
示例1
DATA 1,2,3,4 READ A,B PRINT A PRINT B RESTORE READ A,B PRINT A PRINT B END
![11bd7a01dd6623ee705fed4e7ee84439.png](https://i-blog.csdnimg.cn/blog_migrate/1063bc3741db1cf65037f32a00c46a4b.png)
![f6dc2a458fdb424aa0b2d6ed795fa61e.png](https://i-blog.csdnimg.cn/blog_migrate/5457da708cd678801181bba676615c9c.png)
无条件转移(GOTO)语句
(注意:之前的程序,每一行之前没有数字标签,使用GOTO加上去)
示例1
DATA 1,2,3,4 READ A,B 100 PRINT A PRINT B SLEEP PRINT "GOTO AGAIN" GOTO 100 END
![b04ab4f094af32eeac76d0b175859783.png](https://i-blog.csdnimg.cn/blog_migrate/24381c1e5de185fbdf279a26b11e4730.png)
![ffbbe1bb9a26961a815eb8e1551c9817.png](https://i-blog.csdnimg.cn/blog_migrate/e7265170725db14355a4b9f8ac42211f.png)
条件转移(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
![14338e2197042fd27ba150aca83ba7a8.png](https://i-blog.csdnimg.cn/blog_migrate/bbae0d8e5710e28f5bb60f8066b9cb68.png)
![e8c7b5a3bdee4e4c931713e7ed82f06a.png](https://i-blog.csdnimg.cn/blog_migrate/ac9174454c73dfbfdb3e3128b06e9eec.png)
注释(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
![786a2d98cb48d6ab64c027229de4811c.png](https://i-blog.csdnimg.cn/blog_migrate/45ce4724a63a9dedea70f23d0dd3d47a.png)
循环终了(NEXT)语句
与循环说明语句合成循环(FOR~NEXT)语句。
请参照“循环说明(FOR)语句”
循环说明(FOR)语句
示例1
INPUT N FOR I=0 TO N A=A+I PRINT "+";I;"=";A NEXT I PRINT A END
![6998df09118f8a203638f3b24602d675.png](https://i-blog.csdnimg.cn/blog_migrate/b825601797a5db80cd5a3c9234e6ae9a.png)
![a7cc5e9317d0c363eac320dc5f45aa81.png](https://i-blog.csdnimg.cn/blog_migrate/e21b4b3806511509455c941a061ec223.png)
暂停(STOP)语句
stop是直接退出程序了。
示例1
PRINT "12345" "54321" STOP PRINT "Hello world"
![57a8f35fffb63549ac71d92fac6ff811.png](https://i-blog.csdnimg.cn/blog_migrate/8aa6ac4cedaf4ddac47394fdae07e3ed.png)
![d35de13c1b8a95cb0671f3a4c2d32036.png](https://i-blog.csdnimg.cn/blog_migrate/ce321f62dab722abd1d6dc8ec3dd56c8.png)
转子(GOSUB)语句
示例1:目前未发现与GOTO语句的区别
DATA 1,2,3,4 READ A,B 100 PRINT A PRINT B SLEEP PRINT "GOTO AGAIN" GOSUB 100 END
![6c6ddfdcd372c051041ecb3c20688a32.png](https://i-blog.csdnimg.cn/blog_migrate/da35a2dac78f35049dfe04cd49eeb189.png)
![71dc2d2b2b990706f5996494a7781b5c.png](https://i-blog.csdnimg.cn/blog_migrate/f8dd0972e9f4c982078b5d6388fc78d3.png)
返回(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
![e7f88ac6157a75d37c322d40ef191084.png](https://i-blog.csdnimg.cn/blog_migrate/22adb18a6350c47d2de0755f71a07807.png)
![08bb009c4112bb5370d7981f75767803.png](https://i-blog.csdnimg.cn/blog_migrate/18a115f1a3cc78773afa06ae0b9b5ff3.png)
结束(END)语句
结束程序。
程序实例
预读入加法程序
DATA 10,20 READ A,B PRINT A;"+";B;"=";A+B
![220457c6c01b1fadc798109d6a0f3adb.png](https://i-blog.csdnimg.cn/blog_migrate/63dedcbcdd919e58460b6349f336f381.png)
![7f0e04bc7f7c4b3e5af417baed361b8e.png](https://i-blog.csdnimg.cn/blog_migrate/6847e5eaee38279b5597ff0385573215.png)
定义数组并赋值
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
![240ab185723436515e30b0d61c49d1ef.png](https://i-blog.csdnimg.cn/blog_migrate/c82195be3dbe0c5e0f5a464a1bd8f435.png)
![22c22e1c80f73e4422537b38f71e57bb.png](https://i-blog.csdnimg.cn/blog_migrate/e7c33e760d25077c07063dfe24cc54f7.png)
定义数组并循环赋值
(注意:数组定义,数组下标序号从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
![805bd0ca9f51beff736a392c2f107720.png](https://i-blog.csdnimg.cn/blog_migrate/feee3eb0cb4ff1090a9b6b5d8fa4b69e.png)
![5b46c1e66c227df670c6146e9e611137.png](https://i-blog.csdnimg.cn/blog_migrate/dbd7835b71c9163262967abc1a48db50.png)
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106850097