什么是程序
在生活中,我们打开开关,灯就会亮,关闭开关,灯就会灭,
学过初中物理,我们知道这是开关控制了电路的断开与连接,
电路连通,灯两端的电压不相等,有电压差,就会形成电流,电流经过小灯的灯丝,发光发热,灯就亮了;
断开电路,灯两端没有电压差,没有电流,灯就不会亮。
打开开关,有电压差,灯亮,关闭开关,没有电压差,灯灭。
如果此时我们有4盏这样的灯,从左到右依次摆放,我们就可以创造很多组合。
仅让第一盏灯亮:打开关闭关闭关闭
仅让第二盏灯亮:关闭打开关闭关闭
让后两个灯亮:关闭关闭打开打开
如果想每个灯每隔5秒逐次亮起:
第0秒:打开关闭关闭关闭
第5秒:打开打开关闭关闭
第10秒:打开打开打开关闭
第15秒:打开打开打开打开
像这样,在我们控制灯的时候,其实我们就在编程了。
程序其实就是指令的组合,而编程其实就是按照我们的目的,组合指令。
打开、关闭就是指令,程序就是 打开关闭关闭关闭,我们的目的就是仅让第一盏灯亮。
也许这样太过简单,但是事实就是如此。
复杂的设备其实也都是这样的开关控制。
假设这样的开关用1表示开,用0表示关,上面的程序就变成了:
仅让第一盏灯亮:1000
仅让第二盏灯亮:0100
让后两个灯亮:0011
如果想每个灯每隔5秒逐次亮起:
第0秒:1000
第5秒:1100
第10秒:1110
第15秒:1111
如果我们想写跑马灯的程序就是
1000
0100
0010
0001
1000
0100
0010
0001
...
一直循环
程序是怎么运行的
上面的程序运行起来很简单就是控制4个开关,开关其实除了做控制还可以做其他用途,比如
数据存储
开关本来就表示两种状态,0和1,比如设置为打开打开关闭,就是110,可以表示报警电话,拥有足够多的开关,你就可以表示任何数,
你也可以给不同的数,赋予不同的含义,比如16个开关为一组,表示一个汉字,或者一个颜色值,然后再把表示的汉字组合在一起,表示一篇文章,或者把不同的颜色值组合在一起,表示一幅画,等等
信号传输
比如电台,长按、短按、按几下,组合起来就可以传递消息,或者16个开关表示一个汉字,但是每秒变化一次,这样一分钟就有60个字,这样就把这60个字传递给了看到开关变化的人
这样综合起来,就可以想象复杂的程序是如何运行的,比如
点击键盘,屏幕上就会出现对应的字母,在点键盘时,
对应按键的开关状态被改变,产生电压变化,电脑读取到电压变化,知道这个电压变化代表这个按键被按下,然后修改代表屏幕的众多开关,从而改变屏幕区域的部分颜色,所有的颜色变化,在屏幕上形成了这个字母。
最本质的数据就是0和1,众多开关形成了各种不同的含义的设备和设备对应的状态。
程序本身就是对这些开关的打开关闭指令,不同的组合形成各种不同含义的程序,修改设备对应的状态。
程序的执行就是打开关闭开关。