第5章 程序设计Word文件下载.docx
- 文档编号:20006375
- 上传时间:2023-01-14
- 格式:DOCX
- 页数:9
- 大小:19.84KB
第5章 程序设计Word文件下载.docx
《第5章 程序设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《第5章 程序设计Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
用于向计算机输入一个参数。
调用格式:
A=input(提示信息,选项);
注:
‘s’选项,则允许用户输入一个字符串。
例如想输入一个人的姓名:
xm=input('
Whatisyourname:
'
‘s’)
【例2】求一元二次方程a2+bx+c=0的根。
a=input('
a=?
);
b=input('
b=?
c=input('
c=?
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
2、pause函数:
暂停程序的执行。
pause(延迟秒数)
如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。
3、disp函数:
命令窗口输出函数。
disp(输出项)
输出项为字符串或矩阵。
【例3】:
A='
Hello,MATLAB'
;
disp(A)
输出为:
Hello,MATLAB
5.3程序设计
选择结构:
选择结构的语句有if语句和switch语句。
1、if语句
格式一:
if条件
语句组
end
格式二:
语句组1
else
语句组2
格式三:
if条件1
elseif条件2
……
elseif条件m
语句组m
语句组m+1
【例4】输入三角形的三条边,求面积。
A=input('
请输入三角形的三条边:
ifA
(1)+A
(2)>
A(3)&
A
(1)+A(3)>
A
(2)&
A
(2)+A(3)>
A
(1)
p=(A
(1)+A
(2)+A(3))/2;
s=sqrt(p*(p-A
(1))*(p-A
(2))*(p-A(3)));
%sqrt开方
disp(s);
else
disp('
不能构成一个三角形。
)
end
运行:
请输入三角形的三条边:
[456]
9.9216
【例5】输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。
请输入一个字符:
'
'
s'
ifc>
='
A'
&
c<
Z'
disp(setstr(abs(c)+1));
%abs()求ASC码,setstr()ASC码转字符
elseifc>
a'
&
z'
disp(setstr(abs(c)-1));
disp(c);
2、switch语句
switch语句根据变量或表达式的取值不同,分别执行不同的语句。
其格式为:
switch表达式
case值1
case值2
语句组2
case值m
otherwise
【例6】根据变量num的值来决定显示的内容。
num=input('
请输入一个数'
switchnum
case-1
Iamateacher.'
case0
Iamastudent.'
case1
Youareateacher.'
Youareastudent.'
循环结构:
for语句和while语句
1、for语句:
格式:
for循环变量=表达式1:
表达式2:
表达式3
循环体语句
表达式1:
表达式3为循环初值:
步长:
终值。
缺省步长为1
2、while语句
while(条件)
【例7】设
求:
(1)求y<
3时的最大n值。
(2)求与
(1)的n值对应的y值。
y=0;
i=1;
while1%循环的条件为1,这是一个永真循环
f=1/(2*i-1);
y=y+f;
ify>
3
break;
%跳出循坏体
end
i=i+1;
n=i-1
y=y-f
3、循环的嵌套
【例8】求[100,1000]以内的全部素数。
n=0;
form=100:
1000
flag=1;
j=m-1;
i=2;
whilei<
=j&
flag
ifrem(m,i)==0%rem函数m除以i的余数
flag=0;
ifflag
n=n+1;
prime(n)=m;
%变量prime存放素数
prime
5.4函数文件
函数文件是另一种形式的M文件,每一个函数文件定义一个函数。
事实上,MATLAB提供的标准函数大部分都是由函数文件定义的。
1、函数文件格式
函数文件由function语句引导,其格式为:
function输出形参表=函数名(输入形参表)
注释说明部分
函数体
其中函数名的命名规则与变量名相同。
输入形参为函数的输入参数,输出形参为函数的输出参数。
当输出形参多于1个时,则应该用方括号括起来。
【例9】编写函数文件求小于任意自然数n的Fibonacci(斐波那契)数列各项
functionf=ffib(n)
%用于求Fibonacci数列的函数文件
%f=ffib(n)
%1999年9月30日编
f=[1,1];
whilef(i)+f(i+1)<
n
f(i+2)=f(i)+f(i+1);
将以上函数文件以文件名ffib.m存盘,然后在MATLAB命令窗口输入以下命令,可求小于2000的Fibonacci数。
ffib(2000)
2、函数调用
函数文件编制好后,就可调用函数进行计算了。
如上面定义ffib函数后,调用它求小于2000的Fibonacci数。
函数调用的一般格式是:
[输出实参表]=函数名(输入实参表)
【例10】
函数文件tran.m:
function[gama,theta]=tran(x,y)
gama=sqrt(x*x+y*y);
theta=atan(y/x);
调用tran.m的命令文件main1.m:
x=input('
Pleaseinputx=:
y=input('
Pleaseinputy=:
[gam,the]=tran(x,y);
gam
the
【例11】利用函数的递归调用,求n!
。
functionf=factor(n)
ifn<
=1
f=1;
%令f
(1)=1,转向rerurn语句
f=factor(n-1)*n;
%用参数n-1继续调用本函数,直至f
(1)。
return;
%返回,即退出本函数。
在命令文件main2.m中调用函数文件factor.m:
fori=1:
10
fac(i)=factor(i);
fac
3.函数所传递参数的可调性
MATLAB在函数调用上有一个与众不同之处:
函数所传递参数数目的可调性。
凭借这一点,一个函数可完成多种功能。
在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。
只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入、输出参数个数,从而决定函数如何进行处理。
【例12】nargin用法示例
函数文件examp.m:
functionfout=examp(a,b,c)
ifnargin==1
fout=a;
elseifnargin==2
fout=a+b;
elseifnargin==3
fout=(a*b*c)/2;
命令文件mydemo.m:
x=[1:
3];
y=[1;
2;
examp(x)
examp(x,y'
examp(x,y,3)
执行mydemo.m后的输出是:
ans=
123
246
21
5.5全局变量和局部变量
在MATLAB中,全局变量用命令global定义。
函数文件的内部变量是局部的,与其他函数文件及MATLAB工作空间相互隔离。
但是,如果在若干函数中,都把某一变量定义为全局变量,那么这些函数将共用这个变量。
全局变量的作用域是整个MATLAB工作空间,即全程有效。
所有的函数都可以对它进行存取和修改。
因此,定义全局变量是函数间传递信息的一种手段。
【例13】全局变量应用示例
先建立函数文件wadd.m,该函数将输入的参数加权相加。
functionf=wadd(x,y)
%addtwovariable
globalALPHABETA
f=ALPHA*x+BETA*y;
在命令窗口中输入:
ALPHA=1;
BETA=2;
s=wadd(1,2)
s=5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 程序设计