软件介绍第4讲Mathematica编程简介第一页,共四十五页。2/444.1Mathematica编程简介1.Mathematica文件可保存数据也可保存命令2.基本程序结构每个单元中的命令可自动执行,因此在每个单元中可有三种基本结构:顺序、分支、循环。第二页,共四十五页。3/444.1.1基本概念4.1.2选择结构(分支结构)4.1.3循环结构4.1.4全局变量与局部变量4.1.5输入与输出第三页,共四十五页。4/444.1.1基本概念1.关系运算符、关系表达式与关系函数关系表达式是指用关系运算符将两个表达式连接起来的式子(例如a+b>0)关系运算符又称比较运算符,用来对两个表达式的值进行比较比较的结果是一个逻辑值(True或False),这个结果就是关系表达式的值。第四页,共四十五页。5/444.1.1基本概念1.关系运算符、关系表达式与关系函数x==yEqual[x,y]xyUnequal[x,y]xyGreater[x,y]xyGreaterEqual[x,y]第五页,共四十五页。6/442.逻辑运算符、逻辑表达式与逻辑函数对于较为复杂的条件,必须使用逻辑表达式。逻辑表达式是指用逻辑运算符连接若干关系表达式或逻辑值而成的式子。逻辑表达式的值也是一个逻辑值。p&&qpqAnd[p,q]p||qpqOr[p,q]!p¬pNot[p]第六页,共四十五页。7/442.逻辑运算符、逻辑表达式与逻辑函数p&&qpqAnd[p,q]p||qpqOr[p,q]!p¬pNot[p]【例3-1】验证逻辑分配律:p(qr)=(pq)(pr)a=p&&(q||r);b=(p&&q)||(p&&r);a==bLogicalExpand[a]==LogicalExpand[b]第七页,共四十五页。8/44【例3-2】判断闰年闰年的条件是:被4整除但不能被100整除,或者能被400整除。y=2000;L=(Mod[y,4]==0&&(!Mod[y,100]==0))||(Mod[y,400]==0)第八页,共四十五页。9/444.1.2选择结构(分支结构)实现选择结构的函数有If函数、Which函数与Switch函数三种。1.If函数If函数的语法格式为:If[条件,语句1,语句2]注:省略格式:If[条件,语句1]If[条件,,语句2]条件T语句1F语句2第九页,共四十五页。10/444.1.2选择结构(分支结构)1.If函数If函数的语法格式为:If[条件,语句1,语句2]【例3-3】使用If函数If[Random[Integer,{1,6}]==3,0,-1]注1:其中随机函数的格式如下:Random[Integer,{1,6}]返回1~6之间的随机整数Random[Real,{1,6},20]返回1~6之间的随机实数Random[]返回0~1之间的随机实数条件T语句1F语句2第十页,共四十五页。11/44注2:If函数格式中的语句1或语句2都可以是以分号相隔的命令列表【例3-4】If[Random[]<=0.5,x=Random[];y=1;Print[x+y],Print[0]]第十一页,共四十五页。12/44注3:If函数可以嵌套【例3-5】铁路托运行李,从甲地到乙地,规定每张客票托运费计算方法是行李重量不超过50kg时,2.5元/kg,超过50kg而不超过100kg时,其超过部分按3.5元/kg收费,超过100kg时,其超过部分按4.5元/kg收费。编写程序,输入行李重量,计算并输出托运的费用分析:设行李重量为wkg,应付运费为x元,则运费公式为:)100()10050()50()100(5.4505.3505.2)50(5.3505.25.2wwwwwwx第十二页,共四十五页。13/44根据以上分析,画出流程图如图所示。编写代码如下:w=40;x=If[w<=50,2.5w,If[w<=100,3.5w-5,4.5w-15]]输入w{输入行李重量}如果w<=50真x←2.5*w假如果w<=100真x←2.5*50+3.5*(w–50)假x←2.5*50+3.5*50+4.5*(w–100)输出x{输出托运费}第十三页,共四十五页。14/442.Which函数Which函数的语法格式为:Which[条件1,表达式1,条件2,表达式2,...]注:其中表达式可以是命令列表,其值为最后表达式的值True条件1表达式1{条件1成立时返回的值}条件2表达式2{条件2成立时返回的值}……第十四页,共四十五页。15/443.Switch函数Switch函数的语法格式为:Switch[表达式,值1,表达式1,值2,表达式2,...]Switch[表达式,值1,表达式1,值2,表达式2,...,_,表达式n+1]表达式值1表达式1{表达式的值与值1相等时计算表达式1}值2表达式2{表达式的值与值2相等时计算表达式2}……第十五页,共四十五页。16/443.Switch函数Switch函数的语法格式为:Switch[表达式,值1,表达式1,值2,表达式2,...,_,表达式n+1]【例3-6】x=Random[Inte...