if n>499 break end end
disp(['迭代结果是:',num2str(x)]) disp(['循环次数是',num2str(n),'次']) r1=(-b+sqrt(b^2+4*a))/2; r2=(-b-sqrt(b^2+4*a))/2;
disp(['如果迭代收敛,准确值是:',num2str(r1),' 或者是:',num2str(r2)]) 4、for n=1:4 if n==1 f1=1; elseif n==2 f2=0; elseif n==3 f3=1; else
a=f3-2*f2+f1; b=a-2*f3+f2; c=b-2*a+f3; d=c-2*b+a;
H=[1,0,1,a,b,c,d]; for m=8:4:99 a=d-2*c+b; b=a-2*d+c; c=b-2*a+d; d=c-2*b+a; H=[H,a,b,c,d]; end
f100=d-2*c+b; end end
max=max(H); min=min(H); sum=sum(H);
disp(['最大值是:',num2str(max)]) disp(['最小值是:',num2str(min)]) disp(['各数和是:',num2str(sum)]) k=0; l=0; p=0; for e=H if e>0
k=k+1;
elseif e<0 l=l+1; else
p=p+1; end end
disp(['正数的个数是:',num2str(k)]) disp(['负数的个数是:',num2str(l)]) disp(['零的个数是: ',num2str(p)]) 5、p=0; l=0; H=[];
for m=2:50 a=m; b=m+1; c=a*b-1; for k=1:c
if rem(c,k)==0 l=l+1; end end if l==2
disp(['亲密数对是','(',num2str(a),' ,',num2str(b),')']) p=p+1; H=[H,c]; end l=0; end
sum=sum(H);
disp(['亲密数对的个数是:',num2str(p)]) disp(['亲密数对的和是: ',num2str(sum)])
=================================================================================== 教师的解答:
实验三 选择结构程序设计的m文件
以下程序仅供参考,请同学们自己编写该题的程序。 1、fdhs.m
x=input('请输入x的值:'); if x<0&x~=-3 y=x*x+x-6;
elseif x>=0&x<5&x~=2&x~=3 y=x*x-5*x+6; else
y=x*x-x-1; end
y
2、用if语句cj1.m
x=input('please import results:'); if x<0|x>100
disp('Error: wrong data'); elseif x<=100&x>=90 assess='A' elseif x<=89&x>=80 assess='B' elseif x<=79&x>=70 assess='C' elseif x<=69&x>=60 assess='D' else assess='E' end
用switch语句cj2.m
x=input('please import results:'); switch floor(x/10) case {9,10} assess='A'; case {8}
assess='B'; case {7}
assess='C'; case {6}
assess='D';
case {0,1,2,3,4,5} assess='E'; otherwise
assess='Error:wrong data'; end assess 3、gz.m
number=input('please import the number:'); y=input('please import the time:'); if y>=120
pay=84.*(y-120)*1.15+120*84; elseif y<60
pay=84*y-700; else pay=84*y;
end number pay
4、szys.m
a=fix(rand(1)*89)+10; disp(['a=',num2str(a)]) b=fix(rand(1)*89)+10; disp(['b=',num2str(b)])
x=input('请输入一个四则运算符号','s'); if abs(x)==43 c=a+b;
elseif abs(x)==45 c=a-b;
elseif abs(x)==42 c=a*b;
elseif abs(x)==47 c=a/b;
else c='Error'; end c
5、jzys.m a=rand(5,6)
n=input('请输入行数:'); try
b=a(n,:); catch
b=a(5,:); end b
lasterr
实验四 循环结构程序设计
1、循环方法的m文件pi1.m n=input('请输入n:'); y=0;
for i=1:n
y=y+1/i^2; end
PI=sqrt(6*y)
向量方法的m文件pi2.m n=input('请输入n:'); i=1:n; f=1./i.^2;
y=sum(f); PI=sqrt(6*y)
2、maxn.m y=0;n=0; while y<3 n=n+1;
y=y+1/(2*n-1); end n=n-1
y=y-1/(2*n-1) 3、dd.m
a=input('请输入a:'); b=input('请输入b:');
r1=(-b-sqrt(b^2+4*a))/2;r2=(-b+sqrt(b^2+4*a))/2; x0=1.0;x=1.0; for n=1:500 x0=x;
x=a/(b+x0);
if abs(x-x0)<=1e-5 break end end x
e1=x-r1 e1=x-r2 4、f100.m
f=zeros(1,100);
f(1)=1;f(2)=0;f(3)=1; p=2;n=0;z=1;
sum=2;max=1;min=0; for i=4:100
f(i)=f(i-1)-2*f(i-2)+f(i-3); sum=sum+f(i); if f(i)>0 p=p+1; elseif f(i)<0 n=n+1; else
z=z+1; end
if f(i)>max max=f(i); elseif f(i)