微信是人们普遍使用的手机社交工具,微信就是运行在手机上的一个程序。要使用微信,先先要注册一个账号,添加朋友到通讯录,然后才能聊天和打语音电话。这些都是微信设置好的流程和功能。
程序员用编程语言编写代码构建微信程序,编写安卓微信程序一般使用Java语言,苹果微信程序一般使用Objective-C语言,它是C语言衍生出来的,你学会了C语言,就可以编写苹果手机程序了。
借书流程
程序一词来源于生活,通常是指完成某些事物的一种既定方式和过程,可以将程序看成对一系列动作执行过程的描述。日常生活中可以找到许多程序示例。例如首次到图书馆借阅图书的过程可以描述为:
(1)了解借书流程
(2)办理借书证
(3)选择要借阅的图书
(4)办理借阅手续
计算机指令
上面的过程都是人来完成的,若需要计算机来完成这些步骤,就需要将这些过程用编程语言编写为代码,由编译程序将代码编译为计算机指令序列,由计算机执行这些指令序列,机器人就可以代替人完成借书流程了,这些指令序列就是计算机程序。
什么是计算机指令呢?人们在设计计算机时,为计算机提供了一套指令,其中的每一种指令对应着计算机能执行的一个基本动作。
餐厅打卡机
可见人们完成某些事物的既方式和过程,和计算机为完成人们交付的任务而执行的程序有异曲同工之妙。
下面,我们看一个生活片段:
清晨六点十分,伴随着准时而优美的起床铃声,我迈出宿舍,走进了第一餐厅。餐厅里人很多,没有办法,我只买了两个包子做为我的早餐罢了。随着我的餐卡在打卡机上轻轻掠过,六毛钱便不翼而飞了。当我走到超市的时候,突然感觉只吃包子是不是太单调了,于是在超市里拿了一包早餐奶,但付钱的时候却发现超市的收银机坏掉了,没奈何,我只得忍痛把刚拿到手的早餐奶又放了回去,真郁闷!
在上面的生活片段中,我们能找出几处计算机程序为我们生活服务的痕迹来呢?餐厅打卡机内部执行的是程序,超市收银机内部也会执行程序。
餐厅打卡机一般采用了射频识别技术,“射频识别(RFID)是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。”
打卡机利用射频识别技术将餐卡信息读取到打卡机,由打卡机的处理程序对读取的信息做进一步处理。打卡机中的处理程序就是计算机程序,它需要执行下述动作和指令完成一次打卡操作:
1) 接受输入的餐费金额
2) 读取卡内金额
3) 判断卡内金额是否大于餐费金额
4) 如果卡内金额小于餐费金额,给出余额不足提示
5) 如果卡内金额大于餐费金额,将卡内金额减去餐费金额后,回写到卡内
文字描述其动作或流程不够清晰或理解的话,我们可以用流程图来描述打卡机程序的执行动作或流程:

图 1 餐厅打卡机程序流程图
采用流程图描述打卡机程序的执行动作,是不是更直观和清晰一些。
超市收银机
超市收银机的工作原理类似餐厅打卡机,也是采用射频识别技术读取商品条码,获取商品价格、名称等信息,并由收银机内置的计算机程序对商品价格等信息进行汇总处理,给出所购商品金额等信息。其处理流程要比餐厅打卡机复杂一些,它需要执行下述动作和指令完成一次收费操作:
1) 读取商品条码
2) 获取商品价格、名称等信息并显示到收银机屏幕上
3) 计算所扫商品总金额
4) 等待操作员按键
5) 操作员按下“商品”按键,继续读取商品条码
6) 操作员按下“等金额”或“找零”按键,钱柜自动开启
其流程图描述如下:

图 2 超市收银机程序流程图
计算机程序
从餐厅打卡机和超市收银机的内置的程序可以看出,人们使用计算机,就是要利用计算机程序处理各种不同的问题,为了让计算机能够按照我们的意愿去工作,人们在设计计算机时,为计算机提供了一套指令,其中的每一种指令对应着计算机能执行的一个基本动作,为让计算机完成某项任务而编写的指令序列就称为计算机程序。