资源描述
实验二 MATLAB程序设计1. 随机产生0100之间的20个数,求其中最大数和最小数。要求:方法1:采用循环结构实现方法2:调用MATLAB的max函数、min函数来实现。解:方法一:用循环结构A=randint(1,20,0,100)for m=1:19 for n=m+1:20 if A(m)A(n) A(m)=A(m)+A(n); A(n)=A(m)-A(n); A(m)=A(m)-A(n); end endenddisp(max=,num2str(A(20)disp(min=,num2str(A(1)方法二:用max、min函数A=randint(1,20,0,100)a=max(A);b=min(A);disp(max=,num2str(a)disp(min=,num2str(b)2. 从屏幕输入两个正整数,求它们的最小公倍数。解:法一:x=input(x=);y=input(y=);m=max(x,y);n=min(x,y);for k=m:m:x*y if rem(k,n)=0 disp(最小公倍数是,num2str(k); break endend法二:直接调用函数x=input(x=);y=input(y=);k=lcm(x,y);disp(最小公倍数是,num2str(k);3. 编写转换成绩等级的函数文件“cj”,考试成绩在80,100分数段的显示优秀,在70,80)分数段的显示良好,60,70)分数段的显示及格,0,60)分数段的显示不及格,要求在命令行输入“cj(X)”后,显示相应的成绩等级。解:function result=cj(x) n=fix(x/10); switch n case 8,9,10 disp(优秀); case 7 disp(良好); case 6 disp(及格); otherwise disp(不及格); end4. 生成一个10*10矩阵,矩阵元素为0,100的随机整数,求其中的最大和最小元素。解:方法一:A=randint(10,10,0,100)M1=max(A);M2=min(A);M11=max(M1);M22=min(M2);disp(最大元素是,num2str(M11)disp(最小元素是,num2str(M22)方法二:A=randint(10,10,0,100)M1=max(A(:);M2=min(A(:);disp(最大元素是,num2str(M1)disp(最小元素是,num2str(M2)5. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?解:x=100;for m=1:9 a=100/2m; x=x+2*a;enddisp(第10次落地时共经过,num2str(x),米)disp(第10次落地后反弹,num2str(100/210),米)6. 找出110000范围内的完数。所谓完数即该数等于其真因数的和 如:28=1+2+4+7+14解:方法一:clear;clck=0;for m=1:10000 s=0;for n=1:m/2 if rem(m,n)=0 s=s+n; end end if s=m k=k+1; a(k)=m; endenddisp(10000以内的完数有:,num2str(a)方法二:巧用“find”函数clear;clcfor m=1:10000 s=0;for n=1:m/2 if rem(m,n)=0 s=s+n; end end if s=m a(m)=m; endendfind(a0);disp(10000以内的完数有:,num2str(ans)7. 求【500,600】之间能被13整除的整数个数,以及第一个和最后一个这样的数。解:n=0;for k=500:600 if rem(k,13)=0 n=n+1; a(n)=k; endenddisp(【500,600】之间能被13整除的整数有,num2str(n),个)disp(【500,600】之间能被13整除的第一个整数是,num2str(a(1)disp(【500,600】之间能被13整除的最后一个整数是,num2str(a(n)
展开阅读全文