1《MATLAB程序设计基础》平时作业说明:1-17题为必做题,须分别提交纸质文档及与纸质文档对应的电子文档.doc版。1.对于每输入的一个百分制成绩,要求输出对应的成绩等级A、B、C、D、E。其中A的分值在区间[90,100)内;B的分值在区间[80,90)内;C的分值在区间[70,80)内;D的分值在区间[60,70)内;E的分值在区间[0,60)内;要求:1)要有对输入成绩是否合理的判断:①输入成绩如果含有小数,只能是“x.5”的形式,其实x为合理的整数。②成绩必须在百分制范围内。③如果输入的成绩不合理,应向命令窗口输出报错信息“输入的成绩不合理”2)用if语句实现题目要求x=input('输入一个数值:');%输入ifmod(x,0.5)==0&&x=0&&x100;%mod(x,0.5)表示x除以0.5的余数,用以判断成绩含小数是否为x.5ifx0&x=100%不合理成绩disp('输入的成绩不合理')elseifx100&x=90%成绩[90100)disp('成绩等级为:A')elseifx90&x=80%成绩[8090)disp('成绩等级为:B')elseifx80&x=70%成绩[7080)disp('成绩等级为:C')elseifx70&x=60%成绩[6070)disp('成绩等级为:D')elsedisp('成绩等级为:E')%成绩[060)endelsedisp('输入的成绩不合理')end运行结果:输入一个数值:57成绩等级为:E输入一个数值:93.3输入的成绩不合理3)用switch语句实现题目要求x=input('请输入一个成绩:');%输入ifmod(x,0.5)==0&&x=0&&x100%mod(x,0.5)表示x除以0.5的余数,用以判断成绩含小数是否为x.5switchfloor(x/10)%x除以10向下取整case9disp('成绩等级为:A');case8disp('成绩等级为:B');2case7disp('成绩等级为:C');case6disp('成绩等级为:D');case{5,4,3,2,1,0}disp('成绩等级为:E');otherwisedisp('输入的成绩不合理');endelsedisp('输入的成绩不合理');end运行结果:请输入一个成绩:0成绩等级为:E请输入一个成绩:120输入的成绩不合理请输入一个成绩:95.5成绩等级为:A2.设计程序,完成[10,99]之间两位整数的加、减、乘、除四则运算。要求:1)随机产生区间[10,99]之内的两位随机整数2)在产生符合要求的随机数后,输入一个运算符号,做相应的运算3)运算结果显示在命令窗口,其显示类似于“a=x+y=68”的形式。x=round((99-10)*rand(1)+10);%在区间[1099]随机选一个数xy=round((99-10)*rand(1)+10);%在区间[1099]随机选一个数ysym=input('请输入运算符号(+-*/):','s');switchsym%switch语句case{'+'}a=x+y;disp(['输入的两数之和b=',num2str(x),'+',num2str(y),'=',num2str(a)]);%输出显示类似于“a=x+y=68”的形式case{'-'}a=x-y;disp(['输入的两数之差c=',num2str(x),'-',num2str(y),'=',num2str(a)]);case{'*'}a=x*y;disp(['输入的两数之积d=',num2str(x),'*',num2str(y),'=',num2str(a)]);case{'/'}a=x/y;disp(['输入的两数之商e=',num2str(x),'/',num2str(y),'=',num2str(a)]);otherwisedisp('输入符号错误')end运行结果:请输入运算符号(+-*/):+3输入的两数之和b=95+31=126请输入运算符号(+-*/):-输入的两数之差c=64-53=11请输入运算符号(+-*/):*输入的两数之积d=89*78=6942请输入运算符号(+-*/):/输入的两数之商e=51/12=4.253.求下列分段函数的值并绘制函数曲线。2226,056,1,xxxxyxxxxxxx且-3010,2且3其他要求:1)x的值以向量的形式从键盘输入。2)用if语句实现,分别输出x=﹣5.0,﹣3.0,1.0,2.0,2.5,3.0,5.0时的y值。x=input('pleaseinputx=');ifx0&x~=3y=x.^2+x-6;elseifx=0&x10&x~=2&x~=3y=x.^2-5.*x+6;elsey=x.^2-x-1;enddisp(['y=',num2str(y)])运行结果:pleaseinputx=[-5.0-3.01.02.02.53.05.0]y=1411-112.755193)自行拟定自变量的取值,绘制该分段函数的二维曲线。x=-10:1:15;%自拟自变量的取值ifx0&x~=3y=x.^2+x+6;elseifx=0&x10&x~=2&x~=3y=x.^2-5.*x+6;elsey=x.^2-x-1;endplot(x,y,'r-')%绘制分段函数title('分段函数')xlabel('x')ylabel('y')holdon4图3(3)分段函数的二维曲线4.分别使用for循环语句和while循环语句找出最小的n值,使得n!10100,并求出n!。for循环语句如下:s=1;%对s赋初值forn=1:100%默认步长为1s=s*n;%s=n!if(s10100)break;%如果s10100,结束运行endenddisp(['n=',num2str(n)])%输出ndisp(['s=',num2str(s)])%输出s运行结果:n=8s=40320while循环语句如下:s=1;%对s赋初值n=0;%循环次数赋初值while(s=10100)n=n+1;%不能使用++s=s*n;enddisp(['n=',num2str(n)]);disp(['s=',num2str(s)]);%组合字符串运行结果:n=8s=403205.已知f1=1,n=1f2=0,n=25f3=1,n=3fn=fn-1-2fn-2+fn-3,n3求f1~f50中:1)最大值和最小值及它们的位置、各数之和(最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。2)正数、零、负数的个数(依次赋值给变量N_positive,N_zero,N_negative)。f(1)=1;f(2)=0;f(3)=1;%输入n=3;%赋值while(n50)n=n+1;f(n)=f(n-1)-2*f(n-2)+f(n-3);end[MAX,x]=max(f)%MAX为向量f中最大值元素,x为最大值元素的索引号[MIN,y]=min(f)%MAX为向量f中最小值元素,y为最小值元素的索引号SUM=sum(f)N_positive=numel(find(f0))%numel表示返还数组中的元素个数,N_zero=numel(find(f==0))%返还f中等于0的位置N_negative=numel(find(f0))运行结果:MAX=406631x=49MIN=-403795y=50SUM=76861N_positive=25N_zero=2N_negative=236.Fibonacci数组的元素满足Fibonacci规则:ak+2=ak+ak+1,(k=1,2,3,…);且a1=a2=1。请设计一段程序,求出该数组中第一个大于10000的元素对应的k值以及该元素值。a(1)=1;a(2)=1;k=1;whilea(k)=10000a(k+2)=a(k)+a(k+1);k=k+1;enddisp(['k=',num2str(k)])disp(['a(k)=',num2str(a(k))])运行结果:6k=21a(k)=109467.定义自变量x的取值区间为[﹣5,5],编写一个函数文件,实现绘制函数y=ax3+bx2+cx+d的曲线,其中给定各系数值分别为①a=﹣1,b=2,c=﹣5,d=3;②a=3,b=﹣7,c=1,d=4;③a=0,b=4,c=0,d=﹣5要另外编写调用该函数文件的m文件,实现调用。functionmy1(a,b,c,d)%定义主函数,函数文件名为my1.mx=-5:1:5;%输入xy=a*x.^3+b*x.^2+c*x+d;plot(x,y);%绘制曲线xlabel('x轴');%标志x轴ylabel('y轴');%标志y轴title('函数图像');%设置图名称a=input('pleaseinputa=');%子函数b=input('pleaseinputb=');c=input('pleaseinputc=');d=input('pleaseinputd=');%利用输出参数a,b,c,d向my1传递数据my1(a,b,c,d);%调用的是啊,a,b,c,d四个参数图7(1)图7(2)图7(3)8.设计程序,在一个图形窗体中画出函数y=ex和y=logx的特性曲线。其中y=ex中x取值7区间为(﹣2,2),y=logx中x取值区间为(0.1,5)。要求:1)要有图例、标题('二维图')、坐标轴标签('x轴数据'和'y轴数据');2)每条曲线的属性自己设置,但不能全用默认值。x1=-2:0.1:2;y1=exp(x1);x2=0.1:0.1:5;y2=log(x2);plot(x1,y1,'r*--',x2,y2,'ko-')legend('函数y=exp(x)的特性曲线','函数y=logx的特性曲线')title('二维图')xlabel('x轴数据')ylabel('y轴数据')图89.采用2行2列子图的方式进行二维图形绘制,要求:1)自变量x的取值区间为[0,2π]2)三个函数分别为:y1=sin(x),y2=cos(x),y3=sin(x)+cos(x)3)在第1幅子图绘制y1的曲线;在第2幅子图绘制y2的曲线;在第3幅子图绘制y3的曲线;在第4幅子图中绘制所有3条曲线4)对每一幅子图,都要有图例、坐标轴标签;曲线的属性自己设置,不能全用默认值。x=0:0.1:2*pi;y1=sin(x);y2=cos(x);y3=sin(x)+cos(x);subplot(2,2,1);plot(x,y1,'ro-');legend('sin曲线');title('y=sin(x)');xlabel('横坐标1');ylabel('纵坐标1');subplot(222);8plot(x,y2,'g*-');legend('cos曲线');title('y=cos(x)');xlabel('横坐标2');ylabel('纵坐标2');subplot(223);plot(x,y3,'b-p');legend('sin(x)+cos(x)曲线');title('y=sin(x)+cos(x)');xlabel('横坐标3');ylabel('纵坐标3');subplot(224);plot(x,y1,'ro-',x,y2,'g*-',x,y3,'b-p');%同时绘制三个函数的图像legend('sin曲线','cos曲线','sin(x)+cos(x)曲线');title('三个函数的曲线');xlabel('横坐标');ylabel('纵坐标');图(9)10.采用1行2列子图的方式进行二维图形绘制,要求:1)在第1幅子图绘制三维曲线:x∈[0,20]y=sin(x)z=cos(x)2)在第2幅子图绘制三维曲面:x∈[﹣20,20]y∈[﹣10,10]4y9xz223)对每一幅子