zoukankan      html  css  js  c++  java
  • 2.4.3 三种基本结构和改进的流程图

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

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

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

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

    PS:引用图片 来自方弘

    1 顺序结构

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

    执行完A执行B

    2 选择结构

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

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

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

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

    3 循环结构

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

    一共分为两类:

    当(while)循环结构

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

    直到(until)循环结构

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

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

    (1)只有一个入口;

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

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

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

    错误图例

     

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

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

    小结:

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

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

    例如

    多联系 多画画就记住了

    记住4个特点是关键:

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

  • 相关阅读:
    Inner Classes with TypeScript
    设计模式(一)
    C++定义构造函数必须使用初始化列表的场合
    制作Linux下程序安装包——使用脚本打包bin、run等安装包
    Windows下将程序打包为安装包(最为简易的方式)
    在Linux中查看文件的编码及对文件进行编码转换
    libpcap文件格式分析
    static_cast, dynamic_cast, const_cast
    字符1与数字1
    Linux下的多线程编程
  • 原文地址:https://www.cnblogs.com/taoyuan7788/p/3185162.html
Copyright © 2011-2022 走看看