当前位置: 首页 > news >正文

【时时三省】(C语言基础)三种基本结构和改进的流程图

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

传统流程图的弊端

传统的流程图用流程线指出各框的执行题序,对流程线的使用没有严格限制。因此,使用者可以不受限制地使流程随意地转来转去,使流程图变得毫无规律,阅读时要花很大精力去追踪流程,使人难以理解算法的逻辑。这种情况如图所示

 这种如同乱麻一样的算法称为BS型算法,意为一碗面条毫无头绪

为了提高算法的质量,使算法的设计和阅读方便,必须限制箭头的滥用,即不允许无规律地使流程随意转向,只能顺序地进行下去,但是,算法上难免会包含一些分支和循环,而不可能全部由一个个顺序框组成。

为了解决这个问题,人们规定出几种基本结构,然后由这些基本结构按一定规律组成一个算法结构(如同用一些基本预制构件来搭成房屋一样),如果能做到这一点,算法的质量就能得到保证和提高

三种基本结构

以下用3种基本结构作为表示一个良好算法的基本单元。

( 1 )顺序结构。

 ( 2 )选择结构。

 注意:无论p条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框。无论走哪一条路径,在执行完A或B之后,都经过b点,然后脱离本选择结构。A或B两个框中可以有一个是空的,即不执行任何操作,如图

 ( 3 )循环结构。

①当型( while型)循环结构。

②直到型( until型)循环结构。

 以上3种基本结构,有以下共同特点:

( 1 )只有一个人口。

( 2 )只有一个出口。

请注意,一个判断框有两个出口,而一个选择结构只有一个出口。不要将判断框的出口和选择结构的出口混淆。

( 3 )结构内的每一部分都有机会被执行到。也就是说,对每一个框来说,都应当有一条从人口到出口的路径通过它。

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

由以上3种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。

其实,基本结构并不一定只限于上面3种,只要具有上述4个特点的都可以作为基本结构。人们可以自己定义基本结构,并由这些基本结构组成结构化程序。例如

 也可以将这样的结构定义为基本结构。

 图示的是一个多分支选择结构,根据给定的表达式的值决定执行哪一个框。

相关文章:

  • Day01 【苍穹外卖】环境搭建与前后端联调
  • 【Java】泛型与集合篇(二)
  • cesium视频投影
  • 【核心算法篇三】《DeepSeek强化学习:Atari游戏训练框架解析》
  • 使用 Docker 部署 Apache Spark 集群教程
  • IDEA——Mac版快捷键
  • 如何使用 MTG2000 和 FreeSWITCH 通过 SIP Trunk 搭建呼叫中心
  • Jetpack Compose系列教程之(16)——Compose生命周期及副作用函数
  • 玩客云 IP查找
  • 【C语言】第四期——循环语句
  • MySQL数据迁移工具
  • DeepSeek预测25考研分数线
  • Dubbo
  • LeetCode1287
  • 记一次Ngnix配置
  • 开源项目的认识理解
  • 科研绘图系列:R语言绘制地图和山脊图(map ridge plot)
  • com.typesafe.config
  • Pytorch实现之在LSGAN中结合重建损失
  • 【设计模式】 代理模式(静态代理、动态代理{JDK动态代理、JDK动态代理与CGLIB动态代理的区别})
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业
  • 美联储连续第三次维持利率不变,警示关税影响
  • 外交部回应中美经贸高层会谈:这次会谈是应美方请求举行的
  • 暴雨蓝色预警:南方开启较强降雨过程
  • “80后”海南琼海市长傅晟,去向公布