实验三 选择结构程序设计
目录
实验三 选择结构程序设计 2
1.1实验目的 3
1.2实验内容 3
1.3流程图 4
1.4程序清单 4
1.5运行结果 6
1.6实验的收获与体会 10
1.1实验目的
1,掌握建立和执行m文件的方法。
2,掌握利用if语句实现选择结构的方法。
3,掌握利用switch语句实现多分支选择结构的方法。
4,掌握try语句的使用。
1.2实验内容
1,求分段函数的值。
用if语句实现,分别输出x=-5,-3,1,2,2.5,3,5时y的值。
2,输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分~100分为A,80分~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:
(1)分别用if和swtich语句实现;
(2)输入百分制成绩后要判断成绩的合理性,对不合理的成绩应输出出错信息。
3,硅谷公司的工资计算方式如下:
(1)工作超过120个小时,超过部分加发15%
(2)低于60小时,扣发700元
(3)其余按每小时84元
输入工号和小时,计算工资
4,设计程序计算两位数随机数的加减乘除。而加减乘除由用户输入。
5,建立5*6矩阵,输入n,输出第n行元素。
1.3流程图
1.4程序清单
%% 实验三
clc
clear
%% 1
fprintf('\n-------------1--------------\n');
for x=[-5 -3 1 2 2.5 3 5]
if x<0 & x~=-3
y=x^2+x-6;
elseif (x<5 & x>=0) & (x~=2 & x~=3)
y=x^2-5*x+6;
else
y=x^2-x-1;
end
fprintf('\nx=%f时y的结果为:%f\n',x,y);
end
%% 2 if语句
x=input('请输入一个成绩:');
fprintf('\n-----------2 if语句------------\n');
if x<=100 & x>=90
fprintf('成绩等级为:A');
elseif x<90 & x>=80
fprintf('成绩等级为:B');
elseif x<80 & x>=70
fprintf('成绩等级为:C');
elseif x>=60 & x<70
fprintf('成绩等级为:D');
elseif x>=0 & x<60
fprintf('不及格');
else
fprintf('输入的成绩不合理')
end
fprintf('\n\n');
%% 2 switch语句
fprintf('\n---------2 switch语句------------\n');
switch floor(x/10)
case {9,10}
fprintf('成绩等级为:A');
case {8}
fprintf('成绩等级为:B');
case {7}
fprintf('成绩等级为:C');
case {6}
fprintf('成绩等级为:D');
case {0,1,2,3,4,5}
fprintf('不及格');
otherwise
fprintf('输入的成绩不合理')
end
fprintf('\n\n');
%% 3
fprintf('\n-------------3--------------\n');
a.a1=input('请输入工号:','s');
a.a2=input('\n请输入工作时数:');
if a.a2>120
a.a3=84*120+(a.a2-120)*120*1.15;
elseif a.a2<60
a.a3=84*a.a2-700;
else
a.a3=84*a.a2;
end
fprintf('\n工号%s,工作时数%d,工资为%f\n',a.a1,a.a2,a.a3);
%% 4
fprintf('\n-------------4--------------\n');
r=round(rand(1,2)*100);
f=input('请输入+ 或者- 或者* 或者/:','s');
switch f
case '+'
fprintf('随机数%d和%d相加的运算结果为:%d\n',r(1,1),r(1,2),r(1,1)+r(1,2));
case '-'
fprintf('随机数%d和%d相减的运算结果为:%d\n',r(1,1),r(1,2),r(1,1)-r(1,2));
case '*'
fprintf('随机数%d和%d相乘的运算结果为:%d\n',r(1,1),r(1,2),r(1,1)*r(1,2));
case '/'
fprintf('随机数%d和%d相除的运算结果为:%d\n',r(1,1),r(1,2),r(1,1)/r(1,2));
otherwise
fprintf('输入错误\n');
end
%% 5
fprintf('\n-------------5--------------\n');
s=rand(5,6)
n=input('请输入想要输出的行:');
switch n
case {1,2,3,4,5}
fprintf('%f %f %f %f %f %f\n',s(n,:));
otherwise
fprintf('输入矩阵行数超纲,输出最后一行\n');
fprintf('%f %f %f %f %f %f\n',s(size(s,1),:));
end
1.5运行结果
1.
3.
5.
1.6实验的收获与体会
这此实验选择结构学完,我感觉自己可以类比着解决很多实际问题了。计算工资,评定等级等等。我还学会了在输入信息不符合要求的时候进行提示报错,这增加了程序的适应性和可移植性。以后可以多用一用try这样的语句,这样在写错的情况下,不至于程序崩溃而终止。写程序写出来来之后要进行优化,考虑可能出现的不好的情况,并进行避免。
Matlab的功能强大,对我们现在学习的线性代数是非常有帮助的,利用这款软件会是我们原本复杂的计算变得简单明了。Matlab的优点计算方便、快捷、准确、操作方便,流程简单。虽然matlab优点很多,但是我开始对matlab这门技术并不是很了解,开始以为只是一个计算矩形的软件,但是随着学习的深入我对matlab的了解也相应深入,才知道matlab不仅可以运算矩阵,运算处理一些数据,还可以用于编程并且和其他的计算机编程有很大的区别。Matlab是一种专业的计算机程序,主要用于工程科学矩阵数学运算。但我相信在未来的几年里,它会渐渐发展陈一种非常灵活的计算体系,可以解决更多的技术问题。