学习目标
1.了解什么是算法及算法描述
2.认识三种程序结构
重点、难点
重点:掌握三种程序结构
难点:学会绘制流程图
算法
算法就是计算机的解题过程,是在有限的步骤内求解某一问题所使用的一组定义明确的可执行的规则和方法。
算法是使用计算机解决问题的基础,也是程序设计的精髓。程序设计的实质就是构造解决问题的算法。
人们使用计算机,就是要利用计算机处理各种不同的问题,而要做到这一点,人们就必须事先对各类问题进行分析,确定解决问题的具体方法和步骤,再编制好一组让计算机执行的指令即程序,交给计算机,让计算机按人们指定的步骤有效地工作。这些具体的方法和步骤,其实就是解决一个问题的算法。
一个算法应该具有以下五个重要的特征:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身确定了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
算法的描述
1.用自然语言描述算法
用自然语言描述算法,就是我们日常会话的语言,把算法中的各个步骤和方法,依据合理的次序一一叙述清楚。
对于简单的问题,用自然语言描述还能做到清晰易懂,但对于比较复杂的问题,就很难表述准确,也不容易表达清楚。因此,较少采用自然语言描述算法。
如果我们把解决问题的步骤描绘出来,就是算法的描述。描述算法的方式有很多种,下面介绍常用的三种:
算法的描述
2.用表格描述算法
表格是一种常用的事物关联结构描述方法,在程序设计中,用来表现规律化算法的一种方式,适合表达模块关系、数据传递关系、函数变量关系等内容。
3.用流程图描述算法
流程图就是用规定的符号、连线和文字说明来表示算法的图形。用流程图描述算法比较形象直观,程序运行的过程比较清晰,并且容易表达程序模块关系。因此,编程人员更多地采用流程图来描述算法。
流程图符号
圆角矩形表示“开始”与“结束”
平行四边形表明输入、输出内容
矩形表示普通执行环节
菱形表示条件判断环节
箭头表示执行方向
问题
“要把大象装冰箱,总共要几步?”
流程图
“三步”
第一步:把冰箱门打开
第二步:把大象装进去
第三步:把冰箱门带上
第一步
第二步
第三步
算法
程序三种基本结构
计算机完成一个信息处理任务的程序可以分为多个模块,每个模块也可以看作一个具体的运算程序。每个运算程序都是计算机按步骤和功能执行运算的系统过程。这一系统过程中,运算步骤的顺序和功能的关联就是程序结构。
流程图有三种基本结构:
顺序结构
选择结构(分支结构)
循环结构
刚才的流程图是哪种结构?
顺序结构
顺序结构是最简单的流程图结构,框与框之间按从上到下的顺序依次执行
顺序结构的流程图使用矩形框
它是任何流程图都离不开的一种结构
处理2
处理3
……
选择结构(分支结构)
选择结构又叫分支结构。选择结构的程序是这样的,当程序执行到某一步时,会遇到一个条件判断,这个条件有几个结论就会有几个分支,程序会根据不同的结论执行相应的分支。
分支结构的流程图使用菱形框
处理2
是
否
程序员的笑话
程序员的老婆吩咐他去商店买东西:你去附近的商店买些面包,如果有鸡蛋的话,买6个回来。 随后,老公买了6个面包回来,他的妻子大吃一惊:你为什么买了6个面包?! 程序员回答:因为他们有鸡蛋。
老婆 老公
买面包
是否有鸡蛋
买6个鸡蛋
有
买面包
是否有鸡蛋
买6个面包
有
没有
千言万语不如一幅图!
循环结构
在循环结构中,算法的某些步骤需要重复执行,被重复执行的部分称为循环体。程序执行到某一步后,会遇到一个条件,满足了条件,循环体就被执行;反之,程序会跳过这个循环体继续向下执行,并且控制条件决定着循环的次数。
循环结构也使用菱形框
循环结构中一定包含分支结构
条件判断
循环体
否
是
绘制流程图的一般过程:
首先,用自然语言描述流程步骤;
其次,分析每一步骤是否可以直接表达,或需要借助于逻辑结构来表达;
再次,分析各步骤之间的关系;
最后,画出流程图表示整个流程。
下列图形符号属于判断框的是( )
A B
C D
开始
结束
X=1+1
输出X的值
小测试
某流程图如图所示问输出的S的值?
开始
结束
S=1,k=1
k=k+1
S=2S+k
输出S
K>2
是
否
总结
1.算法
算法就是计算机的解题过程,是在有限的步骤内求解某一问题 所使用的一组定义明确的可执行的规则和方法。
2.算法的五个重要的特征
有穷性、确切性、输入、输出、可行性
3.流程图的三种结构
顺序结构
选择结构(分支结构)
循环结构
试一下
画出1到100的和的流程图
THANKS