1.1 · 定义问题 (IPO 分析)
目标: 把模糊的问题描述变成清晰的输入、过程、输出清单。
IPO 是什么
Input → Process → Output。任何编程任务都能这样建模。
┌────────┐ ┌────────┐ ┌────────┐
│ Input │ ──▶│Process │ ──▶│ Output │
└────────┘ └────────┘ └────────┘1
2
3
2
3
写一行代码前,先把三个框填齐。
为何重要
跳过 IPO 会导致:
- 程序忽略重要输入。
- 漏掉输出(如日志)。
- 解决错的问题。
实例 · BMI 计算器
| 字段 | 内容 |
|---|---|
| Input | 体重 kg (float)、身高 米 (float) |
| Process | bmi = 体重 / (身高 × 身高);分到 Underweight/Normal/Overweight/Obese |
| Output | bmi(一位小数);类别文字 |
IPO 模板
问题名 :
作者 :
日期 :
INPUTS
- 名字 : 类型 : 例子
- …
PROCESSES
- 步骤 1 …
- 步骤 2 …
- …
OUTPUTS
- 名字 : 类型 : 例子
- …
ASSUMPTIONS
- …
VALIDATIONS
- …1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
编码前 5 分钟填好模板。SBA 失分多数源于跳过此步。
定义问题范围
总要明示什么在范围内、什么不在。
范围: 程序为单一用户一次计算 BMI。
范围外: 储存 BMI 历史、多用户账号、理想体重计算。
范围让项目可完成。
考试式题目
题(4 分): 老师想要一个程序,输入一个班的考试分数,输出最高分、最低分与平均。做 IPO 分析。
参考答案:
- Inputs:整数分数列表(如
[78, 65, 90, 55, 82])。 - Processes:校验所有分数 0–100;找 max 与 min;算 平均 = 总和 / 数量。
- Outputs:最高分、最低分、平均(取一位小数)。
关键要点
- 编码前先 IPO。
- 范围决定防止特性蔓延。
➡️ 下一节:1.2 分解