标题：quick basic
概述
  Quick Basic 7.1编程窗口QBASIC是BASIC（Beginner's All-purpose Symbolic Instruction Code，初学者通用指令代码）语言的一个变种，由美国微软公司开发，1991年随MS-DOS 5.0推出。它不能被编译成独立的可执行文件，源代码在集成开发环境（IDE）中先被编译成中间代码，然后中间代码在IDE中被解释执行。它被设计用来代替GW-BASIC，并被集成在MS-DOS 5.0及其更高版本（包括Windows 95）中。QBASIC基于微软稍早推出的QuickBASIC 4.5，但去掉了后者的编译和连接部分。
微软在较新版本的Windows中不再集成QBASIC。不过Windows 98的用户可以在光盘的\\TOOLS\\OLDMSDOS目录中找到它，在Windows 95的光盘中，它存放在\\OTHER\\OLDMSDOS目录中。微软网站对它的技术支持只对MS-DOS的授权用户有效。
QBASIC拥有一个值得称道的集成开发环境和一个功能强大的集成调试器，这一切在那个时代让人耳目一新。直到今天，QBASIC依然是许多面向初学者的编程书籍的主题。
改进
和Quick BASIC类似而又不同于微软其他BASIC的早期实现版本的是，QBASIC是一种结构化的编程语言。和GW-BASIC相比，QBASIC的主要改进是： 
扩充了变量和常量的类型 
变量名长度：40个字符 
增加了长整型、定长字符型变量 
可定义数值常量、字符串常量 
子程序和函数作为单独的模块 
不需要行号
注：Quick BASIC简称QB，是一种编译型的语言；qbasic是一种解释型的语言，和Quick BASIC拥有一样的语法。同时，为了省时间，QBASIC中的PRINT 语句可以直接用？来代替。
常见语法
1.条件语句行if语句： IF 条件 THEN 语句组 ELSE 语句组2
块if语句
IF 条件 THEN
语句组 
ELSE 
语句组2 
END IF 
IF 语句还可如此运用
IF 条件 THEN
语句组 
ELSEIF 条件 THEN 
语句组2 
END IF 
多分支语句SELECT用法：
SELECT CASE 变量或字符串
CASE 情况1
语句组
CASE 情况2
语句组2
END SELECT2.循环结构语句1.计数循环
for 控制变量=初值 to 终值 <step 步长> 'step语句可有可无，若没有step语句，则步长为+1
语句体
next 控制变量
2.当型循环 
其格式有两种：
（1）
WHILE 条件 
循环体 
WEND 
（2） 
DO WHILE 条件 
循环体 
LOOP 
3.直到型循环 
DO
循环体
LOOP UNTIL 条件3.基本语句CLS：即Clean the screen，清屏幕 
输入语句：input“显示的内容”，变量名表
或者“，”改为“；”，改完之后输入时会多出一个“？”
输出语句：print “显示的内容”，变量名表1，“显示的内容”，变量名表2……
把，改为；时，两个内容间空1格，否则空14格左右，最后不加分号为换行。
赋值语句：<let> 被赋值变量=表达式 'let 可有可无
一维数组的定义：dim 变量名（下标）
二维数组的定义：dim 变量名（下标1，下标2）
代码示例（赋值,求和运算,并显示结果）
let A=10 
let B=20 
let C=A+B 
Print C4.变量变量长度小于等于40，不允许出现关键词，如Let
数：如15%、-32768、215654#、2.0158e+15、8.545646d+20、-18.75等，变量名为例如a的变量名
字符串：如“15%”、“abc”等，变量名为例如a$的变量名
补充：在QB中还可以几何画图，具体用法如下(详见QB内部帮助)
SCREEN 12'639*479 16色图形模式
CIRCLE(100,150),10,4'在x坐标100与y坐标150处画一个半径为10的颜色为4（红色）的圆。
SYSTEM5.简单的双重循环在冒泡排序程序的运用：CLS
DIM n AS INTEGER
INPUT n'几个数排序（0<n<32768）
DIM a(n)
FOR i = 1 TO n
INPUT a(i)
NEXT i
FOR i = 1 TO n - 1
FOR j = i + 1 TO n
IF a(i) > a(j) THEN SWAP a(i), a(j)
NEXT j
NEXT i
FOR i = 1 TO n
PRINT a(i)
NEXT i
END6.几种常见的运算语句及函数加运算：
AB之和=A+B
差运算：
AB之差=A－B
乘运算：
AB之积=A*B
除运算
AB商=A/B
乘方运算
A的B次方=A^B
开方运算
A开方=SQR(A)
交换函数
SWAP 值A，值B7.初学者的练习题1、输入20个数，求出它们的最大值、最小值和平均值。
2、在1——500中，找出能同时满足用3除余2，用5除余3，用7除余2的所有整数；
3、如果一个数从左边读和右边读都是同一个数，就称为回文数，例如686就是一个回文数?喑糖?000以内所有的回文数。
4、已知数列1、5、12、22、35、...?喑糖蟾檬?械那?0项。
5、输入一个大于1的整数，打印出它的素数分解式。如输入75，则打印："75=3*5*5"。 
6、输入10个正整数，计算它们的和，平方和；
7、输入20个整数，统计其中正、负和零的个数；
8、输出1——999中能被3整除，且至少有一位数字是5的数；
9、有一个六位数，其个位数字7，现将个位数字移至首位（十万位），而其余各位数字顺序不变，得到一个新的六位数，假如新数为旧数的4倍，求原来的六位数。
10、有这样的一个六位数字labcde，将其乘以3后变成abcdel，编程求这个数。
11、试找出6个小于160而成等差数列的素数。
1-1/3+1/5-1/7+……直到某一项的绝对值小于10的-6次方
附加： 
我们用一个正整数列来表示一段地方的高度，当一段地方的高度为一个逐一上升的序列时，
我们称它为一个阶梯，例如 4、5、6、7、8 是一个长度为 5 的阶梯。现在给定一个正整数列，
请找出它第一个最长的阶梯，并将其输出。如果一个阶梯也没有，输出“No”。
运行结果示例：
请输入数列的长度：8
请输入数列：2 3 2 3 4 4 5 6
结果为 2 3 4
快捷键
Ctrl+C+Break：中断正在运行的程序；
F5：继续运行被中断的程序；
Shift+F5：从第一条语句开始重新运行程序；
F4：当程序中断运行时，查看运行结果屏幕，再按一次F4则切换回代码屏幕；
F1：获得帮助。 
F8：单步运行
F9：断点（同QB stop 语句，按F5继续运行）
范例
【1】菜场上一公斤香菇是7.5元，编一个程序，从键盘上输入重量，计算机自动算出其总价
INPUT X 
zj=7.5*X 
PRINT zj 
END
【2】高精度乘法程序[1]​
CLS
INPUT a$
INPUT b$
la = LEN(a$)
lb = LEN(b$)
lc = la + lb
DIM a(la), b(lb), c(lc)
FOR i = 1 TO la
a(i) = VAL(MID$(a$, la + 1 - i, 1))
NEXT
FOR i = 1 TO lb
b(i) = VAL(MID$(b$, lb + 1 - i, 1))
NEXT
FOR i = 1 TO la
FOR j = 1 TO lb
x = a(i) * b(j): w = i + j - 1
c(w) = c(w) + x MOD 10
c(w + 1) = c(w + 1) + c(w) \ 10 + x \ 10
c(w) = c(w) MOD 10
NEXT
NEXT
WHILE c(lc) = 0
lc = lc - 1
WEND
FOR i = lc TO 1 STEP -1
PRINT USING "#"; c(i);
NEXT
END