最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Matlab实验5 选择结构程序结构

来源:动视网 责编:小OO 时间:2025-10-02 07:27:23
文档

Matlab实验5 选择结构程序结构

实验五、选择与循环结构一、实验目的:1、掌握建立和执行M文件的方法。2、掌握利用if语句实现选择结构的方法。3、掌握利用switch语句实现多分支选择结构的方法。4、掌握try语句的使用。5、掌握利用for语句实现循环结构的方法。6、掌握利用while语句实现循环结构的方法。7、熟悉利用向量运算来代替循环的操作方法。二、实验内容:1、列分段函数的值。要求:(1)用if语句实现,分别输出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。提示:x的值从键盘输入,可以是向量。%
推荐度:
导读实验五、选择与循环结构一、实验目的:1、掌握建立和执行M文件的方法。2、掌握利用if语句实现选择结构的方法。3、掌握利用switch语句实现多分支选择结构的方法。4、掌握try语句的使用。5、掌握利用for语句实现循环结构的方法。6、掌握利用while语句实现循环结构的方法。7、熟悉利用向量运算来代替循环的操作方法。二、实验内容:1、列分段函数的值。要求:(1)用if语句实现,分别输出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。提示:x的值从键盘输入,可以是向量。%
实验五、选择与循环结构

一、实验目的:

1、掌握建立和执行M文件的方法。

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

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

4、掌握try语句的使用。

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

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

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

二、实验内容:

1、列分段函数的值。

要求:

(1) 用if语句实现,分别输出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。

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

%homework_5_1_1.m

x=input('请输入x的值:x=');

if (x<0 & x~=-3)

    y= x.*x + x - 6

elseif (x>=0 & x<10 & x~=2 & x~=3)

     y=x.*x-5.*x+6

else

    y=x.*x-x-6

end

>> 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.m

x=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.0000

2、输入一个百分制成绩,要求输出成绩的等级为A,B,C,D,E。其中90~100分为A,80~分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

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

%homework_5_2_1.m

clear;

disp(' if_else语句!')

x=input('请输入分数:');

if (x<=100 & x>=90)

    disp('A')

elseif (x>=80 & x<=)

    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_1

if_else语句!

请输入分数:99

A

>> homework_5_2_1

if_else语句!

请输入分数:50

E

%homework_5_2_1_switch.m

clear;

disp(' switch语句!')

c=input('请输入成绩:');

 switch c

  case num2cell(90:100),  

      disp('A');

  case num2cell(80:),    

      disp('B'); 

  case num2cell(70:79),

      disp('C'); 

  case num2cell(60:69), 

      disp('D'); 

  otherwise

disp('E');

 end

>> homework_5_2_1_switch

switch语句!

请输入成绩:95

A

(2)输入百分制成绩后要判定该成绩的合理性,对不合理的成绩要输出出错信息。

%homework_5_2_1.m

clear;

disp(' if_else语句!')

x=input('请输入分数:');

if (x<=100 & x>=90)

    disp('A')

elseif (x>=80 & x<=)

    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_1

if_else语句!

请输入分数:120

ERROR

%homework_5_2_1_switch.m

clear;

disp(' switch语句!')

c=input('请输入成绩:');

 switch c

  case num2cell(90:100),  

      disp('A');

  case num2cell(80:),    

      disp('B'); 

  case num2cell(70:79),

      disp('C'); 

  case num2cell(60:69), 

      disp('D'); 

  case num2cell(0:59), 

      disp('E'); 

  otherwise

      disp('输入错误!');

 end

>> homework_5_2_1_switch

switch语句!

请输入成绩:120

输入错误!

3、建立 5×6矩阵,要求输出矩阵的第n行元素,当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素、并给出出错信息。

%homework_5_3.m

clear;

clc;

A=eye(6);

A(6,:)=[];

A

n=input('输出矩阵的第n行元素,n=');

try

  A(n,:)

catch

  disp('矩阵只有5行元素!');

end

>> homework_5_3

A =

     1     0     0     0     0     0

     0     1     0     0     0     0

     0     0     1     0     0     0

     0     0     0     1     0     0

     0     0     0     0     1     0

输出矩阵的第n行元素,n=4

ans =

     0     0     0     1     0     0

>> homework_5_3

A =

     1     0     0     0     0     0

     0     1     0     0     0     0

     0     0     1     0     0     0

     0     0     0     1     0     0

     0     0     0     0     1     0

输出矩阵的第n行元素,n=7

矩阵只有5行元素!

4、根据求的近似值。当n分别取100、1000、10000结果是多少?

要求:分别用循环结构和向量运算(使用sum函数)来实现。

%homework_5_4.m

clear;

disp('循环结构');

n=input('输入循环次数 n= ');

y=0;

for i=1:n

    y=y+1./(i.*i);

end

disp(['圆周率=',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.m

clear;

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.1415

5、根据,求:

(1)的最大n值。

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

%homework_5_5.m

clear;

y=0;

for i=1:10000

    y=y+1./(2.*i-1);

    if(y>=3)

        break;

    end

end

y=y-1./(2.*i-1)

i=i-1

>> homework_5_5

y =

    2.9944

i =

    56

6、一个三位整数各位数字的立方和等于该数的本身则称该数为水仙花数。试输出全部水仙花数。

要求:

(1)用循环结构实现。

%homework_5_6_1.m

%fix(x)向零取整

clear

for M=100:999

    M3=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);

    end

end

>> homework_5_6_1

 153

   370

   371

   407

(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.m

clear

M=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_2

ans =

   153   370   371   407

7、已知 

求中:

(1)最大值、最小值、各数之和。

(2)正数、零、负数的个数。

提示:可以考虑使用Matlab的有关函数实现。

%homework_5_7_1.m

clear;

zheng=0;

ling=0;

fu=0;

for i=1:100

    if(i==1)

        f(i)=1;

    elseif(i==2)

        f(i)=0;

    elseif(i==3)

        f(i)=1;

    else

        f(i)=f(i-1)-2.*f(i-2)+f(i-3);

    end 

    if(f(i)>0)

        zheng=zheng+1;

    end

    if(f(i)==0)

        ling=ling+1;

    end

    if(f(i)<0)

        fu=fu+1;

    end

end

disp(['max(f)=',num2str(max(f)),blanks(4),'min(f)=',num2str(min(f)),blanks(4),'sum(f)=',num2str(sum(f))]);

disp(['zheng=',num2str(zheng),blanks(4),'ling=',num2str(ling),blanks(4),'fu=',num2str(fu)]);

>> homework_5_7_1

max(f)=437763282635    min(f)=-9412113528    sum(f)=-742745601951

zheng=49    ling=2    fu=49

8、从数组{1,2。。n}随机选出m(m<=n))个不重复的元素.

n=input('n=?');

a=1:n;

m=input('m=?');

b=zeros(size(1:m));

for i=1:m

c=unidrnd(n,1);

d=a(c);

a(c)=a(n);

a(n)=d;

b(i)=a(n);

n=n-1;

end

b

9、假定某地区的电话收费标准为:通话时间在3分钟以下,收费为0.5元,3分钟以上,则每超过1分钟加收0.15元;在7:00~22:00之间通话者,按上述收费标准全价收费,在其它时间通话者,按上述收费标准半价收费。计算某人在t1时刻通话到t2时刻,应交多少电话费。(选做,有挑战性)

文档

Matlab实验5 选择结构程序结构

实验五、选择与循环结构一、实验目的:1、掌握建立和执行M文件的方法。2、掌握利用if语句实现选择结构的方法。3、掌握利用switch语句实现多分支选择结构的方法。4、掌握try语句的使用。5、掌握利用for语句实现循环结构的方法。6、掌握利用while语句实现循环结构的方法。7、熟悉利用向量运算来代替循环的操作方法。二、实验内容:1、列分段函数的值。要求:(1)用if语句实现,分别输出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。提示:x的值从键盘输入,可以是向量。%
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top