十进制BASIC
编程初学者手册
JIS Full BASIC 是,国际标准化机构(ISO)的BASIC語言国际标准的日本工业标准
(JIS)修订版本。Full BASIC比旧的基本BASIC(minimal BASIC),功能有了大幅的增强。
Full BASIC,对数值计算的准确度作了更严格的规定。同时,语法中增加很多逻
辑结构用于控制。你还可以写多个程序模块来分别实现的各项功能,使得大规模的程
序更易于实现和调试。
Full BASIC,具备丰富的图形支持功能。使用者可以自行设定需要的座标空间来完
成程序设计,与常贯使用的数学座标和和含义保持一致,不用转换,更易上手。
十进制BASIC,是以实现JIS Full BASIC的操作环境为目标,开发出来的程序语言
处理系统。不依赖设备的全屏幕编辑,可以无行号编辑等,很容易编写和调试程序。
本手册以十进制BASIC为基本环境,通过众多可马上使用的实例,为中小学生及没
有时间学习很多概念的爱好编程人士,提供简单易行编程的入门学习材料,从而掌握
BASIC及程序设计的基本方法,并解决学习和生活中实际问题。
十进制BASIC下载地址
http://hp.vector.co.jp/authors/VA008683/english/
整个软件不到1MB,不要安装,解压后即可使用。如果阅读英语有些困难,可到日文
版页面下载日文版,这样借助大多数能看懂的日语中文字可能会容易一些。
十进制BASIC创建了Open Source,可用在多种操作系统上使用,只有日文和英文版,
如你觉得这个BASIC很好,有时间和能力参与中文化,也可以参与。详见
http://en.sourceforge.jp/projects/decimalbasic/
本手册根据十进制BASIC网站的日文版《BASIC tutorial》整理, 作者白石和夫, 第
一稿于2000.4.6完成, 现行版为2008.3.13定稿。
翻译整理:stonec [@] 163 [.] com, 2010年9月
目 录
1 BASIC 的操作 ........................................................................................................................... 1
1.1 程序的输入和执行 ....................................................................................................... 1
1.1.1 十进制 BASIC 的启动 ...................................................................................... 1
1.1.2 装入程序和执行 .............................................................................................. 1
1.1.3 程序的输入 ...................................................................................................... 1
1.1.4 程序的编辑 ...................................................................................................... 1
1.1.5 BASIC 的退出 .................................................................................................. 1
2 BASIC 的计算功能 .................................................................................................................... 2
2.1 变量和数表达式 ........................................................................................................... 2
2.1.1 数值表达式 ...................................................................................................... 2
2.1.2 括弧 .................................................................................................................. 2
2.1.3 行号 .................................................................................................................. 2
2.1.4 变量 .................................................................................................................. 2
2.1.5 INPUT 语句 ...................................................................................................... 3
2.1.6 大数和小数的表示 .......................................................................................... 4
2.2 PRINT 语句 .................................................................................................................... 4
2.2.1 字符串 ............................................................................................................... 4
2.2.2 项目的分割符号(逗号与分号) .................................................................. 4
2.3 FOR~NEXT 结构语句 .................................................................................................... 5
2.3.1 FOR~NEXT ........................................................................................................ 5
2.3.2 FOR~NEXT 的应用(求数列的和,积) ...................................................... 6
2.3.3 FOR~NEXT 的数列计算 .................................................................................. 6
2.3.4 STEP .................................................................................................................. 6
2.4 DEF 语句 ........................................................................................................................ 7
2.5 内部函数 ........................................................................................................................ 7
2.5.1 平方根,绝对值 .............................................................................................. 7
2.5.2 三角函数 .......................................................................................................... 8
2.5.3 逆三角函数 ...................................................................................................... 8
2.5.4 INT 函数和 MOD 函数 ..................................................................................... 8
2.5.5 PI 常数等 ........................................................................................................ 9
2.5.6 随机数(RND 函数) ...................................................................................... 9
2.6 图形功能 ....................................................................................................................... 9
2.6.1 函数图形 .......................................................................................................... 9
2.6.2 SET WINDOW 语句 .......................................................................................... 10
2.6.3 PLOT LINES .................................................................................................... 10
2.6.4 参数方程表示的曲线 .................................................................................... 11
2.6.5 极座标方程曲线 ............................................................................................ 11
2.6.6 极座标 ............................................................................................................ 12
2.6.7 SET LINE COLOR ............................................................................................ 12
2.6.8 画点命令 ........................................................................................................ 12
2.7 数值计算 ..................................................................................................................... 13
2.7.1 平方根近似值 ................................................................................................. 13
2.7.2 BASIC 的数值 ................................................................................................ 13
2.7.3 误差 ................................................................................................................ 13
2.7.4 圆周率π ........................................................................................................ 14
2.7.5 PRINT USING .................................................................................................. 15
3 算法描述 ................................................................................................................................ 16
3.1 IF ~ END IF 结构语句 .............................................................................................. 16
3.1.1 IF ~ ELSE ~ END IF ................................................................................ 16
3.1.2 IF ~ ELSE IF ~ ELSE ~ END IF .......................................................... 17
3.1.3 一句式 IF 语句 ............................................................................................. 17
3.1.4 条件表达式的格式 ........................................................................................ 18
3.1.5 毕达哥拉斯数 ................................................................................................. 18
3.2 DO~LOOP 结构语句 .................................................................................................. 19
3.2.1 DO~LOOP ........................................................................................................ 19
3.2.2 DO WHILE~LOOP ............................................................................................ 19
3.2.3 DO UNTIL ~ LOOP ........................................................................................ 20
3.2.4 质因数分解 .................................................................................................... 20
3.2.5 EXIT DO .......................................................................................................... 21
3.2.6 数制变换 ........................................................................................................ 21
3.3 数组 ............................................................................................................................. 22
3.3.1 DIM 语句 ........................................................................................................ 22
3.3.2 数据分布表统计 ............................................................................................ 23
3.3.3 埃拉托斯色尼(Eratosthenes)筛法 ............................................................ 24
3.3.4 数组声明 ........................................................................................................ 25
3.3.5 多项式系数(杨辉三角形) ........................................................................ 25
3.3.6 MAT 语句(输入输出) ................................................................................. 26
3.3.7 选择法排序 .................................................................................................... 26
3.3.8 插入法排序 .................................................................................................... 27
3.4 例外状态处理 .............................................................................................................. 28
3.4.1 执行时的 ERROR .............................................................................................. 28
3.4.2 WHEN EXCEPTION 结构语句 .......................................................................... 28
4 程序模块化 ............................................................................................................................ 29
4.1 外部函数意义 .............................................................................................................. 29
4.1.1 程序模块化的必要性 ..................................................................................... 29
4.1.2 外部函数定义 ................................................................................................ 29
4.1.3 求 3 个数的最大公約数 ................................................................................ 30
4.1.4 函数的递归调用 ............................................................................................ 31
4.1.5 欧几里德算法(GCD) ...................................................................................... 31
4.2 外部绘图定义和外部子程序 ..................................................................................... 32
4.2.1 外部绘图定义 (PICTURE) ............................................................................ 32
4.2.2 外部子程序 .................................................................................................... 32
4.2.3 参数值返回 .................................................................................................... 33
4.2.4 不定方程式的整数解 .................................................................................... 33
5 数据的输入与输出 ................................................................................................................ 35
5.1 字符串 ........................................................................................................................ 35
5.1.1 字符串常量 .................................................................................................... 35
5.1.2 字符串变量 .................................................................................................... 35
5.1.3 字符串拼接 .................................................................................................... 35
5.1.4 STR$函数 ........................................................................................................ 35
5.2 DATA 语句 .................................................................................................................. 36
5.2.1 READ 与 DATA 语句 ......................................................................................... 36
5.2.2 READ IF MISSING THEN ................................................................................ 36
5.3 文件操作 .................................................................................................................... 37
5.3.1 OPEN 与 CLOSE 语句 ..................................................................................... 37
5.3.2 文件的读取 .................................................................................................... 37
5.3.3 文件的输出 .................................................................................................... 38
5.3.4 内部格式文件 ................................................................................................ 39
附录1 BASIC 的内部保留字 ........................................................................................... 40
附录 2 其他重要语句 ....................................................................................................... 40
附录 3 BASIC 的内部函数 .............................................................................................. 41
附录 4 扩展欧几里德算法 ............................................................................................... 42
1 BASIC 的操作
1.1 程序的输入和执行
1.1.1 十进制 BASIC 的启动
Windows 系统,在资源管理器中选择十进制BASIC的文件夹,双击图标
即可进入。
1.1.2 装入程序和执行
单击 可以装入BASIC程序。
十进制BASIC附带了很多示范程序,选择打开后,点击 就可以执行。
推荐: FUNCTION 文件夹下ABS.BAS,INT.BAS,MOD.BAS,SQR.BAS,TAN.BAS,
STATEMEN 文件夹下PRINT.BAS,PLOTPOIN.BAS,PLOTLINE.BAS 。
注意: Textfile 文件夹下包含一些产生其它文件的处理。请完全了解程序功能后再执行,有些
程序可能会花较长时间。在程序执行过程中如要中断按菜单下 按钮。
1.1.3 程序的输入
BASIC 启动后,空白屏幕就自处于可以输入程序状态。在输入程序语句后,系统会自动将 “机
器指令”或保留字自动转换成大写,这对初学者非常方便。
如果你想由键盘直接开始执, 请按F9键。
[其它常用键]
Delete 键 删除当前字符
Home 键 光标移至行的开头
Ctrl-Home 光标移至文本的开头
Insert 键 插入替换 输入模式切换
Back Space 键 删除前一字符
光标移至行末
End 键
Ctrl-End
光标移至文本的结束
1.1.4 程序的编辑
剪切、拷备、粘贴的功能均可以在编辑中使用。剪切、拷备前必须选择需要处理的文本。
编辑好的程序,可以选择[File]=>[Save]加以保存,可以存为*.BAS或*.TXT,建议用*.BAS。
1.1.5 BASIC 的退出
从Menu选择[File]的[Exit]即可。
1
2 BASIC 的计算功能
2.1 变量和数表达式
2.1.1 数值表达式
加法,减法,乘法和除法运算,分别用+,-,*,/表示。符号^表示幂运算,2*2*2 表示为2^3。
表达式的运算顺序,先执行幂运算,其次乘法和除法,然后加减去依次运行。同级运算符号从左到
右顺序。结果的显示PRINT语句来执行。
10 PRINT 2+3*4^2
20 PRINT 3/4*5
30 PRINT 2^4^5
40 END
10 行计算2+3×4
2
的值。
20 行计算3÷4×5 的值。
4
30 行计算 (2
)
5
4
的值(2
5
)。
2.1.2 括弧
运算顺序可以括弧进行调整,括弧可以2 重,3 重,・・・ 等,{ }与 [ ]必须( )
替换。表达式的负号(取反)必须置于左括弧前。
10 PRINT ((2+3)*4)^2
20 PRINT 3*(-4)
30 END
10 行,计算{(2+3)×4}2的值。
20 行,计算3×(–4) 的值。
2.1.3 行号
程序各行的最左边的数字表示行号。十进制BASIC可以省略行号。本手册保留行号只是为
了方便叙述讲解程序内容而已;十进制BASIC 完成的程序,建议省略行号。
2.1.4 变量
BASIC中,变量用于表示计算机内部数值的在内存中的存贮位置。可以使用A,B,C做变量
名。还可以用LEFT,RIGHT以及其它更长的名字。变量名的详细规则,参见相关资料。
可以使用英文的大写字母或小写字母作为名字,在程序中不区分变量名的大小写,就是
2
说,A 和a表示相同的变量。变量只有一个最新的值,并没有“记忆”曾经用过的值的功能,
换句话说,一但一个新值赋入变量,变量旧的值将不再存在,也不能再使用了。
变量的赋值使用LET语句。
10 LET x=10
20 PRINT 2*x^2+3*x+4
30 END
正如上面的例子,数值表达式中使用了变量名x,变量名代表是变量中存储的值。
LET语句书写格式,
LET 数值变量名 = 数值
LET语句执行时,= 右边的数值计算结果,被放在左边变量名的存贮空间中。
[Note] BASIC 中乘号不可省略。x*y表求x乘以y, 而 xy 与 x 一样,仅表示单一的变量名。
问题1: 以下程序的执行结果是什么?
10 LET a=10
20 LET a=a+1
30 PRINT a
40 END
十进制BASIC 中,有一种 单步执行 功能。按 图标
程序就可以一行一行地开始执行,如右图的画面所示,每一
下按Enter键或Ok按钮程序就执行一行。Debug 窗口内单行将
被执行的语句,以及执行过程当前步骤的各个变量的值。执
行一行观察变量的变化,利于程序的调试。另外,Debug窗口
下步的回放按钮 ,可以用作执行过程的回放。
2.1.5 INPUT 语句
程序执行时的变量动态赋值可用使用INPUT语句。INPUT 语句,输入多个变量时,变量间
名逗号分开。
下面的程序,输入两个变量的值。
10 INPUT a,b
20 PRINT a*b
30 END
上述程序执行时,将弹出上述输入窗口,输入两个变量值,并以逗号分开,最后按Enter
键完成输入。
3
2.1.6 大数和小数的表示
10 PRINT 1/7
20 END
执行结果为,
.142857142857143
就是说,在执行结果的绝对值<1的情形,小数点左側的0会作省略表示。又如
10 PRINT 2^100,2^(-100)
20 END
执行结果如下,
1.26765060022823E30 7.88860905221012E-31
分别表示1.26765060022823×10
,7.88860905221012×10
30
-31
。
2.2 PRINT 语句
2.2.1 字符串
PRINT 语句可以用来显示一个字符串。字符串的前后必须用引号(")围起。如
10 PRINT "ABC"
20 END
10 行如果改成 PRINT ABC,就变成打印 数值变量ABC 的值了。
2.2.2 项目的分割符号(逗号与分号)
PRINT 语句也可以控制输出显示的格式,这里对几种重要的控制加以说明。
PRINT 语句中,你可以写用逗号或分号分隔的多个项目。通过使用一个分号分隔的项目,
每个项目间留出定位空隙。通过使用逗号分隔的项目,每个项目占25倍数个字符位置。例如,
10 PRINT 3; 3^2, 1/3, 2*3
20 END
执行结果,
3 9 .333333333333333 6
通常,PRINT 语句执行后,都会换行。如果不需要换行,可在PRINT语句尾部加逗号或分
号。如,
4