您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 实验03-选择结构程序设计(第4章)
1实验03选择结构程序设计(第4章MATLAB程序设计)一、实验目的1.掌握建立和执行M文件的方法。2.掌握利用if语句实现选择结构的方法。3.掌握利用switch语句实现多分支选择结构的方法。4.掌握try语句的使用。二、实验内容1.(用if)求分段函数的值2226035605231xxxxyxxxxxxx且且及其他用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。文本编辑器中的程序:x=input('请输入x的值:');ifx0&&x~=-3y=x^2+x-6elseifx5&&x=0&&x~=2&&x~=3y=x^2-5*x+6《数学软件》课内实验2013161431001713信科273王平李倩152elsey=x^2-x-1end命令窗口中的运行结果:请输入x的值:-5.0y=14请输入x的值:-3.0y=11请输入x的值:1.0y=2请输入x的值:2.0y=1请输入x的值:2.5y=-0.2500请输入x的值:3.0y=5请输入x的值:5.0y=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=');ifx=100&&x=90disp('成绩:A')elseifx=89&&x=80disp('成绩:B')elseifx=70&&x=79disp('成绩:C')3elseifx=60&&x=69disp('成绩:D')elseifx60disp('成绩:E')elsedisp('输入内容不符合规则,请输入100以内的整数!')end命令窗口中的运行结果:输入一个百分制成绩:x=78成绩:C输入一个百分制成绩:x=54成绩:E输入一个百分制成绩:x=83成绩:B输入一个百分制成绩:x=63成绩:D输入一个百分制成绩:x=209输入内容不符合规则,请输入100以内的整数!输入一个百分制成绩:x=98成绩:A用switch语句实现:文本编辑器窗口中的程序:grades=input('请输入百分制成绩:grades=');switchfix(grades)casenum2cell(90:100)display('A')casenum2cell(80:89)display('B')casenum2cell(70:79)display('C')casenum2cell(60:69)display('D')casenum2cell(0:59)display('E')otherwisedisplay('输入内容不符合规则,请输入100以内的整数!')end命令窗口中的运行结果:43.工资计算硅谷公司员工的工资计算方法如下:(1)工作时数超过120小时者,超过部分加发15%。(2)工作时数低于60小时者,扣发700元。(3)其余按每小时84元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。文本编辑器窗口中的程序a=input('员工号:');b=input('工时数:');ifb=120c=120*84+(b-120)*84*(1+0.15)elseifb=60c=b*84-700elsec=b*84enddisp(['工号为',num2str(a),'员工应得工资为',num2str(c)])命令窗口中的运行结果:员工号:289工时数:125c=510563工号为289员工应得工资为10563员工号:89工时数:98c=8232工号为89员工应得工资为8232员工号:876工时数:57c=4088工号为876员工应得工资为40884.两位数的加、减、乘、除四则运算设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。文本编辑器中的程序:x1=10+(99-10)*rand(1);x2=10+(99-10)*rand(1);m=fix(x1)n=fix(x2)x=input('输入一个运算符:','s');switchxcase{'+'}c=m+n;case{'-'}c=m-n;case{'*'}c=m*n;case{'/'}c=m/n;otherwisec='false';endc命令窗口中运行结果:m=95n=956输入一个运算符:+c=190m=24n=96输入一个运算符:-c=-72m=95n=53输入一个运算符:*c=5035m=81n=22输入一个运算符:/c=3.68185.(用try…catch)建立5×6矩阵,要求输出矩阵第n行元素要求:当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。程序:A=input('输入A的值:')n=input('输入n的值:')tryB=A(n,:);catchB=A(5,:);endBlasterr运行结果:输入A的值:rand(5,6)A=70.44560.67970.95970.25510.54720.25430.64630.65510.34040.50600.13860.81430.70940.16260.58530.69910.14930.24350.75470.11900.22380.89090.25750.92930.27600.49840.75130.95930.84070.3500输入n的值:6n=6B=0.27600.49840.75130.95930.84070.3500ans=AttemptedtoaccessA(6,:);indexoutofboundsbecausesize(A)=[5,6].三、实验提示1.(用if)求分段函数的值2226035605231xxxxyxxxxxxx且且及其他用if语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。步骤:(1)点击MATLAB主窗口的“文本编辑器”按钮,弹出“文本编辑器”窗口。(2)在其中输入程序。(3)(建议先将主窗口中的命令窗口提取出来),点击“保存并运行”按钮,系统提示用何文件名保存该程序,可用默认文件名,或自己起文件名,然后程序运行。8(4)若程序无语法错误,则在命令窗口中显示运行结果;否则显示的是错误信息。如有错,回到文本编辑器进行修改再运行。本程序要用到input语句,在运行中输入即时数据。注意给出提示信息,下面的参考结果中的‘输入:x=’是提示信息。用到标量逻辑“与”运算符“&&”。注意单个“&”是数组逻辑“与”。本程序要运行7次,因为要输入7个数据,参考结果:本程序中第一行可为:x=input(‘输入:x=’);之后是if…elseif…else…end语句,其中x是自变量,y是因变量。最后一行简单输入个y即可。注意其后不加分号,否则不显示y的值。2.(用if、switch)输出成绩等级参考例4.5用switch。用于取整的函数有fix向0方向取整floor向-∞方向取整ceil向+∞方向取整round四舍五入到最邻近的整数94.两位数的加、减、乘、除四则运算用switch。用if语句处理除数为0。产生两个两位随机整数可参考下例中的相关用法:例4.19(递归与非递归)任意排列问题p74randperm(n)产生一个从整数1到整数n的任意排列。编写函数实现randperm(n)的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列。%非递归,函数文件functionY=rndprm1(X)%RNDPRM1用for产生一行向量的任意排列%RNDPRM1(X)产生行向量X的任意排列[m,n]=size(X);ifm1error('RNDPRM1只接受列向量的输入');endY=[];%从一个空矩阵开始l=n;%X的元素个数fori=1:nk=1+fix(l*rand);%随机选择Y的下一个元素的位置,rand等价于rand(1),0rand1x=X(k);%被选择的元素Y=[Y,x];%将x添加到Y中X(k)=[];%从X中删除x元素l=l-1;%更新X的元素个数end5.建立5×6矩阵,要求输出矩阵第n行元素用try…catch…end语句。可用随机函数rand自动生成矩阵。四、教程:第4章MATLAB程序设计(1/3)4.1M文件p564.1.1M文件的分类用MATLAB语言编写的程序,称M文件,扩展名为m。M文件按调用方式分为:命令文件(ScriptFile)函数文件(FunctionFile)两种文件的主要区别:10(1)命令文件无输入参数,无返回输出参数;函数文件可带输入参数,可返回输出参数。(2)命令文件对工作空间中的变量操作;函数文件中定义的变量为局部变量,执行完时,它们被清除。(3)命令文件直接执行;函数文件要以函数调用的方式来调用它。例4.1(命令文件、函数文件)互换变量a,b的值。%程序1:建立命令文件,文件名exch.mclc;clear;%清命令窗口,清工作空间a=1:10;b=[11,12,13,14;15,16,17,18];tmp=a;a=b;b=tmp;aba=1112131415161718b=12345678910%程序2:建立函数文件,取文件名fexch.mfunction[x,y]=fexch(a,b)%a,b为局部变量x=b;y=a;%调用函数文件x=1:10;y=[11,12,13,14;15,16,17,18];[x,y]=fexch(x,y)a=1112131415161718b=123456789104.1.2M文件的建立与打开p571.建立新的M文件启动文本编辑器有3种方法:(1)菜单操作从主窗口的“文件”菜单中选“新建”,再选“空白M-文件”。(2)命令操作在命令窗口输入命令edit。(3)命令按钮操作单击主窗口工具栏上的“新建M-文件”按钮。112.打开已有的M文件(4种方法)(1)菜单操作从“文件”菜单中选“打开”,屏幕出现“打开”对话框,再选要打开的M文件。(2)命令操作在命令窗口输入:edit文件名,打开指定的M文件。(3)命令按钮操作单击工具栏上的“打开文件”按钮,再从弹出的对话框中选所需的M文件。(4)在当前目录窗口操作在当前目录窗口双击要打开的文件名。4.2程序控制结构p584.2.1顺序结构按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。1.数据的输入(从键盘输入)A=input(提示信息,选项);采用's'选项,允许用户输入一个字符串。A=input('输入矩阵A:');xm=input('输入姓名:','s');Axm输入矩阵A:[1,2,3;4,5,6]输入姓名:LingmingA=123456xm=Lingming2.数据的输出disp(输出项)输出项既可为字符串,也可为矩阵。例4.2(顺序结构)求一元二次方程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)),...12',x2=',num2str(x(2))]);a=1b=-5c=6x1=3,x2=23.程序的暂停pause(延迟秒数)pause暂停程序,按任一键程序继续执行。Ctrl+c强行中止程序的运行。4.2.2选择结构p601.if语句(3种格式)(1)单分支if语句if条件语句组end条件成立,执行语句组;否则不执行语句组。(2)双分支if语句if条件语句组1
本文标题:实验03-选择结构程序设计(第4章)
链接地址:https://www.777doc.com/doc-6205609 .html