01只有硬件还不够

一台电脑里有 CPU、内存、硬盘、显卡,还有键盘、鼠标和屏幕。 看起来什么都准备好了,可是如果没有程序,它们并不知道现在到底要完成什么任务。

一台完整的电脑
CPU
内存
硬盘
屏幕
接下来做什么?

02程序就像一份任务说明

程序(Program)可以先理解成: 一组按照顺序写好的指令,用来告诉电脑什么时候做什么、怎样做。

做三明治的步骤

  1. 拿两片面包
  2. 放上生菜和火腿
  3. 盖上另一片面包

电脑程序的步骤

  1. 读取输入
  2. 按照规则处理
  3. 把结果输出

03同一台电脑为什么能做不同的事?

因为电脑可以运行不同的程序。 程序换了,电脑收到的“任务说明”也就换了。

同一台电脑

画画程序

处理画笔、颜色和图像

游戏程序

处理角色、规则和画面

音乐程序

播放、暂停和处理声音

写作程序

输入、编辑和保存文字

电脑的硬件决定“它有什么能力”,程序决定“现在用这些能力做什么”。

04程序怎样指挥电脑工作?

上一篇我们学过,电脑完成任务时可以用 输入 → 准备 → 处理 → 输出来理解。 程序就像贯穿这条流程的“指挥者”。

输入

程序决定要接收哪些信息

准备

程序和数据被放到正在使用的位置

CPU 芯片

处理

CPU 按照程序中的指令执行

显示器

输出

程序决定最后怎样呈现结果

例子:计算 7 + 5
接收 7 和 5 → 执行加法 → 得到 12 → 显示 12

05电脑需要非常明确的步骤

人和人说话时,有时候一句“把桌子收拾一下”,大家也能大概明白。 但电脑不会自己猜你的意思,它需要更明确、具体、没有歧义的指令。

对电脑来说太模糊

“把这些数字整理好。”

怎样才算“整理好”?从小到大,还是从大到小?

更明确的任务

“把这些数字从小到大排列。”

目标清楚,程序才能按照确定的规则执行。

以后学习算法时,你会发现:把一个问题拆成清楚、可执行的步骤, 正是计算机解决问题非常重要的一部分。

06我们写的代码怎样变成电脑的行动?

程序员通常不会直接写 CPU 最底层使用的机器指令, 而是使用 C++、Python 等编程语言写代码(Code)。

我们写的代码 例如 C++
转换成电脑能执行的形式 C++ 通常需要经过编译
CPU 芯片 CPU 执行 一步一步完成指令

你已经知道了什么

  • 只有 CPU、内存、硬盘等硬件还不够,电脑还需要程序告诉它要做什么。
  • 程序可以理解成一组按照顺序写好的指令。
  • 同一台电脑运行不同程序,就能完成完全不同的任务。
  • 程序会参与输入、准备、处理和输出的整个过程。
  • 电脑需要明确、可执行的步骤,不会自动猜出程序员真正想表达什么。
  • 我们写的代码最终需要转换成电脑能够执行的形式,再由 CPU 执行。