1700414238
计算机是怎样跑起来的 4.1 程序的流程分为三种
1700414239
1700414240
各位读到此处,应该能够从硬件上想像出计算机的运作方式了。计算机的硬件系统由CPU、I/O和内存三部分构成。内存中存储着程序,也就是指令和数据。CPU配合着由时钟发生器发出的滴答滴答的时钟信号,从内存中读出指令,然后再依次对其进行解释和执行
1700414241
1700414242
CPU中有各种各样的各司其职的寄存器,其中一个称为PC(Program Counter,程序计数器)的寄存器,负责存储内存地址,该地址指向下一条即将执行的指令,每解释执行完一条指令,PC寄存器的值就会自动被更新为下一条指令的地址
1700414243
1700414244
PC寄存器的值在大多数情况下只会增加,下面假设PC寄存器正指向内存中一个从10号地址开始的3字节指令。CPU解释执行完这条指令后,PC寄存器中的值就变成10+3=13了,也就是说,程序基本上是从内存中的低地址(编号较小的地址)开始,向着高地址(编号较大的地址)流下去的。我们把程序的这种流动称为“顺序执行”(如图4.1所示)
1700414245
1700414246
图4.1 硬件上的程序流程(顺序执行)
1700414247
1700414248
1700414249
1700414250
1700414251
程序的流程总共有三种。除了顺序执行外,还有“条件分支”和“循环”,因为只有这三种,记忆起来还是很轻松的
1700414252
1700414253
正如上文所述,顺序执行是按指令记录在内存中的先后顺序依次执行的一种流程。而循环则是在程序的特定范围内反复执行若干次的一种流程。条件分支是根据若干个条件的成立与否,在程序的流程中产生若干个分支的一种流程。无论规模多么大多么复杂的程序,都是通过以上三种流程组合起来实现的
1700414254
1700414255
程序的三咱流程正像是河流本身,从高山的泉眼中涌出的清泉形成河流的源头(程序执行的起点)。水流从山中缓缓流下,有时向着一个方向流淌(顺序执行),有时中途分出了支流(条件分支),还有时由于地势卷起了漩涡(循环)。难道程序的流程不美吗?完全就像是裱在画卷上的山水画一样(如图4.2所示)
1700414256
1700414257
图4.2 程序的三种流程
1700414258
1700414259
1700414260
1700414261
1700414262
还有一种称为“无条件分支”的流程,它就仿佛是瓢泼大雨引发的山洪,突然就向着某处流去了,可以认为这是一种特殊的条件分支。
1700414263
1700414264
虽然可能不如山水画那样优美,但还是要给大家展示一段简单的程序。代码清单4.1中列出了用VBScript(Visual Basic Scripting Edition)编写的“石头剪刀布游戏”的代码,VBScript是BASIC语言的一个版本。该程序可以在Windows 98/ME/2000/XP操作系统上运行(用于执行VBScript程序的WSH(Windows Script Host)已作为标准组件被集成在Windows 98/Me/2000/XP操作系统中)玩家和计算机进行五轮石头剪刀布比赛,比完后显示玩家获胜的次数
1700414265
1700414266
请用记事本等文本编辑器编写这个程序,并存储到扩展名为.vbs的文件中。只要双击保存后的文件,程序就可以执行了
1700414267
1700414268
图4.3 代码清单4.1执行后的结果
1700414269
1700414270
1700414271
1700414272
1700414273
代码清单4.1 用VBScript编写的“石头剪刀布游戏”
1700414274
1700414275
‘初始化表示手势的变量
1700414276
1700414277
Dim gesture(2)
1700414278
1700414279
gesture(0)=”石头”
1700414280
1700414281
gesture(1)=”剪刀”
1700414282
1700414283
gesture(2)=”布”
1700414284
1700414285
‘初始化对玩家获胜次数计数的变量
1700414286
[
上一页 ]
[ :1.700414237e+09 ]
[
下一页 ]