matlab第三章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 1 题: 从键盘输入一个3位数,将它反向输出。如输入639 输出936、
n1=fix(n/100); n2=rem(fix(n/10),10);
n3=rem(n,10); m=n3*100+n2*10+n1;
disp(m)
请输入一个三位数:489
984
第2题:
输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90~100分为A,80~89分为
B、70~79 分为
C、60~69 分为D,60 分以下为E。要求:(1) 分别用if 语句与switch 语句实现。
(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出错信息。
If 语句:
>> s=input(' 请输入成绩分数:');
if s>=90&s<=100
disp('A');
elseif s>=80&s<=89
disp('B');
elseif s>=70&s<=79
disp('C');
elseif s>=60&s<=69
disp('D');
elseif s>=0&s<60
disp('E');
else disp('false');
end
请输入成绩分数:89
B
Switch 语句:
>> s=input(' 请输入成绩分数:');
switch fix(s/10)
case {9,10}
disp('A');
case {8}
disp('B');
case {7}
disp('C');
case {6}
disp('D');
case {5,4,3,2,1,0}
disp('E');
otherwise disp('false');
end
请输入成绩分数:88
B
第3题
输入20个数,求其中最大数与最小数。要求分别用循环结构与调用MATLAB的max函数、min 函数来实现。
1循序结构
A=[1 2 3 4 5 6 7 23 32 12 53 1 23 53 5 235 31 8888 33 3 21]; %还可用A=input('ENTER A:'); min=A(1);
max=A(1);
for i=1:19
if A(i+1)>max max=A(i+1);
end
if A(i+1) min=A(i+1); end end max min 结果: max = 8888 min = 1 2调用matlab 函数 funtion f=max(A) f=A(1); for i=1:20; m=A(i); %还可用A=input('ENTER A:'); if m>f; f=m; end end end funtion f=min(A) f=A(1); for i=1:20; %还可用A=input('ENTER A:'); m=A(i); if m f=m; end end end A=i nput('ENTER A:'); a=max(A); b=mi n( A); a b 第4题 0.3a 0.3a e e 0.3 a y= -------------- sin (a 0.3) ln -------- ,当 a 取-3、0、-2、9、-2、8、、2、8、2、9、3、0 2 2 时,求各点的函数值。要求分别用顺序结构与循环结构实现。 顺序结构 a=-3、0:0、1:3、0; y=(exp(0、3*a)-exp(-0、3*a))/2、*sin(a+0、3)+log((0、3+a)/2); y 循环结构 a=-3、0; while a<=3、0 y=(exp(0、3*a)-exp(-0、3*a))/2、*sin(a+0、3)+log((0、3+a)/2) a=a+0、1; end y 第5题 当n分别取100、1000、10000时,求下列各式的值: (1) 循环结构: n=input('请输入一个数:'); sum=0; for i=1: n sum=sum+1/(i*i); end sum 向量运算 n=input('请输入一个数:') a=1:1: n; b=1:1: n; y=sum(1、/(a、*b)); y (2)循环结构 n=input('请输入一个数:') s=1; for i=1: n s=s*(i+1)*(i+1)/(i*(i+2)); end s 向量运算 n=input(' 请输入一个数:'); a=2:2:2*n; b=1:2:(2*n-1); c=3:2:(2*n+1); e=(a、*a)、/(b 、*c); y=e、*e; y n=input(' 请输入一个数:'); y=1; a=2:2:2*n; b=1:2:(2*n-1); c=3:2:(2*n+1); y=prod((a 、*a)、/(b 、*c)); y 第6题 建立5x6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。 A=[1,2,3,4,5,6;2,3,4,5,6,7;3,4,5,6,7,8;4,5,6,7,8,9;5,6,7,8,9,0]; n=input(' 需要输出矩阵的行数:'); if n>0 & n<6 disp(A(n,:)); else disp(A(5,:));disp('false!'); end 第7题 (1) function f=factor(n) f=n+10*log( n^2+5); end y=factor(40)/(factor(30)+factor(20)); (2) function f=factor1(n) a=1:1:n; b=2:1:(n+1); f=sum(a、*b); end y=factor1(40)/(factor1(30)+factor1(20)); 思考题 2(1)2、*N (2)1/2、*N(3)1 、/N(4)1、/(N、*N) 4、( 1 )循环结构 n=input(' 请输入一个数:') y=0; for i=1:n y=y+(-i)F-i)/(2*i-i); end y 向量运算