Matlab练习及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 练习一
1、一个三位整数各位数字的立方和等于该数本身,则称该数为水仙花数。试编写程序找到并输出全部水仙花数。
2、若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6 是完数。求[1 500]之间的全部完数。
3、写一个函数pifun 计算下列级数:
F(n)=4*(1-1/3+1/5-1/7+...)
并使用tic 和toc 指令来测量pifun(1000000)的计算时间。
4、输入一个百分制成绩,要求输出成绩等级为A~E,即90~100 为A,80~89 为B,70~79 为C,60~69 为D,60 以下为E。
5、输入x,y 的值,并将它们的值互换后输出。
6、某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price 来表示):
price<200 没有折扣;200≤price<500 3%折扣;500≤price<1000 5%折扣;
1000≤price<2500 8%折扣;2500≤price<5000 10%折扣;5000≤price 14%折扣
输入所售商品的价格,求其实际销售价格。
7、由指令A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5 的元素的位置。
8、写一程序求1!+2!+ (10)
9、编写一个函数,找出矩阵A 中最大元素和最小元素所在的行列号。
10、从键盘输入的10 个整数中,找出第一个能被7 整除的数。若找到,打印此数后退出循环;若未找到,打印“not exist”。
function shuixian(n) %n为用户输入的一个整数n=3;
W=zeros(1,n);
ss=0;
for m=10^(n-1):10^n-1
for i=1:n
W(i)=fix(rem(m,10^(n+1-i))/10^(n-i));
end
W=W.^n;
for j=1:n
ss=ss+W(j);
end
if m==ss
disp(m);
end
ss=0;
W=zeros(1,n);
end
2.
for m=1:500
sum=0;
for n=1:m/2
if rem(m,n)==0
sum=sum+n;
end
end
if sum==m
m
end
end
3.
n=input('请输入n值:');
tic;
f=0;
for i=1:n
f=f+4*((-1)^(i+1))/(2*i-1) ;
end
f
toc
4.1
m=input('请输入一个百分制成绩:');
m=ceil(m/10);
switch m
case {10,9}
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('输入有误!')
end
4.2
a=input('请输入一个百分制成绩:');
if a>=90 & a<=100
disp('A');
else if a>=80 & a<90
disp('B'); else if a>=70 & a<80 disp('C'); else if a>=60 & a<70 disp('D'); else if a>=0 & a<60 disp('E'); else
disp('输入数据有误,请核对......');
end
end
end
end
end
5.
x = input('x=');
y = input('y=');
disp ([x,y]);
t=x;
x=y;
y=t;
disp ([x,y]);
x=input('price:')
if x<200
f=x;
else if x<500
f=x*0.97;
else if x<1000
f=x*0.95;
else if x<2500
f=x*0.92;
else if x<5000 f=x*0.90;
else
f=x*0.86;
end
end
end
end
end
f
7.
A=rand(3,5)
for i=1:3
for j=1:5
if A(i,j)>0.5
Ai=i;
Aj=j;
Aij=[i,j]
end
end
end
sum=0;
for m=1:10
i=1;
for n=1:m
i=i*n;
end
sum=sum+i;
end
sum
10.
a=zeros(1,10);
for i=1:10
a(i)=input('please enter number'); end
for i=1:10
if (rem(a(i),7)==0)
a(i)
break
end
end
if (i==0&&rem(a(i),7)~=0)
disp('not exist')
end