1、实验03选择结构程序设计第4章、实验03 选择结构程序设计(第4章 MATLAB程序设计)一、实验目的1. 掌握建立和执行M文件的方法。2. 掌握利用if语句实现选择结构的方法。3. 掌握利用switch语句实现多分支选择结构的方法。4. 掌握try语句的使用。二、实验内容1.(用if)求分段函数的值用if语句实现,分别输出x=,时的y值。文本编辑器中的程序:x=input(请输入x的值:);if x0&x=-3 y=x2+x-6elseif x=0&x=2&x=3 y=x2-5*x+6else y=x2-x-1end!命令窗口中的运行结果:请输入x的值:y = 14请输入x的值:y = 11
2、!请输入x的值:y = 2请输入x的值:y = 1请输入x的值:y =¥ 请输入x的值:y = 5请输入x的值:y = 192.(用if、switch)输出成绩等级:输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分100分为A,80分89分为B,79分79分为C,60分69分为D,60分以下为E。要求:(1)分别用if语句和switch语句实现。(2) 要求输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。用if语句实现:文本编辑器窗口中的程序:x=input(输入一个百分制成绩:x=);%if x=90 disp(成绩:A)elseif x=80 disp
3、(成绩:B)elseif x=70&x=60&x=69 disp(成绩:D)?elseif x60 disp(成绩:E)else disp(输入内容不符合规则,请输入100以内的整数!)end命令窗口中的运行结果:|输入一个百分制成绩:x=78成绩:C输入一个百分制成绩:x=54成绩:E输入一个百分制成绩:x=83成绩:B输入一个百分制成绩:x=63成绩:D:输入一个百分制成绩:x=209输入内容不符合规则,请输入100以内的整数!输入一个百分制成绩:x=98成绩:A用switch语句实现:文本编辑器窗口中的程序:grades=input(请输入百分制成绩:grades=);switch fi
4、x(grades)=120 c=120*84+(b-120)*84*(1+elseif b1; error( RNDPRM1只接受列向量的输入);endY= ; %从一个空矩阵开始l=n; %X的元素个数for i=1:n k=1+fix(l*rand);%随机选择Y的下一个元素的位置,rand等价于rand(1),0randa = 11 12 13 14 15 16 17 18b = 1 2 3 4 5 6 7 8 9 104.1.2 M文件的建立与打开 p571建立新的M文件启动文本编辑器有3种方法:(1) 菜单操作从主窗口的“文件”菜单中选“新建”,再选“空白M-文件”。(2) 命令操作
5、在命令窗口输入命令edit。(3) 命令按钮操作单击主窗口工具栏上的“新建M-文件”按钮。2打开已有的M文件(4种方法)(1) 菜单操作$从“文件”菜单中选“打开”,屏幕出现“打开”对话框,再选要打开的M文件。(2) 命令操作在命令窗口输入:edit 文件名,打开指定的M文件。(3) 命令按钮操作单击工具栏上的“打开文件”按钮,再从弹出的对话框中选所需的M文件。(4) 在当前目录窗口操作在当前目录窗口双击要打开的文件名。 程序控制结构 p58。4.2.1 顺序结构 按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。1数据的输入(从键盘输入) A=input(提示信息,选项);采用s选项
6、,允许用户输入一个字符串。A=input(输入矩阵A:);xm=input(输入姓名:,s);Axm输入矩阵A:1,2,3;4,5,6输入姓名:Ling mingA = 1 2 3 4 5 6xm =Ling ming2数据的输出 disp(输出项)输出项既可为字符串,也可为矩阵。例(顺序结构)求一元二次方程ax2+bx+c=0的根 p59%p59clc;a=input(a=);b=input(b=);c=input(c=);d=b*b-4*a*c;x=-b+sqrt(d),-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),. ,x2=,num2str(x(2);a
7、=1b=-5c=6】x1=3,x2=23程序的暂停 pause(延迟秒数)pause 暂停程序,按任一键程序继续执行。 Ctrl+c 强行中止程序的运行。4.2.2 选择结构 p601if语句(3种格式) (1) 单分支if语句if 条件 语句组end 条件成立,执行语句组;否则不执行语句组。 (2) 双分支if语句if 条件 语句组1?else 语句组2end 条件成立,执行语句组1;否则执行语句组2。例(if else)计算分段函数的值p61clc;x=input(输入x的值: ); *if x=10 y= cos(x+1)+sqrt(x*x+1);else y=x*sqrt(x+sqrt
8、(x);endy输入x的值: 10y =( 输入x的值: 5y = (3) 多分支if语句if 条件1 语句组1elseif 条件2 语句组2 elseif 条件m 语句组melse 语句组nend语句用于实现多分支选择结构。!例(if elseif)字符转换输出 p62输入一个字符:若为大写字母,则输出其小写字母;若为小写字母,则输出其大写字母;若为数字字符,则输出其对应的数值;若为其他字符,则原样输出。c=input(输入一个字符:,s);if c=A & c=a & c=0 & c输入一个字符:aA输入一个字符:Bb输入一个字符:5 5输入一个字符:&(2switch语句 根据表达式的取
9、值,分别执行不同的语句。switch 表达式case 表达式1 语句组1case 表达式2 语句组2 (case 表达式m 语句组motherwise 语句组nend当任意一个分支的语句执行完后,直接执行switch语句的下一句。例(switch case)打折销售 p63某商场对商品实行打折销售,标准如下(价格用price表示): price 200 没有折扣 200 price 500 3%折扣 500 price 1000 5%折扣 1000 price 2500 8%折扣 2500 price 5000 10%折扣 5000 price 14%折扣输入所售商品的价格,求其实际销售价格。
10、price=input(输入商品价格:); switch fix(price/100) case 0,1 % 价格200 rate=0; case 2,3,4 % 200=价格 500 rate=3/100; case num2cell(5:9) % 500=价格1000 rate=5/100; case num2cell(10:24) % 1000=价格2500 rate=8/100; case num2cell(25:49) % 2500=价格5000 rate=10/100; otherwise %5000 mtimesInner matrix dimensions must agree.