图形计算器编程初探
班级:高2010级1班 姓名:王力博 指导教师:郑宏宝研究背景
图形计算器在研究函数,统计方面具有强大功能和很大的利用价值。但经过我几天的探索,我觉得,最吸引我的还是它所独有的编程功能。因此,我对这一功能进行了详细的探究,自己尝试编辑了一些程序,报告如下。
目的意义
通过简单的学习,我们就能够应用最基础的命令去创新;一方面锻炼自己的思维能力,使自己在做事时更加细致,另一方面可以编辑出一些更加复杂的,有实际应用意义的程序,为生活服务。
成果展示
一、学习简单命令
如:输入变量:Input 变量;“标题”;“变量名”;“注释”;0(初始值):
分支命令:1、Case
If...then...end
...
If...then...end
End: (连续判断一组)
2、If...Then...Else...End:
3、Choose 变量;“标题”;“选项
1”;“选项2”;...“选项n”:(选择)
循环命令:1、While...Repeat...Until...End:
2、Do...Until...End:
显示命令:1、Msgbox “文本”:(框显示)
2、Disp 2(行数);“文本”:(直接显
示,覆盖原内容)
绘图命令:1、Pixon(Pixoff) x;y:(打开关闭某个特定坐标的像素)
2、Arc x;y;半径;起始角;终止角:
(画弧)
3、Erase:(清屏)
4、Freeze:(暂停程序,用以固定图形使
之不消失)
这些都是基本命令,可能在后面的程序中会用到。
二、实践操作
第一个设计的是一个简单程序。如下:
Arc -2;1;1;0;2pi:
Arc 0;1;1;0;2pi:
Arc 2;1;1;0;2pi:
Arc 1;0;1;0;2pi:
Arc -1;0;1;0;2pi:
Freeze:
这个程序可以画出奥运五环并且使它停留,按任意键退出。
三、组合简单命令进行稍复杂的编程(包括设计程序,写入,调试)
我进行的是一个一元二次方程(ax^2+bx+c=0)求解器的编辑。
命令为:
INPUT A;””;”A”;””;O:
INPUT B;””;”B”;””;O:
INPUT C;””;”C”;””;O:
B^2-4AC→Q
IF A==0 AND B==0 AND C≠0 THEN
MSGBOX “NO REAL ROOTS”:
End:
IF A==0 AND B==0 AND C==0 THEN
MSGBOX “INFINITE REAL ROOTS”:
END:
IF A==0 AND B≠0 THEN
MSGBOX “X=”-C/B(注:引号外的变量显示的是变量的值):
END:
IF A≠0 AND Q>0 THEN
MSGBOX “X1=”(-B-√Q)/2A:
MSGBOX “X2=”(-B+√Q)/2A:
END:
IF A≠0 AND Q<0 THEN
MSGBOX “NO REAL ROOTS”:
IF A≠0 AND Q==0 THEN
MSGBOX “X1=X2=”-B/2A:
END:
灰色字部分是判断,红色是文本。程序框图如下:
四、对程序进行反思与后续加工
我在设计好并且试运行后,提出了几个问题:
1、 能否在输入完系数a,b,c以后预览方程?
2、 能否直接显示系数取代预览功能?
3、 能否再发现错误时倒回去重新输入,而不重启程序?
4、 怎样能在程序运行以后让它回到开头重新计算?
5、 怎样能使程序运行完以后自动清除a,b,c?
6、 怎样能随时退出程序?
7、 怎样能让使用者一目了然,知道如何使用?
本着这样的想法,我进行了很多实验最终确定了比较成熟的程序版本:
MSGBOX “AX^2+BX+C=0 EQUATION SOLVER”
1→R:
1→S:
ERASE:
CHOOSE S;”MENU”;”CHANGE A(A=”A”)”; ”CHANGE B(B=”B”)”; ”CHANGE C(C=”C”)”;”SOLVE”;”QUIT”: CASE
IF S==1 THEN
INPUT A;”INPUT A”;”A”;”PLEASE SET THE VALUE OF A”;O:
2→S
END
IF S==2 THEN
INPUT B;”INPUT B”;”B”;”PLEASE SET THE VALUE OF B”;O:
3→S
IF S==3 THEN
INPUT C;”INPUT C”;”C”;”PLEASE SET THE VALUE OF C”;O:
4→S
END
IF S==4 THEN
B^2-4AC→Q
IF A==0 AND B==0 AND C≠0 THEN
MSGBOX “NO REAL ROOTS”:
End:
IF A==0 AND B==0 AND C==0 THEN
MSGBOX “INFINITE REAL ROOTS”:
END:
IF A==0 AND B≠0 THEN
MSGBOX “X=”-C/B:
END:
IF A≠0 AND Q>0 THEN
MSGBOX “X1=”(-B-√Q)/2A:
MSGBOX “X2=”(-B+√Q)/2A:
END:
IF A≠0 AND Q<0 THEN
MSGBOX “NO REAL ROOTS”:
END:
IF A≠0 AND Q==0 THEN
MSGBOX “X1=X2=”-B/2A:
END:
DISP 1;”F5:NON-RESETING QUIT”:
CHOOSE R;”CONTINUE?”;”Y(RESET)”;”Y(KEEP ABC)”;”N(RESET)”:
IF R==1 THEN
0→A:
0→B:
0→C:
1→S
END:
END
IF S==0 OR S==5 THEN
3→R:
END
END:
UNTIL R==3 OR R==0 END:
IF R==3 THEN
0→A:
0→B:
0→C:
END:
此程序具有欢迎界面,有浏览变量,反复解,随时修改变量和随时退出的功能。
比起刚开始的简单顺序结构,这一个版本使用了一个大的选择结构(choose S,蓝色表示),因此决定使用者可以无序随意输入变量,选择解方程或者选择退出。循环结构的嵌套(褐色字),决定了程序可以反复使用。其后的一个选择结构(choose R,黄色高亮表示),决定着程序大循环的结束与否,即退出程序与否。红色的部分是注释,可以人为修改,它们的出现使程序更加人性化。
五、后续交流讨论
能不能加上图型功能?(即画出方程对应的函数图像)
三次及以上的方程怎么用程序解?
……
对于新的一系列问题,我还在慢慢的寻求改进方法。
教师点评
今年暑假我有幸与王立博同学一同参加了国家级课题“手持技术与中学数学新课程整合”的首期培训。这里的“手持技术”指的是图形计算器。把图形计算器引入数学学习中,为学生做数学,动手实践,从中感悟数学,提供了全新的移动实验室,有效改变了学生的学习方式。王立博同学经过短暂的培训与自身的不屑钻研,在图形计算器上取得了一些创新成果。到目前为止,除他之外,还没有哪一位中学生独立开发Aplet(课件平台),可以说,王立博同学已经成为了这方面的专家。我们期待着王立博同学在图形计算器方面能有更多的创新成果出现。