资源描述:
《程序设计基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、和其他语言一样,MATLAB的程序结构也不外三种:顺序结构、分支结构和循环结构。5、程序结构和流程控制5.1顺序结构顺序结构即指顺序往下执行的程序语句结构,其实也就是一组复合的表达式。在MATLAB中,表达式之间可以用分号、逗号或换行来分隔。如前例的函数文件summ.m和命令文件use.m均为顺序结构。5.2分支结构1、MATLAB的分支结构2、分支结构的语句形式及实例分支结构就是由逻辑判断决定程序执行流转方向的一种结构。现有if.else.end和switch.case.end两种形式。第一类分支结构采用的语句形式有3种:if表达式语句组1endif表达式语句组1else语
2、句组2endif表达式A语句组1elseif表达式B语句组2else语句组3end注意:除直接应用上述三种形式外,第3种结构可扩展,if还可以嵌套。举例:例5.1输入数n,判断其奇偶性。程序式书写法:*n=input(‘n=’);ifrem(n,2)==0A=‘even’elseA=‘odd’end更完善的程序式书写法:n=input(‘n=’);ifisempty(n)==1A=‘empty’elseifrem(n,2)==0A=‘even’elseA=‘odd’end命令行书写法:n=input(‘n=’);ifisempty(n)==1A=‘empty’,elseifr
3、em(n,2)==0;A=‘even’,else,A=‘odd’,end例5.2写程序,判断某一年是否闰年*。C语言程序:main(){intyear,leap;scanf(“%d”,&year);if(year%4==0){if(year%100==0){if(year%400==0)leap=1;elseleap=0;}elseleap=1;}elseleap=0;if(leap)printf(“%dis”,year);elseprintf(“%disnot”,year);printf(“aleapyear.”);}MATLAB程序:year=input('year=
4、');ifrem(year,4)==0ifrem(year,100)==0ifrem(year,400)==0leap=1;elseleap=0;endelseleap=1;endelseleap=0;endifleapdisplay('isaleapyear')elsedisplay('isnotaleapyear')endswitch表达式case值1语句组1case值2语句组2……otherwise语句组n第二类分支结构采用的语句形式如下:注意:switch后的表达式的结果值,通常为标量或字符串。举例:例5.3用switch语句改写例3.1。程序式书写法:n=input
5、(‘n=’);switchmod(n,2)*case1A=‘奇’case0A=‘偶’otherwiseA=‘空’end例5.4给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。C语言程序:main(){intscore,g;scanf(“%d”,&score);g=score/10;switch(g){case10:case9:printf(“A”);break;case8:printf(“B”);break;case7:printf(“C
6、”);break;case6:printf(“D”);break;default:printf(“E”);}}MATLAB程序:score=input('score=');g=round(score/10-0.5);ifg==10display('A')elseswitchgcase9,display('A')case8,display('B')case7,display('C')case6,display('D')otherwisedisplay('E')endend1、MATLAB的循环结构循环结构就是执行重复运算的一段程序。MATLAB的循环语句有for.e
7、nd和while.end两种形式。2、循环结构的语句形式及实例5.3循环结构For循环结构的语句形式:for变量=初值:[增量]:终值语句组end注意:for还可以嵌套。举例:例5.5列出构成Hilbert矩阵的程序。clear,closeallformatrat,n=input(‘n=‘),fori=1:nforj=1:nh(i,j)=1/(i+j-1);endendh例5.6求100~200间的全部素数*。C语言程序:#includemain(){intm,k,i,n=0;for(m