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 分解