第4章程序流程控制

上传人:新** 文档编号:506398298 上传时间:2023-06-05 格式:DOC 页数:8 大小:92KB
返回 下载 相关 举报
第4章程序流程控制_第1页
第1页 / 共8页
第4章程序流程控制_第2页
第2页 / 共8页
第4章程序流程控制_第3页
第3页 / 共8页
第4章程序流程控制_第4页
第4页 / 共8页
第4章程序流程控制_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《第4章程序流程控制》由会员分享,可在线阅读,更多相关《第4章程序流程控制(8页珍藏版)》请在金锄头文库上搜索。

1、第4章 程序流程控制4.1 概述程序表达式的运算顺序有4种结构控制命令:while、if、for和switch。每当这些命令出现时,在程序中的稍后部分都必须要跟一个end语句。只有当所有条件满足时,控制结构命令与end命令之间的语句才会被执行。每一种控制结构命令可以随意相互之间嵌套或自身嵌套,称为嵌套结构。控制结构通常把关系运算或逻辑运算的结果作为判定条件。当条件满足时,控制语句将程序转向特定部分执行相应的语句。MATLAB的部分关系运算符和逻辑运算符如下表:部分关系运算符及逻辑运算符条件 数学符号 MATLAB符号 关系运算符 等于 = = = 不等于 = 小于 小于等于 =逻辑运算符 与

2、AND & 或 OR | 非 NOT 4.2 程序流程控制4.2.1 while 循环while循环无限次执行一条或多条语句,当条件满足时停止循环,其语法为: while 条件 语句 end其中,定义“条件”的表达式中可包含由“语句”计算得出的一个或多个变量。例1: 正确输入数据编一程序,要求用户连续输入1到8之间的数,若所输入的数值超出范围,则程序终止。MATLAB程序如下:nfnum=0;while(nfnum8) nfnum=input(Enter a number from 1 to 8:);end例:级数收敛性判定计算并显示级数Sn的项数N , Sn如下:当收敛到终值的0.01%以内

3、时,项数N为多少。MATLAB程序如下: eries=1;k=2;exact=pi2/6;while abs(series-exact)/exact)=1e-4 series=series+1/k2; k=k+1;enddisp(# terms=,num2str(k-1)4.2.2 if语句if语句的常见形式如下: if 条件#1 表达式#1elseif 条件#2 表达式#2else 表达式#3end 例4.3 疲劳强度计算根据给定的校正系数计算金属的疲劳强度。因素 范围 校正系数受力方式 弯曲 Cload=1 轴向 Cload=0.70尺寸 d8 mm Csize=1 8d250 mm Cs

4、ize=1.189d-0.097温度 T450OC Ctemp=1 450TOC Ctemp=1-0.0032(T-840)判断这些因素的程序如下:if lode=bending cload=1;else cload=0.7;endif d=8 csize=1;else csize=1.189*d(-0.097);endif tempn)这里a是由用户指定的一个值。本例中a=4,向量g=4,4,7,10,-6,42,1,0。程序如下:learg=4 4 7 10 -6 42 1 0;a=4;k=0;indx= % 给indx 赋空for n=1:length(g)if g(n)aindx=in

5、dx n;endenddisp(Element loacations for g(n),num2str(a),:,num2str(indx)执行上述程序后,MATLAB命令窗口显示:Element locations for g(n)4:3 4 6例4.6 cumsum函数的实现给定任意长度的向量c,用程序实现: Csum=cumsum(c)用向量c=4 4 7 10 -6 42 1 0来检验该程序。程序如下: clearc=4 4 7 10 -6 42 1 0;Csum(1)=c(1);for k=2:length(c) Csum=Csum Csum(k-1)+c(k); % 或 Csum(

6、k)=Csum(k-1)+c(k);end disp(Cumsum of c=,num2str(Csum)执行上述程序后,MATLAB命令窗口显示:Comsum of c=4 8 15 19 61 62 62例7:diag函数的实现给定,程序第一步实现: 第二步实现: 这里v是第一步得到的结果。用矩阵检验程序,并假设不使用冒号和zeros函数。程序如下:b=magic(4);r,c=size(b);for k=1:r v(k)=b(k,k);enddisp(Diagonal elements of b=)disp(num2str(v)for n=1:r for m=1:r if n=m d(n

7、,m)=v(n);end endenddisp(Diagonal matrix d=)disp(num2str(d)4.2.4 for循环或while循环的提前终止break函数可实现for循环或while循环的提前终止。若break函数嵌套于for循环或while循环的内部,则返回到上一级的for循环或while循环。考虑下列程序段: for j=1:14 b=1 while b25 if n0 break end end end4.2.5 switch语句通常,switch的语法结构为: switch switch_expression case case_expression #1 st

8、atements #1 case case_expression #2 statements #2 case case_expression #n statements #n otherwise statements #n+1 end例8:作曲面的4个视图在图形窗口的4个独立区域分别绘制曲面z(x,y)的4个视图。其中subplot函数将窗口划分为网格,这里划分为网格。变量k用来指定图像位于哪个区域内;k=1 ,左上角;k=2 ,右上角;k=3 ,右下角;k=4 ,左下角。subplot函数为把几个独立生成的图形放在同一图形窗口中。surf函数用于绘制以x和y为变量的函数z的三维视图。view函数用于设定角度,变量x ,y和z已被赋值或已计算得出其值。for k=1:4 subplot(2,2,k) surf(x,y,z) switch k case 1 view(-37.5,30) case 2 view(-70,30) case 3 view(-37.5,50) case 4 view(-70,50)end4.3 程序控制结构的两项应用4.3.1 产生2K的正交表例10: 产生2K的正交表k=input(Enter num

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号