MATLAB选择结构程序设计:分段函数与成绩等级转换

版权申诉
0 下载量 183 浏览量 更新于2024-09-05 收藏 18KB PDF 举报
"MATLAB实验报告,涉及选择结构程序设计,包括使用if语句和switch语句处理分段函数的值计算以及根据百分制成绩输出对应的等级。" 在MATLAB编程中,选择结构是控制程序流程的关键元素,用于根据条件执行不同的代码块。本实验主要讨论了如何利用if语句和switch语句来实现这一功能。 首先,实验的第一个任务是求解一个分段函数的值。这个函数在不同区间有不同的表达式,具体如下: - 当 \( x < 0 \) 且 \( x \neq -3 \) 时,\( y = x^2 + x - 6 \) - 当 \( 0 \leq x < 5 \) 且 \( x \neq 2 \) 且 \( x \neq 3 \) 时,\( y = x^2 - 5x + 6 \) - 其他情况下,\( y = x^2 - x - 1 \) 刘颖同学编写了如下MATLAB代码来实现这个功能: ```matlab x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0]; for i = 1:length(x) if x(i)<0 && x(i)~=-3 y(i) = x(i).*x(i)+x(i)-6; elseif x(i)>=0 && x(i)<5 && x(i)~=2 && x(i)~=3 y(i) = x(i).*x(i)-5*x(i)+6; else y(i) = x(i).*x(i)-x(i)-1; end end disp(y) ``` 这段代码首先定义了x的值,然后通过for循环遍历每个x值,根据条件计算对应的y值,并存储在向量y中。最后,显示计算出的y值。 实验的第二个任务是根据输入的百分制成绩输出相应的等级。这里,我们有五个等级:A(90-100分),B(80-89分),C(70-79分),D(60-69分),以及E(60分以下)。刘颖同学分别使用if语句和switch语句实现了这一功能。 对于switch语句的实现: ```matlab score = input('请输入百分制成绩:'); switch fix(score/10) case {9,10} grade = 'A'; case {8} grade = 'B'; case {7} grade = 'C'; case {6} grade = 'D'; otherwise grade = 'E'; end disp(grade) ``` 这段代码首先获取用户输入的成绩,然后通过switch语句根据成绩的整数部分确定等级。当输入成绩满足特定范围时,程序将grade变量设置为对应的字母等级,并显示出来。 对于if语句的实现: ```matlab score = input('请输入百分制成绩:'); k = fix(score/10); if k == 9 || k == 10 grade = 'A'; elseif k == 8 grade = 'B'; elseif k == 7 grade = 'C'; elseif k == 6 grade = 'D'; else grade = 'E'; end disp(grade) ``` 这里的if语句也达到了同样的目的,只不过使用了逻辑运算符检查成绩的整数部分是否落在特定范围内。 通过这两个例子,我们可以看到MATLAB中的if语句和switch语句在处理条件判断时的不同用法。if语句更灵活,适用于复杂条件的组合,而switch语句则在处理基于特定值的匹配时更为简洁。