第3章 程序结构和流程控制
- 格式:ppt
- 大小:464.00 KB
- 文档页数:90
实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。
第3章顺序结构程序设计第3章最简单的C程序设计——顺序程序设计本章要求1、掌握程序的三种基本结构特点及其控制语句的使⽤。
2、重点掌握数据输⼊、输出函数及其格式控制。
3、熟悉Turbo C环境的使⽤,头⽂件,帮助系统的使⽤(Ctrl+F1)。
3.1程序的三种基础结构顺序、选择、循环。
3.2 C语句概述C程序结构如图:⼀个C程序可以由多个源程序⽂件构成,Turbo C⽤“⼯程⽂件”(prj:Project)来描述该程序由那些源程序⽂件构成。
所有这些源程序⽂件经过分别编译后形成各⾃的⽬标⽂件,经连接程序LINK后形成⼀个EXE⽂件。
⼀个源程序⽂件由若⼲函数和“预编译命令”构成。
函数包括数据定义部分(变量定义)和执⾏部分,执⾏部分是C语⾔语句,完成对数据的操作。
C语句有以下五类:1、控制语句,完成程序流程控制。
if()~else~条件语句for()~循环语句while()~循环语句do~while() 循环语句continue 结束本次循环语句break 中⽌switch或循环语句switch 多分⽀选择语句goto 转向语句return 从函数返回语句( )表⽰条件,~表⽰内嵌的语句,若有多个语句既复合语句⽤{}括起来。
2、函数调⽤语句。
例、printf("This is a C statement."); /* 该语句调⽤函数printf() */3、表达式语句:在表达式后⾯加分号构成。
例:a = 3 /* 后⾯⽆分号,是表达式 */a = 3; /* 后⾯有分号,是语句 */i++; /* 语句 */4、空语句:仅包含⼀个分号的语句,例、;5、复合语句:由⼤括号{ }括起来的语句序列。
例、{ z = x + y;t = z / 100;printf("%f",t);}注:C语⾔允许⼀⾏写多个语句,也允许⼀个语句写多⾏。
3.3 赋值表达式和赋值语句⼀、赋值表达式1。
三,程序流程控制之顺序结构、分⽀结构与循环结构程序结构程序的执⾏顺序是通过⼀些流程结构来控制的程序的运⾏是通过计算机⼀⾏⼀⾏的执⾏代码来完成的,按顺序⼀条条执⾏是程序最基本的结构,但是有时候顺序执⾏不能完成所有的功能。
计算机中有三⼤基本结构:顺序结构分⽀结构循环结构1,顺序结构顺序结构是程序的基本结构,它会从上往下依次执⾏2,分⽀结构分⽀结构是程序根据条件结果来判断,从⽽选择不同的代码向前执⾏的⼀种⽅式,也叫条件分⽀分⽀结构包括:单分⽀、⼆分⽀和多分⽀2.1单分⽀在Python中单分⽀通过if语句来实现if <条件>: 代码块注意条件表达式后⾯要紧跟冒号代码块为⼀⾏或多⾏代码代码块前要有缩进,跟if形成包含关系标准缩进为TAB键或者四个空格执⾏标准:当条件表达式结果为True时,则执⾏代码块的代码,为False时,则跳过代码块if中包含的代码块执⾏依赖于条件表达式的结果,但是⽆论是否执⾏都会继续往下执⾏与if同级的下⼀条代码2.2⼆分⽀⼆分⽀结构⽤if else 来实现if <条件>: 代码块1else: 代码块2代码块1是在条件结果为True时执⾏的⼀条或多条代码,代码块2是条件为False执⾏的⼀条或多条代码注意else与if同级,并紧跟冒号代码块2前也必须有缩进,跟else形成包含关系⼆分⽀⽤于区分条件的两种可能性,分别形成执⾏路径三⽬运算⼆分⽀有⼀种更简洁的表达⽅式,语法格式如下:<表达式1> if <条件> else <表达式2>当条件结果为True时执⾏表达式1,为False时,执⾏表达式2适合代码块为1⾏代码时,这种表达⽅式也叫三⽬运算,⽤于简单的条件判断2.3多分⽀多分⽀通过if-elif-else来表达,语法格式如下if <条件1>: 代码块1elif <条件2>: 代码块2...else: 代码块3多分⽀为⼆分⽀的延伸,⽤于多个条件多个执⾏路径的情况。
《Python程序设计教程》习题答案说明:以下习题答案是机械工业出版社出版的《Python程序设计教程》(作者:程细柱和程心怡)一书中各章节习题的答案,希望对读者有用。
第1章Python的开发平台(进入Python城堡)一、判断题1.(╳)2.(√)3.(╳)4.(√)5.(√)6.(╳)7.(√)二、单选题1.B 2.C 3.D 4.B 5.D 6.C7.C8.B9.C10.B11.B12.B13.C14.A15.B、D16.D三、填空题1.引用计数和垃圾收集器2.交互和脚本文件3.>>>4.help(“命令”)5..py四、简答题1.答:具体过程如下:1)用户选择“开始”菜单的“所有程序”,选择打开Python的IDLE窗口;2)在IDLE窗口选择“File/New File”菜单打开程序编辑窗口;3)在编辑窗口中输入程序源代码;4)输入完源代码后,选择编辑窗口的“File/Save”菜单保存Python程序文件;5)选择编辑窗口的“Run/Module”菜单或者按快捷键F5执行该程序。
2.答:Python语言具有简单易学、规范代码、能交互运行、免费开源、面向对象、可移植性好、可嵌入性强、丰富的标准库、高层的解释型语言等优点;它常常应用于人工智能、大数据、科学计算、云计算、云服务、网络爬虫、Web开发、桌面软件、游戏开发等领域。
第2章Python的基础知识(初遇城堡语言)一、判断题1.(√)2.(╳)3.(√)4.(╳)5.(√)6.(╳)7.(╳)8.(╳)9.(╳)二、单选题1.D2.B 3.D 4.A 5.A 6.D7.C8.A9.B10.D11.D12.B13.D14.B15.B16.D17.C18.A19.A20.C21.D22.A23.B24.C25.D26.C27.D28.C29.A30.B31.B32.D33.B34.C35.D36.C37.B38.C39.A40.B41.A42.D43.C44.B45.C46.B47.C48.A49.C50.B51.D52.D53.C54.B55.D56.B57.D三、填空题1.True和False2.83.74.浮点型(float)、布尔型(bool)和复数类型(complex)5.关系运算、逻辑运算、位运算四、名词解释1.是指在运行期间才去做数据类型检查的语言。
第3章顺序结构程序设计本章要点✧结构化程序设计及三种基本控制结构✧语句的概念✧数据的输入/输出本章学习目标✧掌握顺序结构程序设计方法✧掌握Visual Basic数据的输入/输出方法第3章顺序结构程序设计473.1 结构化程序设计概述Visual Basic是面向对象的程序设计语言,但面向对象的程序设计并不是要抛弃结构化程序设计方法,而是站在比结构化程序设计更高、更抽象的层次上去解决问题。
当它被分解为低级代码模块时,仍需要结构化编程的方法和技巧,只是它分解一个大问题为小问题时采取的思路与结构化方法是不同的。
结构化的分解突出过程,强调的是如何做(How to do?),代码的功能如何完成;面向对象的分解突出现实世界和抽象的对象,强调的是做什么(What to do?),它将大量的工作由相应的对象来完成,程序员在应用程序中只需说明要求对象完成的任务。
3.1.1 结构化程序设计20世纪60年代末,著名学者E.W.Dijkstra首先提出了“结构化程序设计”的思想。
这种方法要求程序设计者按照一定的结构形式来设计和编写程序,使程序易阅读、易理解、易修改和易维护。
这个结构形式主要包括两方面的内容:(1)在程序设计中,采用自顶向下、逐步细化的原则。
按照这个原则,整个程序设计过程应分成若干层次,逐步加以解决。
每一步是在前一步的基础上,对前一步设计的细化。
这样,一个较复杂的大问题,就被层层分解成为多个相对独立的、易于解决的小模块,有利于程序设计工作的分工和组织,也使调试工作比较容易进行。
(2)在程序设计中,编写程序的控制结构仅由三种基本的控制结构(顺序结构、选择结构和循环结构)组成,避免使用可能造成程序结构混乱的GoTo语句。
所谓程序的控制结构是指用于规定程序流程的方法和手段。
它是一种逻辑结构,描述程序执行的顺序,也是一种形式结构,描述程序的编写规则。
按照结构化程序设计方法,使设计编写的程序的控制结构由上述三种结构组成,这样的程序就是结构化程序。