💻 第一章 计算机的三大原则
📄 一句话概括

计算机再复杂也只守三条根:只做输入运算输出、程序是指令加数据、一切处理都按流程走,全书十二章都是这三条的展开。

📝 本节和前面几节的关系

本篇是全书总纲。🔵 计算机基础 讲过类似的底层概念,这一课用三大原则把它们串成一根线,后面每一章都是往这根线上挂东西。

一、三大原则是什么

作者开宗明义:计算机有【三个根本性基础】,后面不管多新的技术,都逃不出这三条—— 原则一:计算机是进行输入、运算、输出的机器; 原则二:程序是指令和数据的集合; 原则三:计算机的处理方式有时与人的思维习惯不同。

二、为什么三条就够用

乍看太朴素,其实信息量极大。原则一说的是硬件骨架——任何计算机任务都能拆成三段;原则二说的是软件本质——程序再大也只是指令加数据两张表;原则三说的是学习心态——别拿【想当然】去猜计算机。 打个比方:把计算机当成一家小饭馆。输入是点菜,运算是后厨炒菜,输出是上菜;菜单和菜谱是程序,食材是数据;而后厨的规矩(先放油再放菜)跟家里做法可能不一样——这就是原则三。

三、本课怎么用这三条

后面各章的对应关系:第二、三章讲硬件和指令(原则一、二落地),第四~七章讲程序(原则二展开),第八~十一章讲数据库、网络、加密、XML(原则一的延伸应用),第十二章讲人(SE 把原则用成工程)。 读后面的章节时,遇到任何新名词,先问一句【它是输入、运算还是输出?】——三大原则就是全书的地图。

四、动手 Demo:把「算平均分」拆成三段

用一次最普通的算平均分,验证原则一:任何任务都能干净利落地切成输入、运算、输出三段。

# 把一次计算拆成输入 -> 运算 -> 输出三段
scores = {"数学": 90, "语文": 85, "英语": 77}   # 输入
total = sum(scores.values())                     # 运算:求和
avg   = total / len(scores)                      # 运算:除法
print("平均分 = %.2f" % avg)                      # 输出

实跑输出:

--------------------------------------------------------------------
把「算平均分」拆成输入、运算、输出三段
--------------------------------------------------------------------

原则 1:计算机是进行输入、运算、输出的机器。
下面把一次「算三科平均分」完整拆成三段,看数据怎么流:

[第 1 段:输入] 从键盘把三科成绩送进内存:
    键盘 -> 内存: 数学 = 90 分
    键盘 -> 内存: 语文 = 85 分
    键盘 -> 内存: 英语 = 77 分

[第 2 段:运算] CPU 在内存里取数、计算:
    加法: 90 + 85 + 77 = 252
    除法: 252 / 3 = 84.00

[第 3 段:输出] 把结果送回显示器:
    内存 -> 显示器: 平均分 = 84.00 分

结论:三段缺一段,程序就不完整。任何计算机任务都能这么拆。

  三段     谁在干活               数据长什么样
  -------------------------------------------------------
  -------------------------------------------------------
  输入     键盘/网卡/传感器       90, 85, 77(原始分数)
  运算     CPU + 内存             求和 252、除法 84.00
  输出     显示器/打印机/喇叭     平均分 = 84.00

三段各自独立:换输入(改成绩)不用动运算;换运算(求最高分)不用动输入输出。 程序好坏的分水岭之一,就是这三段切得干不干净。

30 秒实验

  1. 打开计算器 App:按数字是输入,按等号是运算,屏幕显示是输出——三大原则当场走一遍。
  2. 对着微波炉想一遍:设定时间是输入,磁控管加热是运算,叮一声是输出。

常见误区

  1. 以为只有电脑才算计算机——手机、路由器、扫地机器人里都是计算机,三大原则一条不少。
  2. 把【运算】理解成只算数学——比较大小、排序、替换文字,统统算运算。
自测三问(点开对答案) 1. 三大原则分别说的是硬件、软件、心态里的哪一个? —— 原则一说硬件骨架,原则二说软件本质,原则三说学习心态(别用人的直觉猜机器)。 2. 为什么说原则二【程序是指令和数据的集合】信息量大? —— 因为它把软件还原成两张表:指令表管做什么,数据表管原料,程序再大也逃不出这个结构。 3. 遇到新名词时,本课教的第一问是什么? —— 它是输入、运算还是输出?——先定位骨架,再看细节。

相关笔记