qbasic语言程序设计是微软开发的一个语言编程软件,有BASIC语言变种而来,小编带来的是其开发工具,虽然不能够编译成各种独立的可执行文件,但是源代码可以在集成开发魂晶中先被编译成中间代码,然后中间代码在IDE中被解释执行。qbasic被设计成用来替代GW-BASIC,并被集成在MS-DOS 5.0及其更高版本。
qbasic作为一种计算机高级语言,具有简单、医学、好用,被广大计算机用户所青睐,其中的表达式和数学中的表达式相似,语句也和自然语言相仿,极容易被初学者掌握和介绍,有好的可视化编辑界面加上强大的面向对象的编程能力及其网上发行和网上查询的功能,不仅能使用户方便轻松的编写出任何功能的应用程序,而且更好的适应了网络时代的到来。对于想要学习编程的用户或者想让孩子提前解除编程的家长,可以下载一个qbasic试试。
qbasic使用说明
qbasic是32位的程序,不过小编也准备了64位的环境内容,用户根据自身系统选择使用。
qbasic语法
扩充了变量和常量的类型
变量名长度:40个字符
增加了长整型、定长字符型变量
可定义数值常量、字符串常量
提供了新的选择结构
条件语句
IF <条件> THEN <语句组1> ELSE <语句组2>
多分支语句SELECT
改进了循环结构
增加以下两个循环语句:
【WHILE循环】
WHILE <条件>
<循环体>
WEND
【DO循环】
DO
WHILE <条件> <循环体>
LOOP
子程序和函数作为单独的模块
不需要行号
代码示例(赋值,求和运算,并显示结果)
LET A=10
LET B=20
LET C=A+B
PRINT C
在编写程序时为了节省时间,可以不用写LET;并且,PRINT在编写程序时直接用“?”代替。有一点非常重要,在参加竞赛时,程序第一行必须是CLS!
qbasic快捷键
F5:运行程序及继续运行被中断的程序;
Ctrl+Break:中断正在运行的程序;
Shift+F5:从第一条语句开始重新运行程序;
F4:当程序中断运行时,查看运行结果屏幕,再按一次F4则切换回代码屏幕;
F1:获得帮助。
F2:切换主程序或SUB、FUNCTION。
F9:增加断点。
Alt+Enter:全屏。
Shift+F5:在程序终止时重新从头执行。
Ctrl+Insert:选定文字后复制到剪切板(Ctrl+C无效)
Shift+Insert:将剪贴板中的文字粘贴。(Ctrl+V无效)
实例介绍
小编带来了一些有关于qbasic的实例,用户可以查看学习一下。
范例1:
菜场上一公斤香菇是7.5元,编一个程序,从键盘上输入重量,计算机自动算出其总价
INPUT X
SUM=7.5*X
PRINT SUM
END
范例2:
卖西瓜,10千克以下每千克1.4元,10千克以上每千克0.7元,输入要买多少千克(必须为自然数),输出需要多少钱。
INPUT X
IF X<>FIX(X) THEN ? "NO":GOTO 1
IF X>10 THEN SUM=10*1.4+(X-10)*0.7 ELSE SUM=X*1.4
PRINT SUM
END
范例3:
输入10个字母,比较大小,输出最大的一个
DIM A$(10)
FOR I=1 TO 10
INPUT A$(I)
NEXT I
B$=A$(1)
FOR I=2 TO 10
IF B$<A$(I) THEN B$=A$(I)
NEXT I
PRINT B$
END
范例4:
一个游戏:
CLS '清屏
LOCATE 5, 38 '定位到5,38
PRINT "Game" '显示
LOCATE 16, 34 '定位到16,34
PRINT "Press Enter" '显示
DO
LOOP WHILE INKEY$ = "" '暂停
DIM Name1$, Name2$, HP1, HP2, Temp$
CLS '清屏
LOCATE 8 '定位至第8行
PRINT " Input 1st player's name"; '输入玩家1的名字
INPUT Name1$
PRINT " Input 2nd player's name"; '输入玩家2的名字
INPUT Name2$
RANDOMIZE TIMER
HP1 = INT(RND * 50) + 50 '随机决定玩家1的HP
HP2 = INT(RND * 50) + 50 '随机决定玩家2的HP
PRINT STRING$(12, " ") + Name1$ + "'s HP is " + STR$(HP1) '显示玩家1的HP
PRINT STRING$(12, " ") + Name2$ + "'s HP is " + STR$(HP2) '显示玩家2的HP
PRINT " Press any key to contiune"
DO
LOOP WHILE INKEY$ = "" '暂停
DIM Row, Text$, Attack, I
Text$ = "n"
Row = 0
CLS
DO '循环
PRINT
PRINT Name1$ + "'s HP:" + STRING$(16 - LEN(Name1$), " ");
PRINT STRING$(INT(HP1 / 2), 2)
PRINT
PRINT Name2$ + "'s HP:" + STRING$(16 - LEN(Name2$), " ");
PRINT STRING$(INT(HP2 / 2), 2) '以上这几句是用图形来表示HP
FOR I = 1 TO 4
PRINT
NEXT '显示空行
Row = Row + 1 '回合数+1
PRINT STRING$(11, " ") + STR$(Row) + "."
PRINT STRING$(12, " ") + Name1$ + " now has HP " + STR$(HP1)
PRINT STRING$(12, " ") + Name2$ + " now has HP " + STR$(HP2) '以上几句显示回合数和HP数
DO
LOOP WHILE INKEY$ = "" '暂停
Attack = INT(RND * 20) '随机决定攻击点数
Text$ = STRING$(12, " ") + Name1$
Text$ = Text$ + " attack " + Name2$ + " " + STR$(Attack) '先想好要显示的文字
HP2 = HP2 - Attack '用玩家2的HP减去攻击点数
PRINT Text$ '显示文字
DO
LOOP WHILE INKEY$ = "" '暂停
Attack = INT(RND * 20) '随机决定攻击点数
Text$ = STRING$(12, " ") + Name2$
Text$ = Text$ + " attack " + Name1$ + " " + STR$(Attack) '先想好要显示的文字
HP1 = HP1 - Attack '用玩家1的HP减去攻击点数
PRINT Text$ '显示文字
IF HP1 <= 0 OR HP2 <= 0 THEN EXIT DO 如果玩家1或2的HP小于等于0就退出循环
DO
LOOP WHILE INKEY$ = "" '暂停
CLS
LOOP
IF HP1 <= 0 THEN PRINT STRING$(12, " ") + Name2$ + " win"
IF HP2 <= 0 THEN PRINT STRING$(12, " ") + Name1$ + " win"
IF HP1 <= 0 AND HP2 <= 0 THEN PRINT STRING$(12, " ") + "Double win!"