Matlab练习及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档