matlab第三章课后部分答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

习题三

3-2 从键盘输入一个三位整数,将它反向输出。如输入639,输出为936

程序如下:

m=input('请输入一个三位整数:');

m1=fix(m/100);%求m的百位整数

m2=rem(fix(m/10),10);%求m的十位数字

m3=rem(m,10);%求m的个位数字

m=m3*100+m2*10+m1%反向输出m

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

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

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。程序如下:

(1)if语句

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

if c>=90&c<=100

disp('A 成绩合理');

elseif c>=80&c<=89

disp('B 成绩合理');

elseif c>=70&c<=79

disp('C 成绩合理');

elseif c>=60&c<=69

disp('D 成绩合理');

elseif c<60

disp('E 成绩合理');

else

disp('成绩错误');

end

(2)switch语句

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

switch fix(c)

case 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 成绩合理');

otherwise

disp('成绩错误');

end

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

程序如下:

clear all

a=fix(rand(5,6)*89)+10;

n=input('请输入行数n(输出结果是5*6矩阵的元素):');

if n>5|n<0

b=a(5:5,:);

disp(['输入行数错误,程序输出最后一行:',num2str(b)])

else

c=a(n:n,:);

disp(['输出结果为:',num2str(c)])

end

3-5 产生20个两位随机整数,输出其中小于平均值的偶数。

程序如下:

x=fix(rand(1,20)*89)+10;

x1=fix(sum(x)/20);

disp(['平均数是: ',num2str(x1)])

m=(rem(x,2)==0&x

n=find(m);

disp(['小于平均数的数是: ',num2str(x(n))]);

3-6 输入20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB的max函数、min函数来实现。

程序如下:

主函数

c=input('请输入20个数:')

disp('最大值是:')

m=max(c)

disp('最小值是:')

n=min(c)

max函数

function m=max(a[])

m=a(1,20);

for i=2:20

if m>a(1,i)

m=a(1,i)

end

end

min函数

function n=min(a[])

m=a(1,20);

for i=2:20

if n

n=a(1,i)

end

end

3-8 当n分别取100、1000、10000时,求下列各式的值:(1)1/1^2+1/2^2+1/3^2+···+1/n^2+···(=pi^2/6)程序如下:

clear all

n=1:100;

b=1./(n.*n);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(n.*n);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时:

当n等于1000时:

当n等于10000时:

(2) 1-1/3+1/5-1/7+···(=pi/4)

程序如下:

clear all

n=1:100;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于100时: ',num2str(c)])

n=1:1000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于1000时: ',num2str(c)])

n=1:10000;

b=1./(4.*n-3)-1./(4.*n-1);

c=sum(b);

disp(['当n等于10000时: ',num2str(c)])

结果:>> 当n等于100时:

当n等于1000时:

当n等于10000时:

(3)1/4+1/16+1/64+···+1/4^n+···(=1/3)

程序如下:

clear all

n=1:100;

b=1./(4.^n);

相关文档
最新文档