matlab课件--第4讲-条件语句和循环语句

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Matlab软件实习第四讲条件语句和循环语句Matlab软件实习一、单条件语句格式1:if逻辑表达式程序语句组endif语句计算所跟的逻辑表达式的值,若值为真就做下面的程序语句组,若值为假就跳到end后继续做程序.条件语句Matlab软件实习例1:当从键盘输入自变量x的值,由分段函数0,0,sin2xexxxxyx给出y值.x=input(‘x=‘)ifx0y=x*sin(x)endy=x^2+exp(x)程序如下%屏幕提示x=,由键盘输入值赋给xMatlab软件实习格式2:if逻辑表达式程序语句组1else程序语句组2endif语句计算所跟的逻辑表达式的值,若值为真就做下面的程序语句组1,然后就跳到end后继续做程序.否则,值为假,就做else后的程序语句组2,然后再接着做end后的程序.Matlab软件实习例2:计算分段函数的值.程序如下:x=input('请输入x的值:');ifx=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endx,y0,2)1log(0,22xxxxexyMatlab软件实习0,50,23xxxxy例3:当从键盘输入自变量x的值,由分段函数给出y的值.Matlab软件实习【例】输入三角形的三条边,求面积.A=input('请输入三角形的三条边:');ifA(1)+A(2)A(3)&A(1)+A(3)A(2)&A(2)+A(3)A(1)p=(A(1)+A(2)+A(3))/2;s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));disp(s);elsedisp('不能构成一个三角形。')end运行:请输入三角形的三条边:[456]9.9216Matlab软件实习二、多条件语句if条件1程序语句组1elseif条件2程序语句组2……elseif条件m语句组melse语句组nend语句用于实现多分支选择结构Matlab软件实习0,10,00,1xxxy例4:当从键盘输入自变量x的值,由分段函数给出y的值.程序如下:x=input('请输入x的值:');ifx0y=-1;elseifx==0y=0;elsey=1;endx,yMatlab软件实习switch语句switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch表达式case表达式1语句组1case表达式2语句组2……case表达式m语句组motherwise语句组nendMatlab软件实习当表达式的值等于表达式1的值时,执行语句组1,当表达式的值等于表达式2的值时,执行语句组2,…,当表达式的值等于表达式m的值时,执行语句组m,当表达式的值不等于case所列的表达式的值时,执行语句组n.当任意一个分支的语句执行完后,直接执行switch语句的下一句.Matlab软件实习例5:某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price200没有折扣200≤price5003%折扣500≤price10005%折扣1000≤price25008%折扣2500≤price500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格.Matlab软件实习程序如下:price=input('请输入商品价格');switchfix(price/100)case{0,1}%价格小于200rate=0;case{2,3,4}%价格大于等于200但小于500rate=3/100;casenum2cell(5:9)%价格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;otherwise%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格Matlab软件实习try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.Matlab软件实习例6:矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%显示出错原因Matlab软件实习循环语句1.for-end循环格式:for循环变量=初值:步长:终值循环体语句组end[注]步长为1时,可省略.Matlab软件实习例7:编程生成一个6阶矩阵,使其主对角线相邻上元素皆为1,与主对角线相邻元素皆为2,其余元素皆为0.程序如下:fori=1:6forj=1:6ifi==jA(i,j)=1;elseifabs(i-j)==1A(I,j)=2;elseA(I,j)=0;endendendAMatlab软件实习关于For循环的说明:1.For循环不能用For循环内重新赋值循环变量n来终止.forn=1:10x(n)=sin(n*pi/10);n=10;end»xx=Columns1through70.30900.58780.80900.95111.00000.95110.8090Columns8through100.58780.30900.0000Matlab软件实习2.语句1:10是一个标准的MATLAB数组创建语句.在For循环内接受任何有效的MATLAB数组.»data=[39456;716-15]data=39456716-15forn=datax=n(1)-n(2)endx=-4x=-7x=46x=1Matlab软件实习3.For循环可按需要嵌套.例:利用for循环求1!+2!+3!++5!的值sum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;endMatlab软件实习4.为了得到最大的速度,在For循环被执行之前,应预先分配数组.»x=zeros(1,10);forn=1:10x(n)=sin(n*pi/10);endMatlab软件实习for语句更一般的格式为:for循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕.Matlab软件实习例8:写出下列程序的执行结果。s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s');Matlab软件实习2.while-end循环一般格式:while逻辑表达式循环体语句组end表达式一般是由逻辑运算和关系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值非0,继续循环;直到表达式值为0,循环停止.Matlab软件实习例9:用while循环求1~100间整数的和sum=0;i=1;whilei=100sum=sum+i;i=i+1;endsumsum=5050例10:求自然数前n项和,项数n由键盘输入.Matlab软件实习3.break语句和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环.Matlab软件实习例11:求[100,200]之间第一个能被21整除的整数.程序如下:forn=100:200ifrem(n,21)~=0continueendbreakendnMatlab软件实习循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构.多重循环的嵌套层数可以是任意的,可以按照嵌套层数,分别叫做二重循环、三重循环等.处于内部的循环叫作内循环,处于外部的循环叫作外循环.Matlab软件实习例12:若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数.求[1,500]之间的全部完数.form=1:500s=0;fork=1:m/2ifrem(m,k)==0s=s+k;endendifm==sdisp(m);endend

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功