2008年10月12日星期日

代码阅读方法

在信息学初赛笔试题目中,有看程序写结果和完善程序这两个形式的大题,这两道题目都需要参赛选手对于程序进行阅读,在读懂程序的基础上,总结程序编写人的意图和解决问题的方式,进而完成题目要求,得出答案。

阅读程序代码作为学习编写计算机程序的一个重要组成部分,在开阔视野,锻炼逻辑思维能力,熟悉计算机语言等方面都有很大的作用,我在培养学生阅读能力上采用以下办法。

语言初级学习阶段(语言基础学习完成前):由于学生还不具备阅读完整程序的能力,先就学生既得知识编写小段程序,让学生在阅读中熟悉计算机语言的语法。

语言中级学习阶段(语言基础学习已完成):学生在这时候已经可以看懂带有一定功能性的程序,让学生将程序按照功能及程序的步骤对程序进行分块阅读训练,使学生学会将复杂问题分解为若干简单问题,在细化解决的方法,渗透计算机问题解决的基本方法。

语言高级学习阶段(已经可以对简单的实际问题用计算机程序进行解决):学生在这个阶段已经具备了一定的解决问题的能力和编写代码的能力,倡导学生使用多种方法解决同一问题,然后互相交换代码,阅读后相互说说对方的思路与解决方法,达到算法多样化和训练快速接受他人思维方式的能力。

2008年10月2日星期四

Qbasic函数一览表

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFI45612mVtRsgDCtsRAoUhAJ9yQBPgy5A5UPxeHg+W878TbvGQFACggPBS
uPmUMDP0HerxAS2CQ3gG4sE=
=dKjy
-----END PGP SIGNATURE-----
*Qbasic函数一览表*
LET (赋值语句)
格式:[LET] 变量=表达式
功能:先计算右边表达式,然后将结果赋给左边的变量

SWAP (变量值交换语句)
格式:SWAP 变量1,变量2
功能:将变量1和变量2的值进行交换

PRINT (显示或输出语句)
格式:PRINT [表达式表][,|;]
功能:将指定的数据显示在屏幕上

LPRINT (打印语句)
格式:LPRINT [表达式表][,|;]
功能:将指定的数据用打印机打印出来

REM (注释语句)
格式1:REM 注释内容
格式2:' 注释内容
功能:在程序中加以解释来说明该程序段的作用

END (结束语句)
格式:END
功能:结束一个程序

CLS (清屏语句)
格式:CLS
功能:清除屏幕上显示的信息

PRINT USING (自选显示格式语句)
格式:PRINT USING 〈"格式字符串"〉;〈表达式表〉 [;]
功能:根据格式字符串规定的格式,将表达式表中的数据显示在屏幕上

LPRINT USING (自选打印格式语句)
格式:LPRINT USING 〈"格式字符串"〉;〈表达式表〉[;]
功能:根据格式字符串规定的格式,将表达式表中的数据打印在打印机纸上

STOP (暂停语句)
格式:STOP
功能:暂停程序的执行

SLEEP (定时暂停语句)
格式:SLEEP [数值表达式]
功能:暂停执行程序,时间为数值表达式所指定的数值(以秒为单位)

INPUT (键盘输入语句)
格式:INPUT [;]["注释内容"][;|,]变量[,变量]
功能:通过键盘给INPUT语句中的各个变量依次提供数据

LINE INPUT (行输入语句)
格式:LINE INPUT [;]["注释内容";]字符串变量
功能:将键盘上输入的字符串(最长为255个)赋给字符串变量

READ/DATA(读数/置数语句)
格式:READ 变量 [,变量]…


DATA 常量 [,常量]…
功能:READ语句将DATA语句中提供的数据依次赋给指定的变量

RESTORE (恢复数据区语句)
格式:RESTORE [行号|行标号]
功能:从指定的DATA语句行中读入常量

数值函数

SIN (正弦函数)
格式:SIN (X)
功能:求X的正弦函数值

COS (余弦函数)
格式:COS(X)
功能:求X的余弦函数值

TAN (正切函数)
格式:TAN(X)
功能:求X的正切函数值

ATN (反正切函数)
格式:ATN(X)
功能:求X的反正切函数值
SQR (平方要函数)
格式:SQR(X)
功能:求X的算术平方根值,其中X必须大于或等于零

EXP (指数函数)
格式:EXP(X)
功能:求以e为底的X次幂,e=2.718282

LOG (对数函数)
格式:LOG(X)
功能:求以e为底的自然数值,即In x 的值

SGN (符号函数)
格式:SGN(X)
功能:求自变量X的符号

ABS (绝对值函数)
格式:ABS(X)
功能:求自变量X的绝对值,即|X|

INT (取整函数)
格式:INT(X)
功能:取不大于X值的最大整数

FIX (截取整数函数)
格式:FIX(X)
功能:把一个带有小数的数去掉小数部分,不进行舍入,直接截取整数部分。自变
量X可以是任意数值表达式

CINT (转为整数函数)
格式:CINT(X)
功能:把一个带有小数的数转换成整数,对小数部分四舍五入

CLNG (转为长整数函数)
格式:CLNG(X)
功能:把自变量X转变为长整数

CSNG (单精度函数)
格式:CSNG(X)
功能:把数值X转变为单精度数,其中自变量X是一个数值表达式,使用该函数它将
被转换成单精度数

CDBL (双精度函数)
格式:CDBL(X)
功能:把数值X转变为双精度数,自变量X可以是任意数值表达式

RND (随机函数)
格式:RND(X)
功能:产生一个0与1之间的随机数

TIMER (?函数)
格式:TIMER
功能:从午夜开始计算秒数

ASCII (ASCII码函数)
格式:ASC(X$)
功能:返回字符串 X$ 第一个字符的ASCII代码

VAL (字符串转数值函数)
格式:VAL(X$)
功能:将字符串 X$ 转换成数值

LEN (测长函数)
格式:LEN(X$)
功能:测量字符串的长度,即字符串的字符个数

INSTR (子字符串检索函数)
格式:INSTR([N,] X$,Y$)
功能:返回字符串 Y$ 在字符串 X$ 中第一次出现的位置


屏幕显示格式中常用的三个函数
TAB (?函数)
格式:TAB(X)
功能:在指定位置X上显示或打印所需要的信息

SPC (?函数)
格式:SPC(X)
功能:空X个空格

SPACE$ (?函数)
格式:SPACE$(N)
功能:返回一个字符串,该字符串由N个空格组成


输入函数
INKEY$ (?函数)
格式:INKEY$
功能:从键盘上读一个字符

INPUT$ (?函数)
格式:INPUT$ (N[,[#] 文件号])
功能:返回从键盘或指定文件中读出的N个字符组成的字符串

CSRLIN (光标行座标函数)
格式:CSRLIN
功能:返回当前光标行座标位置

POS (光标列座标函数)
格式:POS(N)
功能:返回当前光标列座标位置

UBOUND;LBOUND (测试下标上、下界函数)
格式:UBOUND(数组[,维])
LBOUND(数组[,维])
功能:返回一个已定义数组中指定维的上、下界

FRE (测试空字节函数)
格式:FRE(X)
功能:返回空闲内存节数

GOTO
格式:GOTO 行标识符
功能:改变程序的执行顺序,无条件地转去执行GOTO后面所指的行标识符去执行

ON/GOOT
格式:ON 表达式 GOTO 行标识符表
功能:先计算ON后面的表达式的值,再根据计算结果,将程序转移到GOTO所指行标识
符表中的某个行标识符去执行

关系运算
= (等于)
> (大于)
>=(大于或等于)
< (小于)
<=(小于或等于)
<>(不等于)

AND(与)
OR (或)
NOT(非)
表: A B | NOT A | NOT B | A AND B | A OR B
1 1 | 0 | 0 | 1 | 1
1 0 | 0 | 1 | 0 | 1
0 1 | 1 | 0 | 0 | 1
0 0 | 1 | 1 | 0 | 0
逻辑运行顺序: NOT—AND—OR
()—算术—关系—逻辑

IF (条件语句)
单行 IF 条件语句
格式:IF 条件 THEN 语句序列1 [ELSE 语句序列2]
功能:首先计算条件的值,如果为真则执行THEN后的语句序列1,否则执行ELSE后
面的语句序列2

块结构 IF 条件语句
格式:IF 条件1 THEN
[语句块1]
[ELSEIF 条件2 THEN
[语句块2]
……
[ELSE
[语句块n]]
END IF

CASE (条件语句)
格式: SELECT CASE 测试表达式
CASE 表达式表1
[语句块1]
[CASE 表达式表2
[语句块2]]
……
[CASE ELSE
[语句块N]]
END SELECT
功能:根据表达式的值,从多个语句块中选择符合条件的一个语句块执行

FOR/NEXT(循环语句)
格式:FOR A=E1 TO E2 STEP E3
循环体
NEXT A
说明: FOR 语句为循环说明语句,它说明了循环的次数FOR TO STEP 为语句定义符
A--循环控制变量,可以用任一简单变量表示
E1--循环控制变量的初值
E2--循环控制变量的终值
E3--循环控制变量的增值,也称步长
NEXT 语句为循环终端语句,它与FOR语句必须成对出现 NEXT语句中的循环控制
变量必须与FOR语句中的一致
循环体由一条或多条语句构成,是被重复执行的部分

WHILE/WEND (循环语句)
格式: WHILE <条件>
循环体
WEND
说明: WHILE是循环的起始语句又称说明语句,它的作用是给出循环条件 WEND是循
环的终止语句.
<条件>代表一个逻辑条件,它可以是一个关系表达式也可以是一个逻辑表达式,
还可以是一个变量或常数


DO/LOOP (循环语句)
格式1: DO[(WHILE 或 UNTIL)条件]
循环体
[EXIT DO]
LOOP

格式2: DO
循环体
[EXIT DO]
LOOP[(WHILE 或 UNTIL)条件]
说明: 如果条件永远成DO-LOOP循环可能陷入"死循环"这时可用EXIT DO 来退出循环
DO循环可以嵌套,其规则与FOR-NEXT循环相同

字符串函数
CHR$ (字符函数)
格式:CHR$ (N)
功能:将ASCII码值N转换成它所表示的字符

MID$ (取中间字符串函数)
格式:MID$ (A$, N [,M])
功能:从字符串A$中,第N个字符起,取出M个字符

STRING$
格式1:STRING$(N, X)
功能: 产生N个ASCII码X所对应的字符.通常用在无法从键盘按输入的字符
格式2:STRING$(N, X$)
功能: 产生N个字符串X$中的第一个字符

OCT$ (十进制转八进制函数)
格式:OCT$ (X)
功能:将十进制数值转换成八进制字符串

STR$ (数值转换成字符串函数)
格式:STR$ (X)
功能:将数值数据转换成字符串数据

LTRIM$ (删除字符串左边空格函数)
格式:LTRIM$ (X$)
功能:删除字符串X$左边的空格

RTRIM$ (删除字符串右边空格函数)
格式:RTRIM$ (X$)
功能:删除字符串数据X$右边的空格

LCASE$ (小写函数)
格式:LCASE$ (A$)
功能:将A$中所有大写字母改成小写

UCASE$ (大写函数)
格式:UCASE$(A$)
功能:将A$中所有小写字母改成大写

TRIM$ (两头截空函数)
格式:TRIM$ (A$)
功能:截去字符串A$的头尾所有空格

LEFT$ (左取函数)
格式:LEFT$(A$,N)
功能:得到字符串A$最左边的N个字符

RIGHT$ (右取函数)
格式:RIGHT$(A$,N)
功能:得到字符串A$最右边的N个字符

HEX$(十进制数转换十六进制字符串)
格式:HEX$(N)
功能:将十进制数N转换成十六进制字符串

MKI$ (把整数转换为字符串)

IKL$ (把长整数转换为字符串)

MKS$ (把单精度数转换为字符串)

DATE$/TIME$ (取得系统的日期/时间)

GOSUB/RETURN (调用子程序语句和返回语句)
GOSUB (调用子程序)
格式: GOSUB<标号1>
功能:用于转移到子程序的入口语句去执行
RETURN (子程序返回语句)
格式:RETURN [<标号2>]
功能:用于子程序执行完毕从子程序返回,作为子程序的结束语句

DEF FN (用户自定义函数)
格式1: DEF FN <函数名>[(参数表)]=<表达式>
格式2: DEF FN <函数名>[(参数表)]
语句块
FN <函数名>=<表达式>
END DEF
功能: 定义一个用户自己的函数

SUB (过程定义)
格式: SUB 过程名[(参数表)][STATIC]
语句序列
END SUB
功能: 定义一个SUB过程

FUNCTION (过程定义)
格式: FUNCTION 过程名[(参数表)][STATIC]
语句序列
过程名=表达式
END FUNCTION
功能: 定义FUNCTION函数过程

DECLARE (过程说明语句)
格式: DECLARE [RUNCTION/SUB] 过程名[(参数表)]
功能: 对被调用的过程进行说明,对传递的自变量进行检查

DIM SHARED / COMMON SHARED (定义全局变量)
格试: DIM SHARED 变量名表 / COMMON SHARED 变量名表
功能: 将变量名表中的变量定义为全局变量

STATIC (定义局部变量)
格式: STATIC 变量表
功能: 在DEF FN 函数、FUNCTION 或 SUB 过程中把变量定义为局部变量

SHARED (共享变量)
格式: SHARED 变量[AS类型][,变量[AS类型]…
功能: 使主程序与某个过程共享变量

DIM (数组定义)
格式: DIM[SHARED] 变量 [(下标)][AS类型][,变量[(下标)][AS类型]]…
功能:说明变量或数组并分配存储空间

REDIM (改变分配给数组的空间)
格式: REDIM[SHARED] 变量 (下标)[AS类型][,变量(下标[AS类型]……
功能: 改变分配给动态数组的空间

OPTION BASE (?)
格式: OPTION BASE n
功能: 指定数组下标的缺省下界

OPEN (打开或建立文件)
格式1: OPEN 文件说明[FOR 方式1] AS [#] 文件号 [LEN=记录长度]
格式2: OPEN 方式2,[#] 文件号,文件说明[,记录长度]
说明:
1.在格式1中,"方式1"指定文件的输入/输出有以下几种方式:
OUTPUT 指定顺序输出方式
INPUT 指定顺序输入方式
APPEND 指定顺序添加方式
RANDOM 指定随机存取方式,也是缺省方式
2.格式2中的"方式2"指的是以下几种字符
O 指定顺序输出方式
I 指定顺序输入方式
R 指定随机读/写方式
A 指定顺序添加方式

CLOSE (结束文件的读/写操作)
格式:CLOSE [[#] 文件号 [, [#] 文件号 ]……]
功能: 结束文件的读/写操作

FREEFILE
格式:FREEFILE
功能:产生一个尚未使用的最小文件号

LOC
格式:LOC(N)
功能: 返回文件号为N的指定文件的当前位置

LOF
格式:LOF(N)
功能: 返回文件长度

PRINT#
格式:PRINT# 文件号,[USING 格式字符串;] 表达式[{,|;}]
功能: 把数据写入顺序文件中

WRITE#
格式:WRITE# 文件号,表达式表
功能: 把数据写入顺序文件中

INPUT#
格式:INPUT# 文件号,变量名
功能:从顺序文件中读出数据,并把读出的数据赋给相应的程序变量

LINE INPUT#
格式: LINE INPUT# 文件号,字符串变量
功能: 从顺序文件中读取一整行的数据,并赋给其后的字符串变量

EOF
格式: EOF(文件号)
功能:检查文件是否已读完

CLS
格式:CLS[0|1|2]
功能:清除部分或全部屏幕信息
说明: CLS 0 清除整个屏幕,系统缺省值
CLS 1 如果利用VIEW语句设置过图形视见区,则清除该区,否则清除整个画面
CLS 2 清除文本视见区,但屏幕的最底行仍保持不变

WIDTH
格式: 1. WIDTH 宽度
2. WIDTH LPRINT 宽度
功能: 语句格式1的功能是改变屏幕显示行的宽度,2的功能是改变打印机输出行的宽度

SCREEN
格式: SCREEN [模式][,颜色][,当前页][,可见页]
功能: 设置屏幕显示方式

PSET
格式:PSET [STEP](X,Y)[,颜色号]
功能:在指定的坐标位置上,以指定的颜色画一个点

PRESET
格式: PRESET [STEP](X,Y)[,颜色号]
功能:在屏幕的指定位置(X,Y)上画一个点

LINE
格式: LINE[[STEP](X1,Y1)]-[STEP](X2,Y2)[,[颜色号],[,B[F]][,类型符]
功能:在屏幕上画线段或矩形框

CIRCLE
格式: CIRCLE[STEP](X,Y)半径[,颜色][,起始角][,终止角][,纵横比]
功能: 以(X,Y)为圆心,用给定的半径画圆 椭圆或圆弧

DRAW
格式: DRAW 字符串
功能: 按语句中的字符串,逐步描绘出图形


COLOR
格式: 1. COLOR [前景色][,背景色][,边框色]
2. COLOR [背景色][,调色板]

PAINT
格式: PAINT [STEP](X,Y)[,颜色号][,边框色]
功能:给一个封闭的图形,涂上指定的颜色和边框色


VIEW
格式: VIEW [[SCREEN](X1,Y1)-(X2,Y2)[,[颜色号][,边框色]]]
功能:定义输出图形的屏幕尺寸

VIEW PRINT
格式: VIEW PRINT [顶行 TO 底行]
功能: 在屏幕上定义一个文本输出区域

WINDOW
格式: WINDOW[[SCREEN](X1,Y1)-(X2,Y2)
功能:定义当前视见区的逻辑尺寸

GET
格式: GET [STEP](X1,Y1)-[STEP](X2,Y2),数组名[(下标)]
功能:把屏幕上指定区域的图形映象存放到"数组"中

PUT
格式: PUT[STEP](X,Y),数组名[(下标)][,显示方式]
功能: 将GET语句所存入数组中的图形映象在屏幕所指定的区域重新显示出来

BEEP
格式: BEEP
功能: 使电脑喇叭发出"嘟"的一声

SOUND
格式: SOUND 频率,音长
功能: 使喇叭发出一定频率延时的声音

PLAY
格式: PLAY 命令字符串
功能: 用给定字符串表示的音乐演奏

转贴自:http://www.ahtczx.com/bencandy.php?id=291

--
马利
Richard Ma