实验三 选择结构程序设计(matlab)

实验三 选择结构程序设计

目录

实验三 选择结构程序设计 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是一种专业的计算机程序,主要用于工程科学矩阵数学运算。但我相信在未来的几年里,它会渐渐发展陈一种非常灵活的计算体系,可以解决更多的技术问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石去皿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值