收藏 分销(赏)

安徽师范大学《计算方法》实验课程序+答案(数学专业)五.doc

上传人:丰**** 文档编号:10447337 上传时间:2025-05-28 格式:DOC 页数:7 大小:253.51KB 下载积分:6 金币
下载 相关 举报
安徽师范大学《计算方法》实验课程序+答案(数学专业)五.doc_第1页
第1页 / 共7页
安徽师范大学《计算方法》实验课程序+答案(数学专业)五.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
实验五 第3章 MATLAB程序设计 第二节 程序控制结构 三、选择结构 选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab用于实现选择结构的语句有 条件语句:if –end 和 开关语句:switch-end . 1.单分支结构 if—end语句 2.双分支结构 if—else—end语句 if 条件表达式 语句组1 else 语句组2 end if-end语句的格式为: if-else-end语句的格式为: if 条件表达式 语句组 end 3.多分支结构 if — elseif — else — end语句 if — elseif — else — end语句的格式为: if 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ... elseif 条件表达式 m 语句组m else 语句组 end ■例11 求函数 ,输入x 值,输出y值. function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; end 解: ■例12 一个三位正整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数. 解:程序如下 A=[]; for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m]; end end disp(A) 以flower.m命名,运行结果: 153 370 371 407 4. switch-end 语句 根据表达式的不同取值,分别执行不同的语句.其格式如下: switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end method=input('请输入方法名:') switch method case {'linear','bilinear'} disp('Method is linear') case 'cubic' disp('Method is cubic') case 'nearest' disp('Method is nearest') otherwise disp('Unknown method.') end ■例13 阅读程序 ■例14 用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设: 90分以上为‘A’, 80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’. function sctole(score) grade=fix(score/10); switch grade case {10,9} grade='A' case 8 grade='B' case 7 grade='C' case 6 grade='D' otherwise grade='E' end ■关于 switch-end 语句的几点注解: l Matlab首先计算表达式的值,然后将它依次与各个case指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构 l 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 l otherwise 指令可以不出现 l switch 后面的表达式的值可以是一个标量或字符串 l case 指令后的检测值超过一个时,应用{}括起来 习题: 一、阅读下列程序,并在计算机上运行. 1. control.m function y=control(n) a=20; if n==0 y=a+1; elseif n==1 y=a*(1+n); elseif n==2 y=a+n; else y=a; end 2. qhshzh.m x=input('请输入x的值:'); if x==10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x)); end y 3. wufen.m clear n=input(‘输入百分制分数n= '); if n>=90 r='A' elseif n>=80 r='B' elseif n>=70 r='C' elseif n>=60 r='D' else r='E' end 4. chenji.m s=0; a=[65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87]; for k=a s=s+k; end disp(s); 5. jituo.m % 鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼内关了多少只兔子和多少只鸡? clear chicken=1; while 1 if rem(100-chicken*2, 4)==0&(chicken+(100-chicken*2)/4)==36 break; end chicken=chicken+1; end chicken rabbit=(100-2*chicken)/4 二、 编写M文件,对任意的a,b,c求方程的根,并对有没有实根给出判断. 三、选做题 编程实现lagrange插值多项式的计算. 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服