实验03 选择结构程序设计第4章Word文档格式.docx
- 文档编号:21256393
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:21
- 大小:106.13KB
实验03 选择结构程序设计第4章Word文档格式.docx
《实验03 选择结构程序设计第4章Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验03 选择结构程序设计第4章Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
(1)分别用if语句和switch语句实现。
(2)要求输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
用if语句实现:
文本编辑器窗口中的程序:
输入一个百分制成绩:
x='
=100&
=90
disp('
成绩:
A'
)
=89&
=80
B'
elseifx>
=70&
x<
=79
C'
=60&
=69
D'
60
E'
输入内容不符合规则,请输入100以内的整数!
x=78
C
x=54
E
x=83
B
x=63
D
x=209
x=98
A
用switch语句实现:
grades=input('
请输入百分制成绩:
grades='
switchfix(grades)
casenum2cell(90:
100)
display('
casenum2cell(80:
89)
casenum2cell(70:
79)
casenum2cell(60:
69)
casenum2cell(0:
59)
otherwise
3.工资计算
硅谷公司员工的工资计算方法如下:
(1)工作时数超过120小时者,超过部分加发15%。
(2)工作时数低于60小时者,扣发700元。
(3)其余按每小时84元计发。
试编程按输入的工号和该号员工的工时数,计算应发工资。
文本编辑器窗口中的程序
a=input('
员工号:
'
b=input('
工时数:
ifb>
=120
c=120*84+(b-120)*84*(1+0.15)
elseifb<
=60
c=b*84-700
c=b*84
disp(['
工号为'
num2str(a),'
员工应得工资为'
num2str(c)])
289
125
c=
10563
工号为289员工应得工资为10563
89
98
8232
工号为89员工应得工资为8232
876
57
4088
工号为876员工应得工资为4088
4.两位数的加、减、乘、除四则运算
设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,做相应的运算,并显示相应的结果。
x1=10+(99-10)*rand
(1);
x2=10+(99-10)*rand
(1);
m=fix(x1)
n=fix(x2)
输入一个运算符:
'
s'
switchx
case{'
+'
}
c=m+n;
-'
c=m-n;
*'
c=m*n;
/'
c=m/n;
c='
false'
;
c
命令窗口中运行结果:
m=
95
n=
+
190
24
96
-
-72
53
*
5035
81
22
/
3.6818
5.(用try…catch)建立5×
6矩阵,要求输出矩阵第n行元素
当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
程序:
A=input('
输入A的值:
n=input('
输入n的值:
try
B=A(n,:
catch
B=A(5,:
lasterr
运行结果:
rand(5,6)
A=
0.44560.67970.95970.25510.54720.2543
0.64630.65510.34040.50600.13860.8143
0.70940.16260.58530.69910.14930.2435
0.75470.11900.22380.89090.25750.9293
0.27600.49840.75130.95930.84070.3500
6
6
B=
ans=
AttemptedtoaccessA(6,:
indexoutofboundsbecausesize(A)=[5,6].
三、实验提示
步骤:
(1)点击MATLAB主窗口的“文本编辑器”按钮
,弹出“文本编辑器”窗口。
(2)在其中输入程序。
(3)(建议先将主窗口中的命令窗口提取出来),点击“保存并运行”按钮
,系统提示用何文件名保存该程序,可用默认文件名,或自己起文件名,然后程序运行。
(4)若程序无语法错误,则在命令窗口中显示运行结果;
否则显示的是错误信息。
如有错,回到文本编辑器进行修改再运行。
本程序要用到input语句,在运行中输入即时数据。
注意给出提示信息,下面的参考结果中的‘输入:
x=’是提示信息。
用到标量逻辑“与”运算符“&
”。
注意单个“&
”是数组逻辑“与”。
本程序要运行7次,因为要输入7个数据,参考结果:
本程序中第一行可为:
x=input(‘输入:
x=’);
之后是if…elseif…else…end语句,其中x是自变量,y是因变量。
最后一行简单输入个y即可。
注意其后不加分号,否则不显示y的值。
参考例4.5用switch。
用于取整的函数有
fix向0方向取整
floor向-∞方向取整
ceil向+∞方向取整
round四舍五入到最邻近的整数
用switch。
用if语句处理除数为0。
产生两个两位随机整数可参考下例中的相关用法:
例4.19(递归与非递归)任意排列问题p74
randperm(n)产生一个从整数1到整数n的任意排列。
编写函数实现randperm(n)的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列。
%非递归,函数文件
functionY=rndprm1(X)
%RNDPRM1用for产生一行向量的任意排列
%RNDPRM1(X)产生行向量X的任意排列
[m,n]=size(X);
ifm>
1
error('
RNDPRM1只接受列向量的输入'
Y=[];
%从一个空矩阵开始
l=n;
%X的元素个数
fori=1:
n
k=1+fix(l*rand);
%随机选择Y的下一个元素的位置,rand等价于rand
(1),0<
rand<
x=X(k);
%被选择的元素
Y=[Y,x];
%将x添加到Y中
X(k)=[];
%从X中删除x元素
l=l-1;
%更新X的元素个数
5.建立5×
用try…catch…end语句。
可用随机函数rand自动生成矩阵。
四、教程:
第4章MATLAB程序设计(1/3)
4.1M文件p56
4.1.1M文件的分类
用MATLAB语言编写的程序,称M文件,扩展名为m。
M文件按调用方式分为:
命令文件(ScriptFile)
函数文件(FunctionFile)
两种文件的主要区别:
(1)命令文件无输入参数,无返回输出参数;
函数文件可带输入参数,可返回输出参数。
(2)命令文件对工作空间中的变量操作;
函数文件中定义的变量为局部变量,执行完时,它们被清除。
(3)命令文件直接执行;
函数文件要以函数调用的方式来调用它。
例4.1(命令文件、函数文件)互换变量a,b的值。
%程序1:
建立命令文件,文件名exch.m
clc;
clear;
%清命令窗口,清工作空间
a=1:
10;
b=[11,12,13,14;
15,16,17,18];
tmp=a;
a=b;
b=tmp;
a
b
a=
11121314
15161718
b=
12345678910
%程序2:
建立函数文件,取文件名fexch.m
function[x,y]=fexch(a,b)%a,b为局部变量
x=b;
y=a;
%调用函数文件
x=1:
y=[11,12,13,14;
[x,y]=fexch(x,y)
4.1.2M文件的建立与打开p57
1.建立新的M文件
启动文本编辑器有3种方法:
(1)菜单操作
从主窗口的“文件”菜单中选“新建”,再选“空白M-文件”。
(2)命令操作
在命令窗口输入命令edit。
(3)命令按钮操作
单击主窗口工具栏上的“新建M-文件”按钮。
2.打开已有的M文件(4种方法)
从“文件”菜单中选“打开”,屏幕出现“打开”对话框,再选要打开的M文件。
在命令窗口输入:
edit文件名,打开指定的M文件。
单击工具栏上的“打开文件”按钮,再从弹出的对话框中选所需的M文件。
(4)在当前目录窗口操作
在当前目录窗口双击要打开的文件名。
4.2程序控制结构p58
4.2.1顺序结构
按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。
1.数据的输入(从键盘输入)
A=input(提示信息,选项);
采用'
选项,允许用户输入一个字符串。
输入矩阵A:
xm=input('
输入姓名:
xm
[1,2,3;
4,5,6]
Lingming
123
456
xm=
2.数据的输出
disp(输出项)
输出项既可为字符串,也可为矩阵。
例4.2(顺序结构)求一元二次方程ax2+bx+c=0的根p59
%p59
a='
b='
c=input('
c='
d=b*b-4*a*c;
x=[-b+sqrt(d),-b-sqrt(d)]/(2*a);
x1='
num2str(x
(1)),...
'
x2='
num2str(x
(2))]);
a=1
b=-5
c=6
x1=3,x2=2
3.程序的暂停
pause(延迟秒数)
pause暂停程序,按任一键程序继续执行。
Ctrl+c强行中止程序的运行。
4.2.2选择结构p60
1.if语句(3种格式)
(1)单分支if语句
if条件
语句组
条件成立,执行语句组;
否则不执行语句组。
(2)双分支if语句
语句组1
语句组2
条件成立,执行语句组1;
否则执行语句组2。
例4.3(ifelse)计算分段函数的值p61
输入x的值:
ifx==10
y=cos(x+1)+sqrt(x*x+1);
y=x*sqrt(x+sqrt(x));
y
10
10.0543
13.4500
(3)多分支if语句
if条件1
elseif条件2
……
elseif条件m
语句组m
语句组n
语句用于实现多分支选择结构。
例4.4(ifelseif)字符转换输出p62
输入一个字符:
若为大写字母,则输出其小写字母;
若为小写字母,则输出其大写字母;
若为数字字符,则输出其对应的数值;
若为其他字符,则原样输出。
ifc>
='
&
c<
Z'
%标量“与”用&
disp(char(abs('
a'
)+abs(c)-abs('
)));
elseifc>
z'
)+abs(c)-abs('
0'
9'
disp(abs(c)-abs('
));
disp(c);
end%setstr用char代替,setstr将淘汰
5
2.switch语句
根据表达式的取值,分别执行不同的语句。
switch表达式
case表达式1
case表达式2
case表达式m
otherwise
当任意一个分支的语句执行完后,直接执行switch语句的下一句。
例4.5(switchcase)打折销售p63
某商场对商品实行打折销售,标准如下(价格用price表示):
price<
200没有折扣
200≤price<
5003%折扣
500≤price<
10005%折扣
1000≤price<
25008%折扣
2500≤price<
500010%折扣
5000≤price14%折扣
输入所售商品的价格,求其实际销售价格。
price=input('
输入商品价格:
switchfix(price/100)
case{0,1}%价格<
200
rate=0;
case{2,3,4}%200<
=价格<
500
rate=3/100;
casenum2cell(5:
9)%500<
1000
rate=5/100;
casenum2cell(10:
24)%1000<
2500
rate=8/100;
casenum2cell(25:
49)%2500<
5000
rate=10/100;
otherwise%5000<
=价格
rate=14/100;
price=price*(1-rate)%输出商品实际销售价格
2300
price=
2116
3.try语句
语句组1
catch
语句组2
lasterr
Ø
先试探性执行语句组1;
若语句组1在执行过程中出错,则将错误信息赋给lasterr变量,并转去执行语句组2。
新用法:
catchexception
throw(exception);
exception放错误信息,throw(exception)显示exception的内容。
例4.6(trycatch)矩阵乘法和点乘p64
矩阵乘法运算要求两矩阵的维数相容,否则出错。
先求两矩阵乘积,若出错,则转去求两矩阵点乘。
A=[1,2,3;
4,5,6];
B=[7,8,9;
10,11,12];
C=A*B;
C=A.*B;
lasterr%显示出错原因
C=
71627
405572
Errorusing==>
mtimes
Innermatrixdimensionsmustagree.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验03 选择结构程序设计第4章 实验 03 选择 结构 程序设计