图形计算器之人工智能.docx
《图形计算器之人工智能.docx》由会员分享,可在线阅读,更多相关《图形计算器之人工智能.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图形计算器之人工智能 在接触CASIO公司的图形计算器Classpad 330的三个月里,我们通过研究发现Classpad的编程功能真的很强大,简直就是一个可以随身携带的Visual Basic语言编程器,同时,也是因为一次偶然的机会,在了解到iphone4s的siri语音控制功能给人们所带来的便利之后,我便有了编一个人工智能对话程序的想法。【探究目的】 利用图形计算器的编程功能,在机器上实现一个便利的人工智能对话程序,从而对计算机算法以及相关知识有一个深入的认识。【探究过程】说起人机智能对话,我最先想到的是这样一个简单的程序:Lbl r 设置循环点r Inputstr x, Hello! 输
2、入语句,保存至x变量 If x=m Then Print n 输出变量n Ifend Inputstr x,next talk? ,next talk Goto r 前往循环点r(其中m为预设问题,n为预设回答)通过判断输入问题是否与预设问题等价,来进行回答。有了这个基础,我便有了信心,开始扩大这个数据库的容量,而dt()这个子程序就是那个时期的产物。可是很快,我就遇到了困难,如果要实现日常的对话,这个数据库将会变得无比巨大,因为一旦有一个字符不同,系统便会无法判别,就连大小写甚至句末的空格、句号、问号等都要加以区分,实在是很麻烦,所以我便开发了如下的筛选化归程序段:Strlwr x,x 将字
3、符串x全部改成小写字母Strlen x,xl 测量字长保存至xl变量Chrtonum x,ui,xl ui取得末位字符对应的机内码If ui=32 or ui=44 or ui=46 or ui=33 or ui=63 32代表“空格”的机内码,44代表“句号”的机内码,以此类推Then Strleft x,xl-1,x x取得左起至xl-1的字符串Ifend于是乎,当你输入“how are you ”或“how are you?”或“How are you?”时,对于机内变量x,都是同一个问题“how are you”,这样就有效地节约了数据库的空间。然而随后,在使用的过程中,我又发现,数据
4、库再大,也还是有无法识别的问题,所以,我便想让它具有学习的功能,程序段如下:z=0 z变量起标志作用If x=mThenz=z+1Print nIfendIf x=m2If x=m3 以此类推就可以扩大数据库容量If z=0Then lp() 运行学习子程序(learning part)Ifend子程序段如下:q=0 q变量起标志作用If q=1 Then m1=x Inputstr n1 q=q+1 Return 返回主程序 IfendIf q=2Then m2=x Inputstr n2 q=q+1 Return Ifend If q=3 以此类推就可以扩大数据库容量这样,它就具有了学习的
5、功能。此时的程序已经趋于完善,可当我通过看说明书知道了Strleft这个函数的作用之后,顿时有了新的想法给对话程序加上“调用其他程序“的功能,程序段如下:计算:Strleft x,4,xt xt取得左起第4个字符之前的字符串If at=“calc”ThenStrmid x,6,xy xy取得左起第6个字符之后的字符串te=StrtoExp(xy) 将xy转换为表达式并计算ExptoStr te,ter 将te转换为字符串Print terIfend绘图: If xt=“draw”ThenStrmid x,6,xyDelVar f 删除变量fDefine f(x)=StrtoExp(xy) 定义
6、变量f为函数f(x)Clrgraph Drawgraph f(x) 画出f(x)的函数图象PauseIfend调用其他自制程序:Strleft x,5,xttIf xtt=“solve”ThenFc() 解一元二次方程程序ifend控制程序自身:If x=“bye”or “goodbye”ThenStop 程序结束IfendIf x=“pause”If x=“clear text”至此,程序的主体已经完成,再加上心情和体力这两项富有人性化的模块,和富有人性化的提示语,整个程序就算是完成了, 程序段大致如下:心情模块:a=Rand(1,100)Lbl ra=a-1If 75a100Then显示好
7、的回答Elseif 25a=75Then显示一般的回答Elseif a=25显示差的回答IfendGoto r体力模块:c=rand(1,50)Lbl rb=rand (0, 1)c=c-1If c0Then Print I am tired. PauseInput v,Want to talk more? (Input 1/0) if vb 体力耗尽后,每次都有50%的几率结束程序ThenPrint Sorry, I am really tired.Print “TALK END”StopIfendIfendGoto r【探究步骤】1. 开机后,按Menu键进入主菜单,如图:2. 找到Pro
8、gram模块,通过触摸笔单击的方式进入该模块,如图: 3. 单击左上角的下拉菜单,选择Variable Manager项,如图; 4. 单击左上角的Edit菜单,选择Create Folder项,如图: 5. 输入文件夹名称,单击OK,如图:6. 关闭Variable Manager,Folder下拉菜单中选择新建的文件夹进入,如图: 7. 单击上方左起第二个图标,输入主程序名称,单击OK,如图: 8. 单击上方左起第一个图标,输入主程序代码如下:DispText 显示文本框SetDecimal 设置为十进制rand(1,100)arand(1,50)cInputStr x,Hello!pri
9、nt Hello!Lbl rrand(0,1)bStrJoin - ,x,yprint yif c0thenprint I am tired. pauseinput v,Want to talk more? (input 1/0)if vbthenprint Sorry,I am really tired.print TALK END stopifendifendStrLwr x,xStrLen x,xlif xl=0thenPrint What do you want to say? goto rtifendChrToNum x,ui,xl if ui=32 or ui=44 or ui=4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 计算器 人工智能
限制150内