MATHEMATICA讲座第十二讲 注释语句、程序执行的跟踪、程序调试的机制以及程...
MATHEMATICA讲座第十二讲
在这一讲里,我们将介绍程序设计中的几个问题,注释语句、程序执行的跟踪、程序调试的机制以及程序包的
调用。
1、程序的注释
为了增加程序的可读性,常常需要在程序中加入一些用作解释性的文字或与程序执行无关的字符串,当我们用“(*”和“*)”将其括起来时,程序将不执行它,并把它当作一个空格。
2、程序执行的中断
在Mathematica2.2版中,中断程序的执行可用关闭窗体的命令完成在,关闭窗体前系统会提示是否保存原来的程序.
3、程序执行的跟踪
On[名字]打开对这个函数或变量的跟踪,对其每一次调用,它的参数,计算结果都将显示. On[ ]打开对所有函数或变量的跟踪。
On[Set]打开对赋值操作的跟踪。由于所有变量的值的改变都要通过它因此,是最常用的跟踪命令。*)
4、程序调试的机制
Mathematica中程序调试的机制比较复杂,初学者不议掌握,这里介绍两种常用的方法,其一是分段加注释方法,把程序后面部分注释,一段一段地调试,这种方法需要读者在实际中体会.其二是用Trace[].
Trace[]的使用形式是Trace[表达式,模式],这里的模式其过滤作用,得到的结果是一个表,表里留下的结果是表达式求值过程中与模式匹配的表达式,从中可以找出求值过程中的错误,如用下面的输入可以看到求值过程中的所有赋值: Trace[表达式,_=_]. 例 求解一元二次方程
yiyuanerci[xr_List]:=(*输入{方程左边,方程右边}*) Module[{v,w,a,b,c},v=Variables[xr][[1]]; w=xr[[1]]-xr[[2]];a=Coefficient[w,v^2]; b=Coefficient[w,v];c=w/.v->0; If[a==0,Return[{-c/b}]]; {(-b+Sqrt[b^2-4 a c])/(2 a), (-b-Sqrt[b^2-4 a c])/(2 a)} ]; yiyuanerci[{x^2+3 x+5,7}]
Trace[yiyuanerci[{x^2+3 x+5,7}],_=_]
5、文件的初步知识
MATHEMATICA有两种常用的文件,一种是笔记本文件ma文件,另一种是m文件。
ma文件是我们编程常得到的文件,ma文件可以另存为m文件.
文件的调用可以用两种方式进行,
1、是用窗体中打开文件的操作,打开的文件全都显示到Notebook中;
2、二是用命令
3、\",的方式,这种方式打开的文件不
4、显示到Notebook中.如
在系统的\"Packages\"中分类存放着许多用m文件编写的程序包,有代数程序包、微积分程序包、数值计算程序包、离散数学程序包、线性代数程序包、统计程序包等等,这是对Mathematica内核功能的扩展,您可以用上述方法去调用程序包里的程序
例: 给定一组同维向量,把它们正交单位化: a1={0,1,1},a2={1,1,0},a3={1,0,1}
Mathematica的内核中没有施密特正交化的功能,要调用Packages中的线性代数程序包中的orthogon.m*)
6、结语
至此我们已经介绍了Mathematica软件的基本功能及编程知识,如果您要在Mathematica平台上开发出专用程序包还需学习Mathematica程序包的设计、封装等知识,这些内容在>一书中介绍.