欢迎来到天天文库
浏览记录
ID:41032434
大小:138.00 KB
页数:8页
时间:2019-08-14
《lisp编程实例 )》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VisualLISP编程应用实例集一、计算类程序1.计算阶剩值n!(注意:采用了递归方式)(defunjsen(n)(if(=n0)1(*n(jsen(1-n)))));2.迭代计算()(defunddai(x)(setqx10x2xe1.0e-5i0)(while(>(abs(-x2x1))e)(setqx1x2)(setqx2(expt(+x11)(/13.0)))(setqi(1+i)));while(print"x=")(princx2)(print"i=")(princi)(princ));end3.一元二次方程求解()(defunpx2(abc)(setqd(-
2、(exptb2.0)(*4ac)))(cond((d0)(progn(setqx1(/(-(sqrtd)b)(*2.0a))x2(/(+(sqrtd)b)(*-2.0a)))(prompt"Tworoot!x1=")(princx1)(prompt"x2=")(princx2))));cond(princ));end4.成绩分析统计注意:使用该程序前须将全班成绩输入一个数据文件中保存,格式为(
3、788967….)(defunsjfx(fname)(setqf(openfname"r"))(setqlbnil)(while(setqsd(read-linef))(setqlb(appendlb(readsd))))(closef)(setqxsum0)(foreachxlb(setqxsum(+xxsum)))(setqn(lengthlb)xb0)(setqxbar(/xsum(*1.0n)))(foreachxlb(setqxb(+xb(*(-xxbar)(-xxbar)))))(setqxbzc(sqrt(/xb(*1.0n))))(repeat18(terp
4、ri))(prompt"************统计结果******************")(terpri)(prompt(strcat"全班总平均分数X="(rtosxbar23)))(terpri)(prompt(strcat"标准差δ="(rtosxbzc23)))(terpri)(prompt(strcat"Totalnumber:N="(rtosn20)))(terpri)(prompt"****************************************")(terpri)(princ));end二、数据检索类1.根据计算模数检索标准模数值(假定
5、mc为1~10之间的任意值,以实参代入)(defunjsm(mc)(setqml'(11.251.522.53456810))(setqm0n0)(while(6、kd(carnt))(setqnt(read(read-linef))));while(setqj-1)(repeat(lengthnt)(setqj(1+j)x(nthjft))(setx(nthjnt)));reapeat(closef)nt);end3.检索二类数据文件(二类数据文件必须存在,且数据格式必须统一)(defunjs2(fnamekd/ftntjx)(setqf(openfname"r"))(setqft(read(read-linef))nt(read(read-linef)))(while(or(<=kd(carnt))(>kd(cadrnt)))(s7、etqnt(read(read-linef))));while(setqj-1)(repeat(lengthnt)(setqj(1+j)x(nthjft))(setx(nthjnt)));repeat(closef)nt);end三、参数化绘图类1.绘制正弦曲线函数y=sinx(注意:计算数据存放在表变量lpt中)(defunds(/x0xexypt)(setqbp(getpoint"给出基点:"))(command"ucs""o"bp)(setqscx10scy20)(setqx00xe(*pi2)x0y0)
6、kd(carnt))(setqnt(read(read-linef))));while(setqj-1)(repeat(lengthnt)(setqj(1+j)x(nthjft))(setx(nthjnt)));reapeat(closef)nt);end3.检索二类数据文件(二类数据文件必须存在,且数据格式必须统一)(defunjs2(fnamekd/ftntjx)(setqf(openfname"r"))(setqft(read(read-linef))nt(read(read-linef)))(while(or(<=kd(carnt))(>kd(cadrnt)))(s
7、etqnt(read(read-linef))));while(setqj-1)(repeat(lengthnt)(setqj(1+j)x(nthjft))(setx(nthjnt)));repeat(closef)nt);end三、参数化绘图类1.绘制正弦曲线函数y=sinx(注意:计算数据存放在表变量lpt中)(defunds(/x0xexypt)(setqbp(getpoint"给出基点:"))(command"ucs""o"bp)(setqscx10scy20)(setqx00xe(*pi2)x0y0)
此文档下载收益归作者所有