1.1 程序设计基本方法

1.1程序设计基本方法

计算机与程序设计

计算机的概念

功能性

对数据的操作,表现为数据计算、输入输出处理和结果存储等。

可编程性

根据一系列指令自动地、可预测地、准确地完成操作者的意图。

计算机的发展

摩尔定律

  • 计算机硬件所依赖的CPU/GPU、内存、硬盘等集成电路规模和运行速度每两年翻一番
  • 摩尔定律,由戈登·摩尔于1965年提出

吉尔德定律(gilder’ law)

主干网的带宽每6个月增长一倍。

梅特卡尔夫定律(metcalfe’s law)

网络的价值同用户数量的平方成正比

库梅定律(koomey’s law)

每18个月相同计算量所需要消耗的能量会减少一半。

尼尔森定律(nielsen’s law)

用户带宽将以平均每年50%的增幅增长

程序设计

  • 程序设计是计算机可编程性的体现
  • 程序设计也叫编程,是深度应用计算机的手段

程序设计语言

  • 程序设计语言,也叫编程语言,是程序设计的具体实现方式。
  • 编程语言比自然语言更简单、更严谨、更精确。
  • 编程语言用于人机之间的交互
  • 编程语言有超过600种,绝大部分都不再被使用
  • C语言诞生于1972年,是第一种被广泛使用的编程语言。
  • python语言诞生于1990年,由guido正式发表于1991年,是最流行最好用的编程语言。

编译和解释

源代码

采用某种编程语言编写的计算机程序,人类可读。
例如:result:2+3

目标代码

二进制的机器语言,计算机可直接执行,人类不可读(专家除外)。
例如:11010010 00111011

编译

  • 将源代码一次性转换成目标代码,一次性翻译,之后不再需要源代码(类似英文翻译)。
graph LR
a((源代码))-->b[编译器]
b-->c((目标代码))
c-->d[程序执行]
e((程序输入))-->d
d-->f((结果输出))
  • 编译器:执行编译过程的程序。

解释

  • 将源代码逐条转换成目标代码同时逐条运行的过程,每次程序运行时边翻译边执行(类似同声传译)。
graph LR
a((源代码))-->b[解释器]
c((程序输入))-->b
b-->d((结果输出))
  • 解释器:执行解释过程的程序。

静态语言和脚本语言

  • 静态语言:使用编译执行的编程语言,例如:C/C++语言、java语言
  • 脚本语言:使用解释执行的编程语言,例如:python语言、javascript语言、PHP语言。

静态语言和脚本语言的优劣势

静态语言
  • 优点:编译器一次性生成目标代码,优化更充分,程序运行速度更快。
  • 缺点:对不同操作系统的支持较差,源代码容易丢失,升级维护不方便
脚本语言
  • 优点:可在不同操作系统上运行,源代码保留,方便纠错和维护。
  • 缺点:执行效率较低,源代码保留使程序容易遭到破坏。

程序的基本编写方法

IPO

  • I:input 输入,程序的输入
  • P:process 处理,程序的主要逻辑
  • O:output 输出,程序的输出

输入

  • 输入是程序的开始
  • 输入的方式:文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等

输出

  • 输出是程序展示运算结果的方式
  • 输出的方式:控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等

处理

  • 处理是程序对输入数据进行计算产生输出结果的过程。
  • 处理方法统称为算法,是程序最重要的部分,是程序的灵魂。

问题的计算部分

  • 计算部分:一个待解决问题中,可以用程序辅助完成的部分。
  • 计算机只能解决计算问题,即问题的计算部分
  • 一个问题可能有多重角度理解,产生不同的计算部分。
  • 问题的计算部分一般都有输入、处理和输出过程。

编程解决问题的步骤

6个步骤

  1. 分析问题:分析问题的计算部分,想清楚
  2. 划分边界:划分问题的功能边界,规划IPO
  3. 设计算法:设计问题的求解算法,关注算法
  4. 编写程序:编写问题的计算程序,编程序
  5. 调试测试:调试程序使其正确运行,运行调试
  6. 升级维护:适应问题的升级维护,更新完善

精简3步骤

  1. 确定IPO:明确计算部分及更能边界
  2. 编写程序:将计算求解的设计变成现实
  3. 调试程序:确保程序按照正确逻辑能够正确运行

计算机编程

  • 编程体现一种抽象交互关系、自动化执行的计算思维模式
  • 以编程为代表的计算思维区别于以数学为代表的逻辑思维和以物理为代表的实证思维
  • 编程不单纯是求解计算问题,思考解决方法,还要思考用户体验、执行效率等
  • 编程能帮助程序员加深对用户行为、社会和文化的认识

你可能感兴趣的:(MOOC嵩天Python语言)