当前位置:文档之家› (完整版)Matlab实验5选择结构程序结构

(完整版)Matlab实验5选择结构程序结构

实验五、选择与循环结构一、实验目的:1、 掌握建立和执行M 文件的方法。

2、 掌握利用if 语句实现选择结构的方法。

3、 掌握利用switch 语句实现多分支选择结构的方法。

4、 掌握try 语句的使用。

5、 掌握利用for 语句实现循环结构的方法。

6、 掌握利用while 语句实现循环结构的方法。

7、 熟悉利用向量运算来代替循环的操作方法。

二、实验内容:1、 列分段函数的值。

⎪⎩⎪⎨⎧--≠≠<≤+--≠<-+=其他且且,632,100,6530,6222x x x x x x x x x x x y要求:(1) 用if 语句实现,分别输出x =-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。

提示:x 的值从键盘输入,可以是向量。

%homework_5_1_1.mx=input('请输入x 的值:x=');if (x<0 & x~=-3)y= x.*x + x - 6elseif (x>=0 & x<10 & x~=2 & x~=3)y=x.*x-5.*x+6elsey=x.*x-x-6end>> homework_5_1请输入x 的值:x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]y =-5.2500 6.0000 -6.0000 -4.0000 -2.2500 0 14.0000(2) 用逻辑表达式实现上述函数。

%homework_5_1_2.mx=input('请输入x 的值:x=')y=(x<0 & x~=-3).*(x.*x+x-6)...+(x>=0 & x<10 &x~=2 &x~=3).*(x.*x-5.*x+6)...+(x>=10 | x==-3 | x==3 | x==2).*(x.*x-x-6)>> homework_5_1_2请输入x=[-0.5 -3.0 1.0 2.0 2.5 3.0 5.0]x =-0.5000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y =-6.2500 6.0000 2.0000 -4.0000 -0.2500 0 6.00002、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。

其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:(1)分别用if语句和switch语句实现。

%homework_5_2_1.mclear;disp(' if_else语句!')x=input('请输入分数:');if (x<=100 & x>=90)disp('A')elseif (x>=80 & x<=89)disp('B')elseif (x>=70 & x<=79)disp('C')elseif (x>=60 & x<=69)disp('D')elseif (x<60)disp('E')end>> homework_5_2_1if_else语句!请输入分数:99A>> homework_5_2_1if_else语句!请输入分数:50E%homework_5_2_1_switch.mclear;disp(' switch语句!')c=input('请输入成绩:');switch ccase num2cell(90:100),disp('A');case num2cell(80:89),disp('B');case num2cell(70:79),disp('C');case num2cell(60:69),disp('D');otherwisedisp('E');end>> homework_5_2_1_switch请输入成绩:95A(2)输入百分制成绩后要判定该成绩的合理性,对不合理的成绩要输出出错信息。

%homework_5_2_1.mclear;disp(' if_else语句!')x=input('请输入分数:');if (x<=100 & x>=90)disp('A')elseif (x>=80 & x<=89)disp('B')elseif (x>=70 & x<=79)disp('C')elseif (x>=60 & x<=69)disp('D')elseif (x<60)disp('E')elseif (x<0 | x>100)disp('ERROR')end>> homework_5_2_1if_else语句!请输入分数:120ERROR%homework_5_2_1_switch.mclear;disp(' switch语句!')c=input('请输入成绩:');switch ccase num2cell(90:100),disp('A');case num2cell(80:89),disp('B');case num2cell(70:79),disp('C');case num2cell(60:69),disp('D');case num2cell(0:59),disp('E');otherwisedisp('输入错误!');end>> homework_5_2_1_switch请输入成绩:120输入错误!3、 建立 5×6矩阵,要求输出矩阵的第n 行元素,当n 值超过矩阵的行数时,自动转为输出矩阵最后一行元素、并给出出错信息。

%homework_5_3.mclear;clc;A=eye(6);A(6,:)=[];An=input('输出矩阵的第n 行元素,n=');tryA(n,:)catchdisp('矩阵只有5行元素!');end>> homework_5_3A =1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 0输出矩阵的第n 行元素,n=4ans =0 0 0 1 0 0>> homework_5_3A =1 0 0 0 0 00 1 0 0 0 00 0 1 0 0 00 0 0 1 0 00 0 0 0 1 0输出矩阵的第n 行元素,n=7矩阵只有5行元素!4、 根据2222212121116n++++= π求π的近似值。

当n 分别取100、1000、10000结果是多少?要求:分别用循环结构和向量运算(使用sum 函数)来实现。

%homework_5_4.mclear;disp('循环结构');n=input('输入循环次数 n= ');y=0;for i=1:ny=y+1./(i.*i);enddisp(['圆周率=',num2str(sqrt(6.*y))]);>> homework_5_4循环结构输入循环次数 n= 100圆周率=3.1321>> homework_5_4循环结构输入循环次数 n= 1000圆周率=3.1406>> homework_5_4循环结构输入循环次数 n= 10000圆周率=3.1415%homework_5_4_sum.mclear;disp('向量运算(使用sum 函数)');n=input('循环次数 n= ');i=1:n;y=1./(i.*i);disp(['圆周率=',num2str(sqrt(6*sum(y)))]);>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 100圆周率=3.1321>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 1000圆周率=3.1406>> homework_5_4_sum向量运算(使用sum 函数)循环次数 n= 10000圆周率=3.14155、 根据12151311-++++=n y ,求: (1)3<y 的最大n 值。

(2)与(1)的n 对应的y 。

%homework_5_5.mclear;y=0;for i=1:10000y=y+1./(2.*i-1);if(y>=3)break;endendy=y-1./(2.*i-1)i=i-1>> homework_5_5y =2.9944i =566、一个三位整数各位数字的立方和等于该数的本身则称该数为水仙花数。

试输出全部水仙花数。

要求:(1)用循环结构实现。

%homework_5_6_1.m%fix(x)向零取整clearfor M=100:999M3=fix(M./100); %fix(x)向零取整M2=fix((M-M3.*100)./10);M1=M-100.*M3-10.*M2;if(M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3==M)disp(M);endend>> homework_5_6_1153370371407(2)用向量运算来实现。

提示:全部三位整数组成向量M;分别求M各个元素的个位、十位、百位数字,组成向量M1、M2、M3;向量N=M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3;向量K=M-N;显然K中的零元素的序号即M中的水仙花的序号。

%homework_5_6_2.mclearM=100:999;M3=fix(M./100); %fix(x)向零取整M2=fix((M-M3.*100)./10);M1=M-100.*M3-10.*M2;N=M1.*M1.*M1+M2.*M2.*M2+M3.*M3.*M3;K=M-N;M(find(K==0))>> homework_5_6_2ans =153 370 371 4077、 已知 ⎪⎪⎩⎪⎪⎨⎧>+-====---3,2101321321n f f f f f f f n n n n求1001f f -中:(1)最大值、最小值、各数之和。

相关主题