实验3MATLAB程序设计

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

1,编写M 函数实现求一个数是否为素数,再编写一主程序(脚本文件),要求

通过键盘输入一个整数,然后调用判断素数函数,从而确定它是否素数。

x=input('请输入一个整数 x:');

if myprime(x)

disp('您输入的整数x是一个素数。')

else

disp('您输入的数x不是一个素数。')

end

function y=myprime(x)

y=1;

for i=2:fix(sqrt(x))

if mod(x,i)==0

y=0;

end

end

2,编写M 函数统计一数值中零的个数,然后编写脚本文件,实现统计从1—2007

中零的总个数。

function num=number0(a) %统计十进制数值中0的个数

sa=num2str(a);%将数值装化为字符串

num=length(find(sa=='0'));% ));%求取字符串中'0’的个数

y=0;

for a=1:2006

num=number0(a);

y=num+y;

end

disp(y)

504

3,编写程序计算x∈[-3,3],字长0.01:并画出曲线

x = -3:0.01:3;

y=zeros(size(x));

for i = 1:length(x)

if -3<= x(i)& x(i)<=-1

3)/2;

elseif -1<= x(i) &

x(i)<=1

y(i)=-x(i).^2+1;

elseif 1<=x(:,i)<=3

y(i)=(-x(i).^2+4*x(i)-

3)/2;

end

end

plot(x,y)

4 ch= menu('please choose a number','1','2','3','4')

switch ch

case 1

a=10-20*rand(1);

case 2

a=5-10*rand(1);

case 3

a=1-2*rand(1);

case 4

a=randn(1);

end

disp(a)

5编写良好的用户界面程序,完成输入全班学生某学期6门课程(任意指定)的成绩,并按学分数分别为2、3、2、4、2、5,进行加权平均,计算出每个学生的加权平均。

a=input('请依次输入语言,数学,英语,物理,化学,生物成绩;如:[68 72 65 68 35 79]:');

w=[2 3 2 4 2.5 1];

sum=0;w1=0;

for e=1:6

w1=w1+w(e);

end

for j=1:6

sum=sum+a(j).*w(j);

end

y=sum./w1;

disp(y)

6、企业发放的奖金按个人完成的利润提成。分段提成比例K1为:当I≤10万元时K1=10%;当10<I≤20万元时,K1=5%;当20<I≤40万元时,K1=2%;当I>40万元时,I=1%。

function y=lirun(x)

if x<=10

y=x*0.1;

elseif x>10&&x<=20

y=(x-10)*0.05+10*0.1;

elseif x>20&&x<=40

y=(x-20)*0.02+10*0.05+10*0.1;

elseif x>40

y=(x-40)*0.01+10*0.02+10*0.05+10*0.1;

End

X=25;

Y=lirun(x)

9、有一分数序列2/1,3/2,5/3,8/5,13/8,21/13……求前15项的和。

d=0 ;

a(1)=2;

b(1)=1;

a(2)=3;

b(2)=2;

c(1)=a(1)./b(1);

c(2)=a(2)./b(2);

for i=3:15

a(i)=a(i-2)+a(i-1);

b(i)=b(i-2)+b(i-1);

c(i)=a(i)./b(i);

end

for j=1:15

d=d+c(j);

end

disp(d)

24.5701

10、有n个人围成一圈,按列号编号。从第一个人开始报数,数到m时该人退出,并且下一个人从1开始报数,求出出圈人的顺序。

function y=shaixuan(a,b)

n=a;

x=[1:n];

i=0;m=0;j=1;

while(n>0)

i=i+1;m=m+1;

if(m==b)

k(j)=x(i);j=j+1;n=n-1;

for(v=i:n)

x(v)=x(v+1);

end

m=0;i=i-1;

end

if(i==n)

i=0;

end

end

y=k;

y=shaixuan(20,7)

y =

7 14 1 9 17 5 15 4 16 8 20 13 11 10 12 19 6 18 20 3

相关文档
最新文档