过程化语句及程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二节 顺序结构编程
掌握了数据类型、表达式以及基本的输入输出方法 后,就可以编写程序来解决一些简单问题。 例:交换两个变量 #include <iostream.h> //预处理命令 int main(){ int a=1, b=2; //定义待交换的两个整型变量,并赋值 int tmp; //定义一个整型变量作为中间交换用 cout<<"交换前:a="<<a<<",b="<<b<<endl; tmp=a; a=b; b=tmp; cout<<"交换后:a="<<a<<",b="<<b<<endl; }
A 操作1
操作2 B
2、选择结构
选择结构,也叫分支结构。选择结构的程序里存在 一些分支,程序通过对一些条件的判断选择执行的 分支。 按照分支数目,选择结构又可以分为单选择、双选 择和多选择三种形式。
A X>1?
A X>1? 是 否
1 2
A Type 4 3
是 操作1 B
否
操作1
操作2
操作1
操作2
程序流程图
程序流程图是算法的图形描述方式。它使用一些简 单的几何图形来表示各种不同性质的程序操作,使 用流程线将各个图形连接起来,指示算法的执行过 程。由于流程图的符号统一,且画法简单,结构清 晰,逻辑性强,便于理解,因此成为描述程序流程 的主要方法。下图中的图形是流程图中常用的一些 标志。
常见程序流程图图形符号
三种基本结构
按照操作的执行顺序,程序可以分为三类基本结构: 顺序结构 选择结构 循环结构 1996年,计算机科学家Bohm和Jacopini证明:任何简 单或复杂的算法都可以由顺序结构、选择结构和循环 结构这三种结构组合而成。所以,这三种结构就被称 为程序设计的三种基本结构,也是结构化程序设计建 议采用的结构。
算法优劣的衡量
算法的时间复杂度是指执行算法需要消耗的时间资 源,其表征了算法执行的效率问题,既解决问题的 速度。 算法的空间复杂度是指执行算法需要占用的内存 空间,其表征了算法执行需要的资源,也就是解决 问题付出的代价。 很显然,算法的效率越高、代价越小,其性能越优 异。
算法描述方法
当算法过程比较复杂时,单靠自然语言来描述算法 将显得十分困难,让人难以准确理解。此时,需要 借助其他的算法描述手段,主要有: 算法语言,有伪代码、各种程序设计语言、计算机 语言等。 图形描述,如流程图和N-S图,图的描述应与算法 语言的描述对应; 形式语言,用数学的方法,可以避免自然语言的二 义性。
指定数据的类型和数据的组织 形式——数据结构(data structure)。
数据结构是一个个实体,是程序存储、组织数据的 方式; 而算法是将它们联系在一起的手段。
什么是算法
算法就是解决一个问题的完整的步骤描述,是指 完成一个任务准确而完整的步骤描述,也就是说给 于初始状态或数据,按照算法描述的步骤进行运算, 能够得出所要求或所期望的终止状态或输出数据。 解决一个问题的方法有高明的的,也有糟糕的;同 样,同一个问题的算法也存在优劣之分。 一个算法的优劣可以用空间复杂度与时间复杂度 来衡量。
操作2
操作2
B
B
3、循环结构
在循环结构中,是反复地执行一系列操作,直到某 条件为假(或为真)时才终止循环。按照判断条件 出现的位置,可以分为while循环结构和until循环结 构。
while循环结构
while循环结构中,先判断条件,如下图所示。如果 A不大于1,则直接退出循环体到达流程出口处;如 果满足A大于1,执行操作1,并且在操作1结束后返 回到循环入口,重新判断条件;如果A还是大于1, 再次执行操作1,再返回结构入口„„,如此反复。
A X>1? 是 否 操作1
B
until型循环结构
until型循环结构中,在结构入口处先执行循环体, 然后再判断条件,如下图所示。当程序执行完操作1 后,判断A是否大于1。如果是,则再执行操作1; 然后再次判断A是否大于1;如果结果仍然为是,则 再次执行操作1„„
A 操作1 是
X>1? 否 B
循环结构
起止框
处理框
判断框
数据输入/输出 框
预定义处理 框
连接点
流线
N-S流程图
A A 操作1 操作2 B 顺序结构 A 是 操作1 B 选择结构 X>1? 否 操作2 B until结构 操作1 操作1 X>1? B while结构 A X>1?
由I.Nassi和B.Shneiderman在1973年提出。去掉了程 序流程图中的流程线(当程序流程复杂时,程序流 程图的流线使人眼花缭乱),将整个流程放在一个 大框中,使程序流程更清晰。
第一节 结构化程序设计
结构化程序设计是荷兰科学家E.W.Dijikstra在1965年 提出的 主要思想是通过分解复杂问题为若干简单问题的方 式降低程序的复杂性。 主要观点是采用自顶向下、逐步细化的程序设计方 法 同时严格使用三种基本控制结构构造程序。 三种基本控制结构是指顺序结构、选择结构和循环 结构。所有的程序结构都可以分解为这三个基本控 制结构。
来自百度文库
1、顺序结构
在顺序结构的程序里,各操作是按照它们出现的 先后顺序执行的。 如下图所示,操作1和操作2按自上而下地顺序执行。 这是最简单的一种基本结构。这个结构里只有一个 入口点A和一个出口点B,其特点是从入口点A开始, 按顺序执行所有操作,直至出口点B处。事实上, 所有的程序的总流程总是一个顺序结构。
在这两种结构中,操作1都可能被反复执行,直到 A的值不大于1,才结束程序。同样,循环型结构也 只有一个入口点A和一个出口点B。 合理地使用顺序结构、选择结构和循环结构这三种 基本结构,可以组合成复杂的高级结构;而所有的 复杂结构都可以分解为这三种基本结构。
程序和算法
程序=算法+数据结构
对操作的描述。即操作步 骤——算法(algorithm)。
C/C++的控制语句
if()~else~(条件语句) for()~(循环语句) while()~ (循环语句) do~while()(循环语句) continue(结束本次循环语句) switch(多分支选择语句) break(终止执行switch或循环语句) return(从函数返回语句) goto(转向语句)