考点 1. 程序设计初步

📋 考纲要求

了解程序设计的基本概念(算法、数据类型、流程控制)。

一、程序设计的基本概念

程序设计是指按照一定的逻辑和规则,将人类解决问题的思路转化为计算机可执行指令的系统性过程。

1. 语句

语句是编程语言中具有独立执行意义的最小执行单元,是构成程序的基本"行动步骤"。计算机会按顺序或逻辑控制结构逐条执行语句,完成对应的操作。

2. 程序

程序是一组有序的计算机指令集合,是计算机能识别和执行的"操作手册",用于实现特定功能,是程序设计的最终产物。

3. 数据类型

数据类型是对数据的"分类标签",它定义了数据的存储方式、取值范围及可进行的操作。常见的数据类型包括整数、浮点数、布尔值、字符串、列表、字典等,不同的数据类型对应不同的操作方法。

4. 变量

变量是给计算机内存中一块存储数据的空间起的名字,可以把它理解成一个可重复使用、可修改内容的"数据容器"。通过这个名字来访问、读取或修改容器里的数据,无须直接操作底层内存地址。

5. 函数

函数是将一段完成特定功能的代码块封装起来的"可复用工具",它接收输入(可选)、执行逻辑、返回输出(可选),可以被反复调用,无须重复编写相同的代码。

6. 算法

算法是解决特定问题的清晰、有序、有限的步骤集合,它就像一份详细的"操作说明书",明确告诉计算机该按什么顺序做哪些操作,最终能得到问题的解。

7. 控制结构

控制结构是用来控制程序执行流程的逻辑框架,它决定了代码是"按顺序执行",或是"选择执行某分支",还是"重复执行某段代码"。所有复杂程序本质上都是由 3 种基本控制结构组合而成的,这是程序设计的核心逻辑基础。

二、算法及其表示方法

算法是解决特定问题的清晰、有序的步骤集合,是程序设计的"灵魂"。同一个问题可以有多种算法,不同算法的效率可能差异很大。一个合格的算法需要具备以下 5 个特性。

特性含义
1. 有穷性算法的步骤是有限的,必须在有限的时间内执行完毕(不能无限循环)。
2. 确定性算法的每一步操作都明确无歧义,不能出现"可能这样做,也可能那样做"的模糊情况。
3. 可行性算法的每一步操作都能够被执行(无论是计算机还是人,都能完成该操作)。
4. 输入性算法可以有 0 个或多个输入(输入是解决问题所需的初始数据)。
5. 输出性算法必须至少有 1 个输出(输出是算法执行后的结果,没有输出的算法无意义)。

三、程序设计的基本步骤

程序设计的基本步骤是一套标准化的流程,用于从"明确需求"到"交付可用程序"的完整开发过程,遵循这套流程能让程序设计更有条理、减少逻辑漏洞。无论是简单的 Python 脚本,还是复杂的软件项目,都离不开以下 5 个核心步骤。

1. 需求分析:明确"做什么"

这是程序设计的起点,核心是搞清楚"程序要解决什么问题""需要实现哪些功能""有什么约束条件",避免开发方向跑偏。

  • (1) 明确目标:比如"编写一个计算 1 到 n 累加和的程序""开发一个学生成绩管理工具"。
  • (2) 确定输入输出:输入什么数据(如用户输入的 n)、输出什么结果(如累加和)。
  • (3) 梳理约束条件:比如"输入的 n 必须是正整数""程序运行时间不能超过 1 秒"。

2. 算法设计:规划"怎么做"

需求明确后,需要设计解决问题的步骤(算法),这是程序设计的核心逻辑环节,不涉及具体代码,只关注步骤是否可行、高效。

  • (1) 梳理解决问题的有序步骤:满足算法的 5 个特性(有穷性、确定性、可行性、输入性、输出性)。
  • (2) 选择最优算法:同一个问题可能有多种算法,优先选择步骤少、效率高的方案。
  • (3) 可视化表达(可选):用流程图或伪代码描述算法,方便梳理逻辑。

3. 代码编写:用编程语言实现逻辑

算法设计完成后,需要用具体的编程语言将算法步骤翻译成代码,这是从"抽象逻辑"到"具体程序"的转化过程。

  • (1) 选择开发工具:Python 可用 IDLE、PyCharm、VS Code。
  • (2) 遵循语法规则:按照编程语言的语法写代码(如变量命名、缩进、语句格式)。
  • (3) 注重代码可读性:使用有意义的变量名(如 radius 代替 r)、添加注释说明关键逻辑。

4. 调试测试:找出并修复错误

代码写完后不能直接交付,需要通过测试验证程序是否符合需求,同时修复代码中的错误(Bug),这是保证程序能正常运行的关键步骤。

  • (1) 语法错误调试:运行程序时,解释器会直接提示语法错误(如少写冒号、缩进错误),根据提示修改即可。
  • (2) 逻辑错误调试:语法没问题,但运行结果不符合预期(如圆面积计算成 r * r,漏乘 π),此时需要通过打印变量、断点调试等方式定位问题。
  • (3) 多场景测试:用不同的输入测试程序覆盖正常情况和异常情况。

5. 优化迭代:让程序更优

测试通过后,程序已经可以运行,但还需要优化,让程序更高效、更易维护,这是从"可用"到"好用"的提升过程。

  • (1) 效率优化:改进算法,减少运行时间(如用公式计算累加和代替循环)。
  • (2) 可读性优化:简化复杂代码、补充注释、拆分冗长函数(如将圆面积计算封装为函数)。
  • (3) 健壮性优化:增加异常处理(如用户输入非数字时,程序不会崩溃)。