从锦囊妙计想到的06–流程线程总结

知识回顾

1. 分支结构

前面我们已经了解了 分支的情况, 分支做啥?  就是某些不确定的事情,若是甲事情发生,就做同甲相关的事情, 若是乙发生就做同乙相关的事情。

造成不确定的原因是, 在写锦囊的时候 没办法确定“将来” 执行锦囊(指令)的人(计算机)遇到到底啥情况, 因此 做锦囊时(写程序)时, 要考虑到不同情况发生

如下图:

分支结构

 

图中, 我们明确看到了, 两个分支, 分支1, 分支2, 同时在执行分支前, 有个 判断的 东西

上面过程(流程)  用通俗语言可以描述为

 

如果  xxx   情况发生    就做下面的事情

 锦囊x1

  锦囊x2

   等等

否则(就是没有发生上面的情况)就执行下面的事情

  锦囊y1

  锦囊y2

  锦囊y3

  等等

上面的  地方 有个地方需要改进一下, 就是边界不清楚 用下面方法 是否能清楚些

如果  xxx   情况发生    就做下面的事情   

 {

   锦囊x1

  锦囊x2

   等等

}

否则(就是没有发生上面的情况)就执行下面的事情

{  

锦囊y1

  锦囊y2

  锦囊y3

  等等

}

我们这里通过  "{"   "} “   把一些相关的锦囊 给括起来, 这样就非常清晰了, 清楚了解到 那些 锦囊(指令, 语句) 是放到一起的。

我们还能在改进一下

如果(if)  xxx   情况发生    就做下面的事情

 {

   锦囊x1

  锦囊x2

   等等

}

否则 (else)(就是没有发生上面的情况)就执行下面的事情

{  

锦囊y1

  锦囊y2

  锦囊y3

  等等

}

名称解释   if

if

名词解释  else

 

if

由于计算机起源于国外, 他们主要采用英语, 因此计算机语言描述起来还是采用英语的比较多(最近也可以用中文,但是非常少不通用)

那么上面用英语描述起来:

if (xxx   情况发生 )

 {

   锦囊x1

   等等

}

else

{  

锦囊y1

  锦囊y3

  等等

}

具体的解释参见:

伪代码

 2. 循环结构

什么是循环?   我们前面的例子里面, 关羽被累坏了!  为啥, 因为写了太多的东西(锦囊 、指令、语句 都类似吧), 当关羽采用循环的办法后, 关羽同学就 轻松了, 但是  张飞被累死了, 因为有了  死循环, 事情永远做不完, 因此张飞被累死了。 正确的循环需要有一个出口。

下面是一个 简略的循环语句图

循环语句

上图, 是一个 流程图, 加上一个 最终的实际执行 过程的图

我们先看看左面的流程图。

这个流程图是一个  较为正式的  循环结构的流程图, 这个流程图是个  有条件的循环结构,我们用一个 通俗的语言描述一下就是:

 

开始做

锦囊1

锦囊2

。。。

锦囊x

判断是否   继续做(若是继续做  就回到 开始处开始继续 工作)

不继续做 就执行下面的

我们这里一下 这个叙述过程

 

开始做(do)

{

锦囊1

锦囊2

。。。

锦囊x

}

判断是否继续做(while (条件))

循环后面的 指令(语句、锦囊)

do  翻译过来 就是       做, 执行的意思
while 就是 当什么 。。。

while

while(条件)   就是, 当 条件满足时, 执行相关的 {  } 里面的 程序

do

{

各种指令, 或者锦囊

}

while (条件)

 

另外一个循环是

while (条件)

{

各种指令或者条件

}

上面的两个 方式都是循环, 稍有一点差别, 前面是,先做  然后判断条件, 这样 无论啥情况都能确保循环里面的  语句被执行一遍

后面是, 符合条件 在执行

总结如下:

循环语句-总结

 

 新内容

前面回顾了   分支结构, 循环结构, 这个两个结构是 程序中的重要结构, 其实程序结构中还有另外一个结构, 这个结构就是  顺序结构。通俗的说, 就是前一个 锦囊执行完, 在执行后一个 锦囊。 也就是说一个指令执行完成, 在执行后一个指令。

顺序结构

 

如上图, 一个锦囊, 执行完成, 执行下一个锦囊, 一个个顺序的进行。 这个就结构就是 顺序结构。

 

流程总结

到目前为止, 我们已经讲解了, 流程图中比较 重要的3个结构, 分别是  顺序结构, 分支结构, 循环结构。 那么流程图相对准确定义是啥?

看看, 百度 百科的讲解

流程图(Flow Chart):使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。流程图在汇编语言和早期的BASIC语言环境中得到应用。相关的还有一种PAD图,对PASCAL或C语言都极适用。
中文名 流程图 外文名 FlowChart 作 用 使用图形表示算法 应 用 汇编语言,BASIC语言 别 名 框图

以特定的图形符号加上说明,表示算法的图,称为流程图或框图。

流程图是流经一个系统的信息流、观点流或部件流的图形代表。

在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。
例如,一张流程图能够成为解释某个零件的制造工序,甚至组织决策制定程序的方式之一。 也可以解释张飞如何烙饼, 弄不好也会累死的。

 

这些过程的各个阶段均用图形块表示,不同图形块之间以箭头相连,代表它们在系统内的流动方向。

下一步何去何从,要取决于上一步的结果,典型做法是用“是”或“否”的逻辑分支加以判断。
流程图是揭示和掌握封闭系统运动状况的有效方式。作为诊断工具,它能够辅助决策制定,让管理者清楚地知道,问题可能出在什么地方,从而确定出可供选择的行动方案。
流程图有时也称作输入-输出图。该图直观地描述一个工作过程的具体步骤。流程图对准确了解事情是如何进行的,以及决定应如何改进过程极有帮助。这一方法可以用于整个企业,以便直观地跟踪和图解企业的运作方式。
流程图使用一些标准符号代表某些类型的动作,如

决策(就是判断)用   菱形框   表示,

具体活动用    方框    表示。

 

但比这些符号规定更重要的,是必须清楚地描述工作过程的顺序。流程图也可用于设计改进工作过程,具体做法是先画出事情应该怎么做,再将其与实际情况进行比较。
步骤编辑
为便于识别,绘制流程图的习惯做法是:
圆角矩形表示“开始”与“结束”
矩形表示行动方案、普通工作环节用
菱形表示问题判断或判定(审核/审批/评审)环节
用平行四边形表示输入输出
箭头代表工作流方向

流程图符号如下图:

流程图符合

可以看到实际中的流程图, 可以是非常复杂的, 但是也是有规律的,更是非常有用的。

流程和线程总结

从流程图的符号可以知道, 一个流程图可以是非常复杂的, 但是他无论多么复杂, 由于张飞就一个人,  在复杂的烙饼的 流程。 到了张飞面前,  他只能一点, 一点的做, 一个事情, 一个事情的 做。

因此 把张飞 烙饼中做过的 过程一个一个 用线串起来 是没问题的。

下图是  一个分支结构的程序 最后执行时    变为一个线程了。

图

在最后执行时,  由于执行的  实际时刻的 具体的  条件状况 决定了程序执行那个分支, 最后这些步骤串到一起, 构成了一个执行路线。

循环结构的程序在执行时的情况如下:

循

由上图可以看到, 循环结构执行时, 最后的执行路线   是多个循环体   前后串接到一起了。

 

流程和线程的区别 和时间特性

1. 线程是计算机 按照 流程图的执行路线执行的结果,   但是最后线程的结构是一个条线, 是前后顺序的

2. 线程的结构同流程  图是不同的, 原因是 流程图里面, 可能有分支结构, 也可能有 循环结构。

分支结构是  由于编写程序(制作锦囊时)由于无法准确预测将来执行时的情况, 这样预计各种不同 情况下要做到出来过程

循环结构是  为了减少程序的编写量进行的处理(防止关羽被累死)

但是这些 在具体的执行时都是  要变为现实的, 最后执行时由于仅仅一个人在执行,因此仅仅能 一个个的做, 这些做的工作有前后顺序, 完全可以用 一条线串接起来。

3. 流程图是 一种预计的 结果, 就是没有发生前的 预计和预期。

4. 线程是 程序具体的、真正的执行路线, 线程是要按照预先的流程下来的。

总结一下时间特性。

流程图或者程序是    预计未来           (过去将来时)

线程                             正在进行           (现在进行时)

 

相关文章

计算机介绍                                  从锦囊妙计想到的01

流程图(分支结构)介绍          从锦囊妙计想到的02

线程介绍                                     从锦囊妙计想到的03

循环结构介绍                             从锦囊妙计想到的05

流程线程总结                             从锦囊妙计想到的06

cpu和线程定义、开始               从锦囊妙计想到的07

分布式计算                                  从锦囊妙计想到的08

分布式中事件和计数                 从锦囊妙计想到的09

内容总结                                     从锦囊妙计想到的10

数据类型,变量简介                从锦囊妙计想到的11

函数和参数                                从锦囊妙计想到的12

用户交互与数据输入输出       从锦囊妙计想到的13

人机交互界面                            从锦囊妙计想到的15 

过程与对象                                从锦囊妙计想到的16

同步和异步                                从锦囊妙计想到的17

顺序打印                                    从锦囊妙计想到的18

数据输入输出                            从锦囊妙计想到的19

屏幕坐标和打印                        从锦囊妙计想到的20

java函数控制输出                     从锦囊妙计想到的21

逐步细化解决复杂问题           从锦囊妙计想到的22

java入门                                    从锦囊妙计想到的23

java复杂过程分析                   从锦囊妙计想到的25

中间辅助功能解决问题          从锦囊妙计想到的26

叠加操作输出复杂图形          从锦囊妙计想到的27

时间和空间                               从锦囊妙计想到的28

编写边测解决问题                  从锦囊妙计想到的29

让程序动起来                          从锦囊妙计想到的30

程序往复运动                           从锦囊妙计想到的31