第三章程序的流程控制PPT讲稿.ppt
《第三章程序的流程控制PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第三章程序的流程控制PPT讲稿.ppt(190页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章程序的流程控制第三章程序的流程控制第1页,共190页,编辑于2022年,星期二3.1 程序的概念程序的概念 程序是可以被计算机处理的指令序程序是可以被计算机处理的指令序列。通常,程序是为完成一项任务、由汇列。通常,程序是为完成一项任务、由汇编语言或高级语言编写的代码的集合。程编语言或高级语言编写的代码的集合。程序设计是根据所提出的任务,用某种程序序设计是根据所提出的任务,用某种程序设计语言编制一个能正确完成该任务的计设计语言编制一个能正确完成该任务的计算机程序。算机程序。第2页,共190页,编辑于2022年,星期二3.1.1 程序的特性程序的特性 著名的计算机科学家沃思著名的计算机科学家
2、沃思(Nikiklaus Wirth)提出一个公式:)提出一个公式:程序程序=数据结构数据结构+算法。算法。现在又有很多专家对这个公式加以现在又有很多专家对这个公式加以扩充:程序扩充:程序=算法算法+数据结构数据结构+程序设计程序设计方法方法+语言工具和环境。语言工具和环境。第3页,共190页,编辑于2022年,星期二所有程序(包括计算机程序)都有一些共同所有程序(包括计算机程序)都有一些共同的性质,这些性质主要包括:的性质,这些性质主要包括:l l(1 1)指令是顺序执行的。)指令是顺序执行的。)指令是顺序执行的。)指令是顺序执行的。l l(2 2)程序的执行都有一个结果。)程序的执行都有一
3、个结果。)程序的执行都有一个结果。)程序的执行都有一个结果。l l(3 3)程序总是要对某些对象进行操作。)程序总是要对某些对象进行操作。)程序总是要对某些对象进行操作。)程序总是要对某些对象进行操作。l l(4 4)有的程序要加入对操作对象的说明。)有的程序要加入对操作对象的说明。)有的程序要加入对操作对象的说明。)有的程序要加入对操作对象的说明。l l(5 5)有时指令要求执行者做出判断。)有时指令要求执行者做出判断。)有时指令要求执行者做出判断。)有时指令要求执行者做出判断。l l(6 6)一条或一组指令可能需要执行多次。)一条或一组指令可能需要执行多次。)一条或一组指令可能需要执行多次
4、。)一条或一组指令可能需要执行多次。第4页,共190页,编辑于2022年,星期二程序设计离不开算法,算法指导程序设程序设计离不开算法,算法指导程序设计,算法是程序的灵魂。因此程序设计计,算法是程序的灵魂。因此程序设计的大致步骤如下。的大致步骤如下。l l(1 1)问题定义)问题定义)问题定义)问题定义l l(2 2)算法设计)算法设计)算法设计)算法设计l l(3 3)算法表示)算法表示)算法表示)算法表示l l(4 4)程序编制)程序编制)程序编制)程序编制l l(5 5)程序调试、测试及资料编制)程序调试、测试及资料编制)程序调试、测试及资料编制)程序调试、测试及资料编制3.2 算算 法法
5、第5页,共190页,编辑于2022年,星期二精确地讲,精确地讲,算法是被精确定义的一系列规算法是被精确定义的一系列规则则,这些规则规定了解决特定问题的一系,这些规则规定了解决特定问题的一系列操作顺序,以便在有限步骤内产生出所列操作顺序,以便在有限步骤内产生出所求问题的解答。求问题的解答。3.2.1 算法的特点算法的特点第6页,共190页,编辑于2022年,星期二 算法特性:算法特性:l l(1 1 1 1)有效性。)有效性。)有效性。)有效性。l l(2 2)确定性。)确定性。l l(3 3)有穷性。)有穷性。l l(4 4 4 4)有零个或多个输入。)有零个或多个输入。)有零个或多个输入。)
6、有零个或多个输入。l l(5 5)有一个或多个输出。)有一个或多个输出。有效性指算法所规定的操作都应当有效性指算法所规定的操作都应当是能够有效执行的。是能够有效执行的。确定性一是确定性一是:所描述的操作应当具有明确的所描述的操作应当具有明确的意义,不应当有歧义性。意义,不应当有歧义性。二是二是:操作作序列只有一个初始动作,序列操作作序列只有一个初始动作,序列中每一动作仅有一个后继动作;中每一动作仅有一个后继动作;有穷性指算法所规定的操作序列必须在有穷性指算法所规定的操作序列必须在允许的时间内结束。允许的时间内结束。第7页,共190页,编辑于2022年,星期二【例【例3-1】从键盘输入三个数,找
7、出其中最大的那个数。】从键盘输入三个数,找出其中最大的那个数。分分分分析析析析:从从从从键键键键盘盘盘盘输输输输入入入入的的的的三三三三个个个个数数数数值值值值必必必必须须须须用用用用三三三三个个个个变变变变量量量量来来来来保保保保存存存存,假假假假定定定定这这这这三三三三个个个个变变变变量量量量分分分分别别别别为为为为a a、b b、c c,另另另另外外外外,还还还还需需需需要要要要一一一一个个个个变变变变量量量量maxmax来来来来装装装装最最最最大大大大的那个数。的那个数。的那个数。的那个数。先先先先比比比比较较较较a a和和和和b b的的的的值值值值,把把把把数数数数值值值值大大大大的
8、的的的放放放放入入入入maxmax中中中中,再再再再将将将将maxmax与与与与c c比比比比较较较较,又把数值大的放入又把数值大的放入又把数值大的放入又把数值大的放入maxmax中。中。中。中。经经经经过过过过两两两两次次次次比比比比较较较较,maxmax中中中中已已已已存存存存放放放放的的的的是是是是a a,b b,c c三三三三个个个个数数数数中中中中最最最最大大大大的的的的数,把数,把数,把数,把maxmax的值输出就是所需结果。的值输出就是所需结果。的值输出就是所需结果。的值输出就是所需结果。第8页,共190页,编辑于2022年,星期二算法步骤:算法步骤:算法步骤:算法步骤:1 1输
9、入三个数,其值分别赋给三个变量输入三个数,其值分别赋给三个变量输入三个数,其值分别赋给三个变量输入三个数,其值分别赋给三个变量a a,b b,c c。2 2把把把把a a与与与与b b中较大的那个数放入变量中较大的那个数放入变量中较大的那个数放入变量中较大的那个数放入变量maxmax中。中。中。中。3 3把把把把c c与与与与maxmax中较大的那个数放入变量中较大的那个数放入变量中较大的那个数放入变量中较大的那个数放入变量maxmax中。中。中。中。4 4输出最后结果输出最后结果输出最后结果输出最后结果maxmax的值。的值。的值。的值。第9页,共190页,编辑于2022年,星期二三个数比较
10、大小三个数比较大小#include void main()int a,b,c,max;printf(请输入三个数的值:请输入三个数的值:);scanf(%d%d%d,&a,&b,&c);if(ab)max=a;elsemax=b;if(cmax)max=c;printf(最大的值是:最大的值是:%dn,max);第10页,共190页,编辑于2022年,星期二1流程图表示法流程图表示法流程图表示法常用图例流程图表示法常用图例 3.2.2 算法的表示算法的表示第11页,共190页,编辑于2022年,星期二 求三个数最大值问题的流程图表示求三个数最大值问题的流程图表示第12页,共190页,编辑于20
11、22年,星期二2.N-S图描述图描述灵活的流线是程序中隐藏错误的祸根。针对灵活的流线是程序中隐藏错误的祸根。针对这一弊病,这一弊病,1973年美国学者年美国学者I.Nassi和和B.Shneiderman提出了提出了一种无流线的流程图一种无流线的流程图,称为称为N-S图。图。第13页,共190页,编辑于2022年,星期二N-S图表图表示法示法 求三个数中最大值问题的求三个数中最大值问题的N-SN-S图表示图表示 第14页,共190页,编辑于2022年,星期二常用的流程图符号常用的流程图符号一顺序结构一顺序结构一顺序结构一顺序结构顺序结构是一种顺序结构是一种顺序结构是一种顺序结构是一种简单的线性
12、结构简单的线性结构简单的线性结构简单的线性结构,根据流程线所示的方向,各矩形,根据流程线所示的方向,各矩形,根据流程线所示的方向,各矩形,根据流程线所示的方向,各矩形框按顺序执行。框按顺序执行。框按顺序执行。框按顺序执行。如:右图如:右图如:右图如:右图 语句的执行顺序为:语句的执行顺序为:语句的执行顺序为:语句的执行顺序为:A AB BC C NS图表示的顺序结构图表示的顺序结构顺序结构流程图顺序结构流程图第15页,共190页,编辑于2022年,星期二二选择结构二选择结构二选择结构二选择结构 选择结构是对给定的条件进行判断,根据判断结果的真假而分选择结构是对给定的条件进行判断,根据判断结果的
13、真假而分选择结构是对给定的条件进行判断,根据判断结果的真假而分选择结构是对给定的条件进行判断,根据判断结果的真假而分别执行不同的框的内容。别执行不同的框的内容。别执行不同的框的内容。别执行不同的框的内容。有两种选择(分支)结构的流程图:有两种选择(分支)结构的流程图:有两种选择(分支)结构的流程图:有两种选择(分支)结构的流程图:第16页,共190页,编辑于2022年,星期二(a)(a)的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行A A,否则执行,否则执行,否则执
14、行,否则执行B B。(b)(b)的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行的执行顺序为:先判断条件,当条件为真时,执行A A,否则什么也,否则什么也,否则什么也,否则什么也不执行。不执行。不执行。不执行。第17页,共190页,编辑于2022年,星期二三循环结构三循环结构三循环结构三循环结构 循循循循环环环环结结结结构构构构是是是是在在在在某某某某个个个个条条条条件件件件为为为为真真真真的的的的情情情情况况况况下下下下,重重重重复复复复执执执执行行行行某某某某个个个个框框框框中中中中的的的的内内内内容容容容
15、。循循循循环结构有两种基本形态:环结构有两种基本形态:环结构有两种基本形态:环结构有两种基本形态:whilewhile型循环和型循环和型循环和型循环和do_whiledo_while型循环。型循环。型循环。型循环。whilewhile型(当型)循环的流程图型(当型)循环的流程图型(当型)循环的流程图型(当型)循环的流程图 whilewhile型型型型循循循循环环环环的的的的执执执执行行行行顺顺顺顺序序序序为为为为:重重重重复复复复判判判判断断断断条条条条件件件件、如如如如果果果果条条条条件件件件为为为为真真真真则则则则执执执执行行行行A A,一但条件为假,则跳出循环。,一但条件为假,则跳出循环
16、。,一但条件为假,则跳出循环。,一但条件为假,则跳出循环。do-whiledo-while(直到型)型循环的流程图(直到型)型循环的流程图(直到型)型循环的流程图(直到型)型循环的流程图 do_while do_while型循环的执行顺序为:先执行型循环的执行顺序为:先执行型循环的执行顺序为:先执行型循环的执行顺序为:先执行A A,再判断条件,若条件,再判断条件,若条件,再判断条件,若条件,再判断条件,若条件为真则重复执行为真则重复执行为真则重复执行为真则重复执行A A,一但条件为假,则跳出循环。,一但条件为假,则跳出循环。,一但条件为假,则跳出循环。,一但条件为假,则跳出循环。A被称为被称为
17、循环体循环体,条件被称为,条件被称为循环控制条件循环控制条件。while型循环的型循环的NS图图 A被称为被称为循环体循环体,条件被称为,条件被称为循环控制条件循环控制条件。do-while型循环的型循环的N-S图图 第18页,共190页,编辑于2022年,星期二循环结构注意:循环结构注意:循环结构注意:循环结构注意:1 1、在循环体中,必须对条件要烦判断的值进行修改,使得经过、在循环体中,必须对条件要烦判断的值进行修改,使得经过、在循环体中,必须对条件要烦判断的值进行修改,使得经过、在循环体中,必须对条件要烦判断的值进行修改,使得经过有限次循环后,循环一定能结束。有限次循环后,循环一定能结束
18、。有限次循环后,循环一定能结束。有限次循环后,循环一定能结束。2 2、whilewhile型循环中循环体可能一次都不执行,而型循环中循环体可能一次都不执行,而型循环中循环体可能一次都不执行,而型循环中循环体可能一次都不执行,而do_whiledo_while型循环型循环型循环型循环则至少执行一次循体。则至少执行一次循体。则至少执行一次循体。则至少执行一次循体。3 3、do_whiledo_while型循环可以很方便地转化为型循环可以很方便地转化为型循环可以很方便地转化为型循环可以很方便地转化为whilewhile型循环,而型循环,而型循环,而型循环,而whilewhile型型型型循环不一定能转
19、化为循环不一定能转化为循环不一定能转化为循环不一定能转化为do_whiledo_while型循环。型循环。型循环。型循环。第19页,共190页,编辑于2022年,星期二 伪码是用介于自然语言和计算机伪码是用介于自然语言和计算机语言之间的文字和符号来描述算语言之间的文字和符号来描述算法,类似一篇短文,它把算法的法,类似一篇短文,它把算法的思想表达清楚。思想表达清楚。3伪码表示法伪码表示法第20页,共190页,编辑于2022年,星期二 关关 系系 运运 算算关系运算是指对两个运算量之间的关系运算是指对两个运算量之间的关系运算是指对两个运算量之间的关系运算是指对两个运算量之间的大小大小大小大小比较。
20、比较。C C语言中提供的关系运算符有:语言中提供的关系运算符有:语言中提供的关系运算符有:语言中提供的关系运算符有:(大于)(大于)=(大于或等于)(大于或等于)(小于)(小于)=(小于或等于)(小于或等于)(小于或等于)(小于或等于)=(等于)(等于)!=(不等于)(不等于)说明说明:(:(1)关系运算符的)关系运算符的优先级优先级优先级优先级低于低于低于低于纯算术类,纯算术类,纯算术类,纯算术类,高于高于高于高于赋值类赋值类赋值类赋值类。(2 2)关系运算符的结合方式为)关系运算符的结合方式为)关系运算符的结合方式为)关系运算符的结合方式为自左至右自左至右自左至右自左至右。每个。每个。每个
21、。每个 关系运算的操作数可以是任一表达式。关系运算的操作数可以是任一表达式。例如:例如:a+bc+d应理解为应理解为应理解为应理解为(a+b)(c+d)(a+b)(c+d)第21页,共190页,编辑于2022年,星期二 关关 系系 运运 算算(3 3)关系表达式的值只有两个:)关系表达式的值只有两个:)关系表达式的值只有两个:)关系表达式的值只有两个:关系表达式成立,即为关系表达式成立,即为关系表达式成立,即为关系表达式成立,即为“真真真真”,C C语言中以语言中以语言中以语言中以“1”“1”表示;表示;表示;表示;关系表达式不成立,即为关系表达式不成立,即为关系表达式不成立,即为关系表达式不
22、成立,即为“假假”,C C语言中以语言中以语言中以语言中以“0”“0”表示。表示。表示。表示。例如:对于声明语句:例如:对于声明语句:例如:对于声明语句:例如:对于声明语句:int x=2,y=3;int x=2,y=3;表达式表达式表达式表达式 x=y x=y 的值为的值为的值为的值为0 0;表达式;表达式;表达式;表达式 xy x=x+1=x+1=3=3=5“算术算术算术算术”优先优先优先优先z=0=5z=0=5“关系关系关系关系”优先优先优先优先z=1z z的值为的值为的值为的值为1 1“赋值赋值赋值赋值”第23页,共190页,编辑于2022年,星期二 关关 系系 运运 算算注意:注意:
23、注意:注意:1.1.要说明要说明要说明要说明x x在区间在区间在区间在区间a,ba,b中,数学中使用表达式中,数学中使用表达式中,数学中使用表达式中,数学中使用表达式 axb axb。但但但但C C语言中的表达式语言中的表达式语言中的表达式语言中的表达式“a=x=b”“a=x=b”的含义与之不同。的含义与之不同。假设假设a=0;b=0.5。若。若x=0.3,则执行,则执行a=x=b时时先求出先求出先求出先求出“a=x”“a=x”的值得的值得的值得的值得1 1,再进行,再进行,再进行,再进行“1=b”“1=b”得得得得0 0(假)。(假)。(假)。(假)。因此,为了判断因此,为了判断因此,为了判
24、断因此,为了判断x x是否在是否在是否在是否在a,ba,b范围内,应写成:范围内,应写成:范围内,应写成:范围内,应写成:a=x&x=ba=x&x=b那么那么那么那么a=xa=x的值为的值为的值为的值为1 1(真)且(真)且(真)且(真)且x=bx2785278在数学上是不允许的,而在在数学上是不允许的,而在在数学上是不允许的,而在在数学上是不允许的,而在C C中是中是中是中是 允许的。允许的。允许的。允许的。3.3.由于关系表达式的值是整型数由于关系表达式的值是整型数由于关系表达式的值是整型数由于关系表达式的值是整型数0 0或或或或1 1,故也可以将,故也可以将,故也可以将,故也可以将 其看
25、成是一种整型表达式。其看成是一种整型表达式。第25页,共190页,编辑于2022年,星期二 关关 系系 运运 算算例如:对于声明语句:例如:对于声明语句:例如:对于声明语句:例如:对于声明语句:int x=2,y=3;int x=2,y=3;表达式表达式表达式表达式 x=y x=y 的值为的值为的值为的值为0 0;表达式;表达式;表达式;表达式 xy x=x+1=x+1=3=3=5“算术算术算术算术”优先优先优先优先z=0=5z=00 a0 的值为的值为的值为的值为1 1(真);(真);(真);(真);A100A100的值为的值为的值为的值为0 0(假)。(假)。(假)。(假)。5.5.在判定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 章程 流程 控制 PPT 讲稿
限制150内