第6章程序设计_第1页
第6章程序设计_第2页
第6章程序设计_第3页
第6章程序设计_第4页
第6章程序设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 程序设计 6.1 关系运算和逻辑运算 6.2. 顺序语句 6.3 循环语句 6.4 条件语句 6.5 试探结构 6.6 流控制命令 6.7 综合实例 6.1 关系运算和逻辑运算2.1.1 常量 6.1.1 关系操作运算关系操作运算是用关系操作符来实现,它可用来比较两个标量,或两个同样关系操作运算是用关系操作符来实现,它可用来比较两个标量,或两个同样大小的数组,或一个数组和一个标量(实际是数组中的每一个元素与标量比大小的数组,或一个数组和一个标量(实际是数组中的每一个元素与标量比较),比较结果产生较),比较结果产生0(逻辑假,(逻辑假,false)或者)或者1(逻辑真,(逻辑真,ture

2、)。)。格式格式 a op b % a和和b是算术表达式、变量、字符串等,是算术表达式、变量、字符串等,op是一是一 种关系运算符种关系运算符比较关系运算符及含义比较关系运算符及含义关系运算符含义关系运算符含义关系运算符含义=大于或等于大于=不等于A=1: 9, B=10-A, r0=(A A=1: 9, B=9: -1: 1A =1 2 3 4 5 6 7 8 9B =9 8 7 6 5 4 3 2 1 L1=A3&B L2=A3|B L3= xor(A3,B L4=AL4 =0 0 0 0 0 0 0 0 06.1.3 运算优先级当多个运算符和变量写成一个MATLAB表达式时,运算

3、符的优先次序必须明确。通常所有的运算符,算术运算符优先级最高,关系运算符次之,逻辑操作符的优先级最低。具体优先级次序在表6-3中依从上到下的顺序由高到低排序。同一行的各运算符具有相同的优先级,其运算符法则是在表达式中从左到右依次进行运算。表表6-3 各种运算符优先级排序各种运算符优先级排序优先级运算符最高()小括号转置 . 数组乘方 矩阵乘方逻辑非(not,).* 点乘 ./点除 乘法 除法加减法冒号关系操作符(=,=,=,=)逻辑与(and,&)最低逻辑或、逻辑异或(or,xor,|)6.2. 顺序语句格式 expression %执行表达式命令,显示表达式值variable=exp

4、ression %将表达式赋值给变量variable 【例6-3】利用顺序结构编写绘制函数 的图形。yxsin2xsyms x %1先定义符号变量xy=x*sin(2*x) %2写出函数ezplot(y,0,4*pi) %3画简易图grid on %4加格线ylabel(y) %5给纵轴加标签y024681012-10-50510 xx sin(2 x)y6.3.1 for循环1for 语句的简单形式格式 for variable=expression statements end说明 每当循环变量variable取expression中的一个值时,就执行循环体statements一次,直到取

5、完expression中的值。expression常用数组形成表示。6.3 循环语句【例6-4】编写求100!的程序,利用公式k!=(k-1)!k。s=1;for k=1:100s=s*k;ends运行结果如下:s =9.3326e+157【例【例6-5】编写利用数组指定循环变量的值,并计算各取值的三次】编写利用数组指定循环变量的值,并计算各取值的三次方的程序。方的程序。A= 1 3 5 7 9; %给定循环变量取值数组给定循环变量取值数组B=zeros(size(x); %给给B预先分配存储空间预先分配存储空间k=0;for x=A %依次取依次取A中的元素中的元素 k=k+1; B(k)=

6、x.3; %计算计算A每个元素的三次方每个元素的三次方endC=A; B %显示显示A,及与,及与A对应的值对应的值B运行结果如下:运行结果如下:C =1 3 5 7 91 27 125 343 729运行结果如下:B =1 1/2 1/3 1/4 1/5 1/2 1/3 1/4 1/5 1/6 1/3 1/4 1/5 1/6 1/7 1/4 1/5 1/6 1/7 1/8 1/5 1/6 1/7 1/8 1/9 注:使用循环结构,在循环指令之前尽量对数组进行预定义,分配存储空间大小。2多重嵌套的for循环【例6-6】多重嵌套的for循环举例。A=5;B=zeros(A,A) ; %给B预先分

7、配存储空间for m=1:A for n=1:A B(m,n)=1/(m+n-1); %计算输入的两个值的和,再减一的倒数 endendformat rat %有理分式显示6.3.2 while 循环 格式格式 while expression statements end说明说明 while语句可不定次数地重复执行语句可不定次数地重复执行statements。当。当expression为逻辑真或非零值时,就重复执行为逻辑真或非零值时,就重复执行statements。因此,。因此,expression的值应该受到的值应该受到statements的影响,否则这种循环无法结束。通常表达的影响,否则

8、这种循环无法结束。通常表达式给出的是一个标量值,但也可以是数组或者矩阵,如果是后者,则式给出的是一个标量值,但也可以是数组或者矩阵,如果是后者,则要求所有的元素都必须为真。要求所有的元素都必须为真。【例6-7】 2012年1月我国银行存款年利率为3.5%,若将10万元钱于当月存入银行,问多长时间会连本带利翻一番(假定利率保持不变)?利用公式:M=M0(1+r),其中M0为本金,r为年利率,M为一年后的连本带利。m=10; %初始值k=0;while m20; %翻一番 m=m*(1+3.5/100) k=k+1end运行结果如下:(只写出最后两项)m =19.8979k =20m =20.59

9、43k =21故需要故需要21年后才能连本带利翻一番。年后才能连本带利翻一番。上面的程序每次循环显示的结果都是上面的程序每次循环显示的结果都是k和和m,若调用的话,不太方便,为此,若调用的话,不太方便,为此给出用向量的形式显示其结果的程序:给出用向量的形式显示其结果的程序:m(1)=10;k=1;while m(k)20 m(k+1)=m(k)*(1+3.5/100); k=k+1;endk,m运行结果如下:k = 22m = 10.0000 10.3500 10.7122 11.0872 11.4752 11.8769 12.2926 12.7228 13.1681 13.6290 14.1

10、060 14.5997 15.1107 15.6396 16.1869 16.7535 17.3399 17.9468 18.5749 19.2250 19.8979 20.5943由于第一年存款本金作为序号1,故序号k = 22,也表明第21年后才能连本带利翻一番,与上述结果一致。1if-end结构格式 if expression statements end说明 当表达式expression的值为逻辑真或非零值时,执行语句组statements。expression通常由关系操作符、逻辑运算符、算术运算符等构成,statements可以是多个语句。6.4 条件语句6.4.1 if-else

11、-end结构例如,判断当a为偶数时,显示a是偶数,并计算a/2;否则不作任何处理。If rem(a,2)=0disp(a is even)b=a/2;end2if-else-end结构格式 if expression statements1 else statements2 end说明 当expression为逻辑真或非零值时,执行statements1;否则执行statements2。 3有多个条件式的if-else-end结构格式格式 if expression1 statements1 elseif expression2 statements2 else statements3 end

12、说明说明 当当expression1为逻辑真或非零值时,执行为逻辑真或非零值时,执行statements1;当;当expression1为逻辑假或零值,且为逻辑假或零值,且expression2为逻辑真或非零值时,执行为逻辑真或非零值时,执行statements2;当;当expression1和和expression2均为逻辑假或零值时,执行均为逻辑假或零值时,执行statements3。【例6-9】利用if结构判断输入的数值。n=input(请输入一个数n:)if n mtimesInner matrix dimensions must agree.6.6 流控制命令6.6.1 contin

13、ue命令continue命令的作用是结束本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判断,它用在for或while循环结构体内,并和if语句合用来强制终止循环。【例6-12】编写程序:显示1到10中的奇数。for i=1:10 if rem(i,2)=0 continue else disp(i) endend显示的结果为:1 3 5 7 96.6.2 break命令break命令的作用是终止本次循环,跳出最内层循环,即命令的作用是终止本次循环,跳出最内层循环,即不必等到循环的结束而是根据条件退出循环,它用在不必等到循环的结束而是根据条件退出循环,它用在for或或whi

14、le循环结构体内,并和循环结构体内,并和if语句合用来强制终止循环。语句合用来强制终止循环。【例【例6-13】已知,求】已知,求y不超过不超过6的最大的最大n的值,的值,以及以及n对应的对应的y值。值。y=0;k=1;while k x=1/k; y=y+x; if y6 break; end k=k+1;endn=k-1y=y-x运行结果如下:运行结果如下: n =226y =6.0000需要注意的是,当break 命令碰到空行时,将退出while循环。6.6.3 return命令 return命令可使正在运行的函数正常退出,并返回调用它的函数继续运命令可使正在运行的函数正常退出,并返回调用

15、它的函数继续运行。经常用于函数的末尾作为正常结束函数的运行,当然也可用在某条件满行。经常用于函数的末尾作为正常结束函数的运行,当然也可用在某条件满足时强行结束执行该函数。足时强行结束执行该函数。6.6.4 error和warning命令格式 error(message) warning(message)说明 error命令是用来指示出错信息并终止当前函数的运行,warning命令用来指示警告信息后程序仍继续运行。6.6.5 input命令格式格式 x=input(n) %在屏幕上显示提示信息在屏幕上显示提示信息n,等待用户的输入,等待用户的输入(可以可以 是一个数或一个代数式是一个数或一个代数

16、式),并将输入值,并将输入值(或运算后的或运算后的 值)赋给变量值)赋给变量xy=input(n,s) %返回的字符串作为文本变量而不是作为变量名或者返回的字符串作为文本变量而不是作为变量名或者 数值数值说明说明 在提示信息字符串中,在提示信息字符串中,n表示换行,表示换行,表示一个反斜杠表示一个反斜杠。例如: x=input(请输入运算式:)请输入运算式:7+8*9x = 79 y=input(请输入字符串式:,s)请输入字符串式:abcy = abc6.6.6 keyboard命令命令keyboard被放置在M文件中,将停止文件的执行并将控制权交给键盘。通过在提示符前显示K来表示一种特殊状

17、态。如在某个位置加入keyboard 命令,则执行到这句话时,MATLAB 的命令窗口将显示如下代码:K如果要恢复正常的指示符(),只需在(K)之后输入return即可。6.6.7 pause命令格式pause %停止M文件的执行,按任意键继续pause(n) %中止执行程序n秒后继续,n是任意实数pause on %允许后续的pause命令中止程序的运行pause off %禁止后续的pause命令中止程序的运行6.7 综合实例6.7.1 三角形面积计算【例6-14】 已知三角形的三条边的长度为a、b、c,面积公式为 ,其中 ,试编写程序求三角形的面积。a=input(请输入一个数a:)b=

18、input(请输入一个数b:)c=input(请输入一个数c:)if a0|b0|c0 disp( a、b、c 必须是正数.) return end if a+bc|a+cb|b+ca disp(三角形不存在.)returnends=(a+b+c)/2;A=sqrt(s*(s-a)*(s-b)*(s-c) %三角形的面积As(s a)(s b)(s c)1s =(a+b+c)2(2)在命令窗口中执行程序,并给a、b、c赋不同值,结果如下:请输入一个数a:-4a = -4请输入一个数b:5b = 5请输入一个数c:7c = 7a、b、c 必须是正数.(3)给a、b、c重新赋不同值,其结果如下:请输入一个数a:6a = 6请输入一个数b:7b = 7请输入一个数c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论