2.4.3 三种基本结构和改进的流程图

摘要:
为了提高效率和避免混淆,提出了三种基本结构。1966年,Bohra和Jacopini提出了以下三种结构来表示一个好算法的基本单元。由基本结构形成的算法属于“结构化”算法。它没有不规则的转弯,只有在这种基本结构中才能有分支和向前或向后跳跃。你可以自己定义基本结构,这些基本结构构成了一个结构化的程序。可以认为,这是从三个基本结构得出的。

传统流程图用流线指出各个框的执行顺序

当顺序表的复杂,容易混乱,当变得十分混乱时 ,被称为BS型算法,意为一碗面条(A Bowl of Spaghetti),乱无头绪。

为了提供效率和避免混乱,人们提出了三种基本结构

1966年,Bohra 和Jacopini 提出以下3种结构,用这3种结构表示一个良好算法的基本单元。

PS:引用图片 来自方弘

2.4.3 三种基本结构和改进的流程图第1张

1 顺序结构

c语言从上到下执行,虚框内是顺序结构

执行完A执行B

2 选择结构

又被称为,选取结构和分支结构

此结果必须包含一个判断框,根据给出的条件P 判断选择A或者B。

无论P条件是否成立,一定会选择AB其中一个,不可能出现两个都不选择,和两个都成立的情况。

A与B中可以有一个是空的

3 循环结构

又称为反复结构,即反复操作执行某一部分。

一共分为两类:

当(while)循环结构

当条件符合时 ,执行其参数内操作,再次判断是否符合,如果符合,继续执行内参数,在次判断,直到不符合条件,执行下一步操作

直到(until)循环结构

执行其参数内操作判断是否符合,当条件不符合时,再次执行参数,再次判断是否符合,如果不符合,继续执行内参数,在次判断,直到符合,执行下一步操作

2.4.3 三种基本结构和改进的流程图第2张

三种基本结构的共同特点:

(1)只有一个入口;

(2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。)�

(3)结构内的每一部分都有机会被执行到;

(4)结构内不存在“死循环”(无终止的循环)

错误图例

2.4.3 三种基本结构和改进的流程图第3张

如图,没有机会执行A框,所以此图是错误的

2.4.3 三种基本结构和改进的流程图第4张

如图这是一个i额死循环,也是错误的。

小结:

•由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。
•只要具有上述四个特点的都可以作为基本结构。可以自己定义基本结构,并由这些基本结构组成结构化程序。
例如:
2.4.3 三种基本结构和改进的流程图第5张

这是一个多分支选择结构,根据表达式的值决定执行路线。虚线框内的结构是一个入口一个出口,并且有上述全部的四个特点。由此构成的算法结构也是结构化的算法。可以认为这是由三种基本结构所派生出来的。

例如

2.4.3 三种基本结构和改进的流程图第6张

多联系 多画画就记住了

记住4个特点是关键:

一个入口一个出口,每一部分都可能被执行,没有死循环

免责声明:文章转载自《2.4.3 三种基本结构和改进的流程图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇直接下载jdk压缩包方式安装IOS沙盒(SandBox)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

APP版本更新通知流程图

一、APP版本更新通知流程图如下: 二、测试注意点:   1、Android更新直接下载APK,IOS引导至APP Store更新页面;   强制更新------只有“立即更新”   1、一般“强制更新”的机制不常用,除非涉及到APP的紧急且致命缺陷的修复,或者是与用户monkey密切相关的问题,或许才会使用“强制更新”机制;   2、不点击“立即更新”...

【前端开发】vue+dagre-d3前端流程图开发demo

前言 1、一个支持增加节点、删除节点、修改节点的流程图,增加节点可选择并行、串行、会签、下一节点并行等状态; 2、支持设置条件、删除条件、查看条件; 3、可直观显示已完成的节点和不可查看的节点,真正做到了流程可视化。 4、支持画的流程图导出为图片格式; 5、支持鼠标缩放流程图; 效果图  由于本项目较为复杂、花了不少心血故暂不开源,若有需要和了解加wx:...

业务流程图与数据流程图的比较

业务流程图与数据流程图的比较 [摘要]业务流程图(Transaction Flow Diagram)和数据流程图(Data Flow Diagram)是结构化信息系统开发方法中两种常用的图形工具。本文从描述对象、功能作用、基本符号和绘制方法四个方面阐述二者的区别, 对它们的联系也作了介绍。[关键词]结构化系统开发方法 系统调研 业务流程图 数据流程图 一、...

Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)

最近写文档,要贴流程图,自己画太烦,就到网上去找自动生成流程图的软件,结果知道了这个叫 Microsoft Visual Studio Learning Pack 的插件,用它来生成函数的流程图,感觉很方便。 下载地址 http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&...

如何画流程图

我们写的程序都是有逻辑顺序的,即是有流程的,流程图的作用则是对这种逻辑顺序的一种描述,是对解决问题的方法、思路或者算法的图形化的展示。 流程图采用的符号 Axure里的流程图形状组件面板 下面这的内容介绍来自(https://www.douban.com/note/310371289/) 1、矩形作用:一般用作要执行的处理(process),在程序流程...

寻找一把进入 Alibaba Sentinel 的钥匙(文末附流程图)

经过前面几篇文章的铺垫,我们正式来探讨 Sentinel 的 entry 方法的实现流程。即探究进入 Alibaba Sentinel 核心的一把钥匙。 @ 目录 1、SphU.entry 流程分析 2、Sentienl ProcessorSlot 处理链 2.1 SlotChainBuilder 类体系 2.2 DefaultSlotChainBu...