實(shí)驗三 選擇程序結(jié)構(gòu)設(shè)計
第一題程序一
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('輸入的成績需在0到100之間,請重新輸入:')
????????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('該員工工作時數(shù)是:');
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),'號員工','的應(yīng)發(fā)工資為',num2str(x)]);
%第四題(還可以用switch語句實(shí)現(xiàn))
a=fix(10+(99-10)*rand(1,2))????????????????????%產(chǎn)生兩個隨機(jī)整數(shù)
x=a(1);
y=a(2);
t=input('請輸入運(yùn)算符號:','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)])???%輸出運(yùn)算結(jié)果
%第五題
a=rand(5,6)??????????????%產(chǎn)生5x6的隨機(jī)矩陣
n=input('請輸入您要輸出矩陣的第幾行:');
if?n>5
????disp('超出了矩陣的行數(shù),矩陣的最后一行為:')
????a(5,:)
else
????disp(['矩陣的第',num2str(n),'行為:'])
????a(n,:)
end
實(shí)驗四 循環(huán)結(jié)構(gòu)程序設(shè)計
第一題程序一
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