在很多的程序设计的时候,在涉及到需要用到流程结构的时候一般会用到两种方法:标志位和步骤序号。现在就其中的两个不同的方法进行说明。
1. 标志位
- 运用此方法时候,一般的情况下,需要在每个流程的最开始将运行过程中需要用到的所有的标志位清零。例如:
在程序需要用到a[0]到a[20]一共21个bool标志位。那么在程序最开始的时候需要用到以下语句:
if “firstScan” or “Reset_Signal” then
for i := 0 to 20 do
a[i] := 0;
end_For
end_if;
然后在进行编程时候用这些bool位作为标志。例如:
if a[0] then
Set_Bit := 1;
Reset_Bit := 0;
if transition_condition then
a[0] := 0 ;
a[1]:= 1;
end_if;
这样的话,程序的逻辑流程便从a[0]步转换到a[1]步,这样便顺利的实现了程序流程的流动。
- 在使用标志位的时候,需要注意的是
i. 在起始状态以及初始化的状态下,需要清零所有的状态位;
ii. 在状态的跳转的时候,需要清零当前的状态位,然后置位下一步的状态位。如果在程序中没有清零当前的状态的状态位,那么就会出现当前状态会一直被执行。并且与下一个流程一起执行。
2. 步骤序号
这里是引用
- a) 使用步骤序号进行设计流程结构的时候可以依据步骤序号进行分解流程。每一个步骤都有相应的步骤号(即一个具体的数值)进行表示,这种方法有利于步骤的清晰表达。而且步骤序号在某一个时间只可能存在一个值,因此在程序的每个扫描周期都有且只有一个步处在活动状态。
- b) 在使用步骤序号进行每个步骤的表示的时候,不可能存在两个不同的步同时动作的情况。因此,如需要用到在某一个时间内,两个不同的步里面的动作同时执行,便需要用到其他的标志位或者重新开启一个子流程。
以上,便是对程序设计中涉及到的流程结构进行步骤分解的一点说明。