程序设计PPT文档格式.ppt
- 文档编号:15562591
- 上传时间:2022-11-05
- 格式:PPT
- 页数:86
- 大小:615.50KB
程序设计PPT文档格式.ppt
《程序设计PPT文档格式.ppt》由会员分享,可在线阅读,更多相关《程序设计PPT文档格式.ppt(86页珍藏版)》请在冰豆网上搜索。
第一行为function语句;
function后定义函数名和输入输出参数,函数被调用时按此格式执行;
文件名必须与函数名一一对应;
函数执行完后,只保留返回结果,不保留中间过程;
o例:
functionf=fibfun(n)%FIBFUNforcalculatingfibonaccinumbers.%Incidengtally,thenamefibonaccicomesfrom%FiliusBonassi,orsonofBonassus%fibfun.mifn2f=fibfun(n-1)+fibfun(n-2);
elsef=1;
endhelpfibfunFIBFUNforcalculatingfibonaccinumbers.Incidengtally,thenamefibonaccicomesfromFiliusBonassi,orsonofBonassusfibfun.mlookforfibFIBFUNforcalculatingfibonaccinumbers.注:
为了利用MATLAB的关键字搜索功能,应该在M文件的第一行注释中,尽可能多的包含函数的特征信息。
5.25.2控制语句控制语句本节主要内容1循环语句2选择语句3分支语句4人机交互语句11循环语句循环语句o循环语句l对于有规律的重复运算,要用循环语句来进行控制;
l循环体:
一组被重复执行的语句;
l循环的终止条件:
判断是继续执行循环还是终止执行跳出循环;
l有两种方式:
for循环和while循环。
lfor循环特点:
循环判断条件是对循环次数的判断,即循环次数是预先定义好的。
for循环变量=s1:
s3:
s2循环体语句组end说明:
for语句一定要有end结束标志;
循环语句中要用“;
”防止中间结果的输出;
书写时采用锯齿结构以增加可读性;
求mysum=0;
fori=1:
1:
100mysum=mysum+i;
end;
mysum求取s1的值ii在s1和s2之间?
循环体语句组i+s3-i是否结束循环lfor循环的一般形式forv=vectstatementsendvect为任意给定的向量,则循环变量从向量的第一个数值一直循环到最后一个数值。
例1(见前例):
mysum=0;
v=1:
100;
fori=v;
mysum=mysum+i;
endmysum例2:
x=;
fori=Hello,x=ix;
endxlwhile循环while逻辑变量循环体语句组end例(见前例):
i=1;
while(i10000),break;
endmysum=mysum+m;
endm,mysumif条件式条件块语句组1else条件块语句组2end条件语句组语句组1语句组2是否例:
多项式加例:
多项式加p1=154;
p2=16116;
n1=length(p1);
n2=length(p2);
ifn1r=input(Howmanyapples:
)Howmanyapples:
2r=2r=input(Whatsyourname?
s)Whatsyourname?
Gundamr=Gundamlyesinput智能输入命令answer=yesinput(question,default,possib)question为屏幕提示问题,default为默认值,possib为检验范围。
o请求键盘输入命令keyboard当程序遇到此命令时,暂停执行程序并等待键盘输入状态。
处理完毕后,键入return并回车,程序将继续运行。
通常用来对程序调试及在程序中修改变量。
o等待用户反应命令pause使程序暂时终止运行,等待用户按任意键后继续运行。
pause暂停程序,等待回应;
pause(n)等待n秒后继续执行;
pauseon显示并执行pause命令;
pauseoff显示但不执行pause命令。
o中断命令break用在循环语句或条件语句中,使得不必等待循环的自然结束。
例:
鸡兔同笼,头有36,脚共100,求鸡兔各多少?
whileiifrem(100-i*2,4)=0&
(i+(100-i*2)/4)=36break;
endi=i+1;
endchicken=irabit=(100-2*i)/4执行后结果为:
chicken=22rabit=145.35.3函数变量及变量作用域函数变量及变量作用域oMATLAB语言的函数中,主要有输入变量、输出变量和内部变量;
o输入变量是函数的入口数据,是函数操作的主要对象;
o函数的作用就是对输入变量进行操作以实现一定的功能。
onargin函数控制输入变量的个数例:
编制函数test1实现如下功能:
如果只提供一个输入变量,则求该输入变量的模,如果有两个输入变量则求它们的和。
functionc=test1(a,b)if(nargin=1)c=det(a);
elseif(nargin=2)c=a+b;
endtest1(4,5)ans=9test1(6)ans=6运行结果运行结果ovarargin可以实现不定数目的输入变量的函数,函数的一切输入变量均存储在单元数组varargin中。
o与之相对应,输出变量也有相应的函数,如:
nargout、varargout等。
test(90,80,70,100)maavg=80engavg=90test(90,80,70,100,85,78)maavg=81.6667engavg=86可以实现不定数目输入变量的计算o变量作用域l函数内部定义的变量均为局部变量,如果需要使用全局变量,则应当使用命令global定义,并且在任何使用该全局变量的函数中都应加以定义。
l定义全局变量时,变量之间必须用空格分隔,不能以逗号分隔。
globalfirstlevelsecondlevelfirstlevel=85;
secondlevel=75;
a,b,c=test3(90,89,60,79,89,60,99,98,100)a=1b=2c=0在命令窗口中的运行:
5.45.4子函数与局部函数子函数与局部函数o函数文件中题头定义的函数为主函数,在函数体内定义的其他函数即为子函数。
子函数只能为主函数或同一主函数下其他的子函数所调用。
functionc=test(a,b)%mainfunctionc=test1(a,b)*test2(a,b);
functionc=test1(a,b)%subfunctionc=a+b;
functionc=test2(a,b)%subfunctionc=a-b;
o放置于目录private下的函数称为局部函数,这些函数只有private目录的父目录中的函数才可以调用,其他目录的函数不能调用。
局部函数与一般函数文件的编辑相同。
oMATLAB在调用函数时,首先检测该函数是否为此文件的子函数;
如果不是,再检测是否为可用的局部函数;
如果仍不是,则检测MATLAB搜索路径中其他的M文件。
5.55.5程序设计的辅助函数程序设计的辅助函数oMATLAB程序设计中辅助函数的合理使用,可以增强函数的“鲁棒性”、丰富函数功能;
o常用的辅助函数有:
执行函数容错函数时间控制函数o执行函数ly1,y2,yn=feval(function,x1,x2,xn)以函数名为输入变量的函数。
levalin(workspacename,expression)对指定工作空间workspacename中的变量进行操作,计算表达式expression的值。
o容错函数error(错误信息)触发函数error时,中断程序的运行,显示错误信息。
warning用法类似于error函数,但不会中断程序。
functionc=testerror(a,b)flag=0;
ifischar(a)&
ischar(b)flag=1;
elseerror(Inputmustbeastring!
);
endifflagc=strcat(a,b);
endtesterror(1,you)?
Errorusing=testerrorInputmustbeastring!
testerror(1,you)ans=1youo时间控制函数日期表达形式:
dd-mmm-yyyymm/dd/yymm/dd12-Oct-200310/12/0310/12时间表达形式:
HH:
MM:
SSHH:
SSPMocputime的调用:
t=cputime;
程序段;
t=cputime-t;
显示该程序段运行所占用的CPU时间。
otic、toc的调用方法tic;
toc;
显示运行该程序段所需的时间。
oetime(time2,time1)计算两时刻的时间差。
o试探式语句try语句段1catch语句段2end首先试探性的执行语句段1,如果在执行过程中出现错误,则将错误信息赋给lasterr变量,并放弃该段语句,转而执行语句段2中的语句。
testtry(ilove,matlab)ans=214129224219215199testtry(ilove,matlab)ans=ilovematlab5.65.6程序设计优化程序设计优化o以矩阵为操作主体以向量运算代替循环运算,提倡矩阵操作tic;
x=1;
1000,y(i)=sin(x);
x=x+0.1*pi;
end,tocelapsed_time=0.0500tic;
x=1:
0.1*pi:
1000*pi;
y=sin(x);
tocelapsed_time=0.0100o在多重循环的情况下,建议外循环执行循环次数少的,内循环执行循环次数多的。
生成510000的Hilbert矩阵,其中hi,j=1/(i+j-1)test2.mticforj=1:
10000fori=1:
5H(i,j)=1/(i+j-1);
endendtoctest1.mticfori=1:
5forj=1:
10000H(i,j)=1/(i+j-1);
endendt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)