4、MATLAB程序设计与应用刘卫国(第三版)课后实验四:选择结构程序设计

目录

 一、

 二、

 三、

 四、

 五、


一、

求分段函数的值

 if语句实现,分别输出X=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y值。

---------------------------------------示例代码---------------------------------------------

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

---------------------------------------运行结果---------------------------------------------

 二、

输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90~100分为A,80~分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

---------------------------------------示例代码---------------------------------------------

x=input('请输入一个百分制成绩:');
if x>100|x<0
disp('您输入的成绩不是百分制成绩,请重新输入。');
elseif 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
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
% switch版本
g=input('请输入一个百分制成绩:');
while 1
    if g<0||g>100
        disp('您输入的百分制成绩不合理,请重新输入!');
        g=input('请输入一个百分制成绩:');
    else
        break;
    end
end
switch fix(g) 
    case num2cell(0:59) 
        disp('E')
    case num2cell(60:69) 
        disp('D')
    case num2cell(70:79) 
        disp('C')
    case num2cell(80:89) 
        disp('B')
    case num2cell(90:100) 
        disp('A')
end

---------------------------------------运行结果---------------------------------------------

 三、

硅谷公司员工的工资计算方法如下。

(1)工作时数超过120小时者,超过部分加发15%。

(2)工作时数低于60小时者,扣发700元。

(3)其余按每小时84元计发。

根据输入的员工工号和该员工的工时数,计算应发工资。

---------------------------------------示例代码---------------------------------------------

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)]);

---------------------------------------运行结果---------------------------------------------

 四、

设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,完成对应的运算,并显示相应的结果。

---------------------------------------示例代码---------------------------------------------

x = round(rand(1,1)*100);
y = round(rand(1,1)*100);

t=input('请输入运算符号:','s');
switch t
    case '+'
       z=x+y;
    case '-'
        z=x-y;
    case '*'
        z=x*y;
    case '/'
        z=x/y;
       default
    otherwise
        disp('运算符输入有误')
x=0;
y=0;
z=0;
end
disp([num2str(x),t,num2str(y),'=',num2str(z)])

---------------------------------------运行结果---------------------------------------------

 五、

建立5×6矩阵,要求输出矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出错误信息。

---------------------------------------示例代码---------------------------------------------

A=input('输入一个5*6矩阵A=');
n=input('输入一个正整数n=');
if n<5&&n>0
   disp(A(n,:));
else
  disp(A(5,:));
   disp('error:n>5')
end

---------------------------------------运行结果---------------------------------------------

 如有侵权,请尽快与我联系!!!

  • 13
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本题需要根据第三matlab程序设计应用》的内容进行实验及答题。 答案参考: 本题需要实现一个小游戏,具体要求如下: 1. 随机生成一个范围在1~1000之间的整数num; 2. 让用户猜测该数,每次用户输入一个整数guess; 3. 如果guess比num小,则输出"猜小了,再试一次"; 4. 如果guess比num大,则输出"猜大了,再试一次"; 5. 如果guess等于num,则输出"恭喜猜中了!"; 6. 用户最多有10次机会猜中,如果猜错10次,则输出"机会用尽,游戏结束!"; 7. 每次输出都要显示用户已经用了多少次机会。 需要用到的matlab函数有randi()、input()、disp()、num2str()等,具体使用方法可以查看matlab帮助文档。 实验代码演示如下: %% 实验7 - 小游戏设计 % 设计一个猜数字的小游戏,要求用户猜一个随机生成的整数(1~1000),并在10次机会内猜中。 clear all; clc; % 生成随机数 num = randi([1,1000]); % 初始化计数器 counter = 0; % 开始猜数字 while counter < 10 guess = input('请输入你猜的数字:'); counter = counter + 1; % 计数器加1 fprintf('你已经猜了%d次。\n', counter); if guess > num disp('猜大了,再试一次。'); elseif guess < num disp('猜小了,再试一次。'); else fprintf('恭喜你,猜中了!你一共猜了%d次。\n', counter); break; end end % 判断游戏是否结束 if counter == 10 disp('机会用尽,游戏结束!'); end 以上代码实现了小游戏的基本功能,可以根据实际需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值