知ing

MATLAB程序设计与应用(第二版)

刘卫国 编 / 高等教育出版社

萌吹 上传

查看本书

实验三 选择程序结构设计

第一题程序一

x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0];

y=[];                             %建立存放所有y值的矩阵

for x0=x

    if x0<0&x0~=-3

        y=[y,x0*x0+x0-6];

    elseif x0>=0&x0<5&x0~=2&x0~=3

        y=[y,x0*x0-5*x0+6];

    else

        y=[y,x0*x0-x0-1];

    end

end

x                                 %输出所有x

y                                 %

出所有y

%第一题程序二

x=[-5,-3,1,2,2.5,3,5];

y=[];

for a=1:7

if x(a)<0&x(a)~=-3

y=[y,(x(a))^2+x(a)-6];

elseif x(a)>=0&x(a)<5&x(a)~=2&x(a)~=3

y=[y,(x(a))^2-5*x(a)+6];

else

y=[y,x(a)*x(a)-x(a)-1];

end

end

%第二题程序一:

x=input('请输入一个百分制成绩');

if x>100|x<0

disp('您输入的成绩不是百分制成绩请重新输入。');

else

if x<=100&x>=90

disp('A');

elseif x<=89&x>=80

disp('B');

elseif x<=79&x>=70

disp('C');

elseif x<=69&x>60

disp('D');

else

disp('E');

end

end

%第二题程序二:

s=input('请输入一个成绩(0分到100分之间):');  %s用于存放成绩

while 1                                       %判断输入成绩的合理性

    if s<0|s>100

        disp('输入的成绩需在0100之间,请重新输入:')

        s=input('请输入一个成绩(0分到100分之间):');

    else

       break;

    end

end

switch fix(s/10)                              %对成绩做出等级判断

    case {9,10}

        disp('A')

    case 8

        disp('B')

    case 7

        disp('C')

    case 6

        disp('D')

    otherwise

        disp('E')

end

%第三题

n=input('请输入员工工号:');

h=input('该员工工作时数是:');

if h>120

x=(h-120)*84*(1+0.15)+120*84;

elseif h<60

x=h*84-700;

else

x=h*84;

end

disp([num2str(n),'号员工','的应发工资为',num2str(x)]);

%第四题(还可以用switch语句实现)

a=fix(10+(99-10)*rand(1,2))                    %产生两个随机整数

x=a(1);

y=a(2);

t=input('请输入运算符号:','s');

if t=='+'

    z=x+y;

elseif t=='-'

    z=x-y;

elseif t=='*'

    z=x*y;

elseif t=='/'

    z=x/y;

end

disp([num2str(x),t,num2str(y),'=',num2str(z)])   %输出运算结果

%第五题

a=rand(5,6)              %产生5x6的随机矩阵

n=input('请输入您要输出矩阵的第几行:');

if n>5

    disp('超出了矩阵的行数,矩阵的最后一行为:')

    a(5,:)

else

    disp(['矩阵的第',num2str(n),'行为:'])

    a(n,:)

end




实验四 循环结构程序设计

第一题程序一

s=0;

n=input('n=?');

for i=1:n

    s=s+1/i/i;

end

PI=sqrt(6*s)

pi

%第一题程序二

n=input('n=?');

a=1:n;

b=1./a.^2;

PI=sqrt(6*sum(b))

pi

%第二题

y=0;

n=1;

while(y<3)

y=y+1/(2*n-1);

n=n+1;

end

y=y-1/(2*(n-1)-1)

n=n-2

%

a=input('a=?');

b=input('b=?');

Xn=1;

Xn1=a/(b+Xn);

n=0;

while abs(Xn1-Xn)>1e-5

    Xn=Xn1;

    Xn1=a/(b+Xn);

    n=n+1;

    if n==500

        break;

    end

end

n

Xn1

r1=(-b+sqrt(b*b+4*a))/2

r2=(-b-sqrt(b*b+4*a))/2

%第四题

for i=1:100

if i==1

f(i)=1;

elseif i==2

f(i)=0;

elseif i==3

f(i)=1;

else

f(i)=f(i-1)-2*f(i-2)+f(i-3);

end

end

max(f)

min(f)

sum(f)

length(find(f>0))

length(find(f==0))

length(find(f<0))

%第五题:

s=0;n=0;

for i=2:49

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

m=fix(sqrt(b));

for j=2:m

if rem(b,j)==0

break

end

end

if j==m

n=n+1;

s=s+b;

end

end

n

s



查看更多