< Return to Video

Flowchart for the Factorial Program

  • 0:00 - 0:03
    你會多次耳聞或眼見
  • 0:03 - 0:05
    一種叫做流程圖的東西
  • 0:05 - 0:06
    在計算機科學中
  • 0:06 - 0:07
    尤其是當人們談起
  • 0:07 - 0:10
    各種類型的算法或過程時
  • 0:10 - 0:11
    我想要做的是
  • 0:11 - 0:12
    給每個我寫的程序
  • 0:12 - 0:13
    我要配上個簡單的流程圖
  • 0:13 - 0:14
    也許我不會爲每一個程序都做
  • 0:14 - 0:16
    但我會從一些基本的做起
  • 0:16 - 0:17
    這就讓我們明白
  • 0:17 - 0:19
    流程圖真沒什麽新奇的
  • 0:19 - 0:21
    那麽 在這個階乘程序中
  • 0:21 - 0:22
    這個我們一直著眼的
  • 0:22 - 0:24
    在之前幾個影片裏的這個程序
  • 0:24 - 0:27
    任何流程圖都要有個起點
  • 0:27 - 0:30
    我想該起點真正始於
  • 0:30 - 0:32
    畫出一個圓圈或橢圓之類的
  • 0:32 - 0:34
    那我們開始 你可以看成
  • 0:34 - 0:35
    我們從這行開始
  • 0:35 - 0:37
    在給 number 賦值之前
  • 0:37 - 0:40
    也就是我們實際要求客戶輸入的這行
  • 0:40 - 0:43
    在那之後
  • 0:43 - 0:45
    我們要求客戶輸入
  • 0:45 - 0:46
    就是這行
  • 0:46 - 0:49
    我們要求客戶輸入
  • 0:49 - 0:51
    所以就是這行
  • 0:51 - 0:55
    我們將用一個平行四邊形來描繪
  • 0:55 - 0:57
    這是從客戶那兒得到的輸入
  • 0:57 - 0:58
    然後我們就可以說
  • 0:58 - 1:04
    number = user input
  • 1:04 - 1:05
    你可以稍微睜只眼閉只眼
  • 1:05 - 1:06
    不用深究這裡的術語
  • 1:06 - 1:07
    你其實只是試圖表明
  • 1:07 - 1:08
    你這一步是在做什麽
  • 1:08 - 1:10
    這個平行四邊形告訴我們
  • 1:10 - 1:12
    我們正以某種方式與客戶交互
  • 1:12 - 1:14
    我們要不就是正在從客戶獲取輸入
  • 1:14 - 1:16
    要不就是正在輸出內容給客戶
  • 1:16 - 1:19
    在這裡 我們說客戶輸入等於 number
  • 1:19 - 1:22
    我們將 number 賦值爲客戶輸入
  • 1:22 - 1:26
    我們下面要做的 是個直接的操作
  • 1:26 - 1:30
    我們將 product 設定爲等於 1
  • 1:30 - 1:33
    我們在那兒畫一個長方形就行
  • 1:33 - 1:36
    product = 1
  • 1:36 - 1:40
    product 等於 1
  • 1:40 - 1:43
    接下來將會發生一些有趣的事情
  • 1:43 - 1:47
    我們進入 for 循環
  • 1:47 - 1:48
    我們開始於
  • 1:48 - 1:49
    我要在這兒做的是
  • 1:49 - 1:50
    我要采取的寫法有些微不同
  • 1:50 - 1:52
    相較於我們這裡的寫法
  • 1:52 - 1:55
    我們做的是 我們開始
  • 1:55 - 1:56
    我們所做的是
  • 1:56 - 1:58
    開始我們的 for 循環
  • 1:58 - 2:00
    本質上是從一次賦值開始
  • 2:00 - 2:01
    我們在這裡賦值
  • 2:01 - 2:03
    for 循環其實是許多操作
  • 2:03 - 2:04
    這些操作同時進行
  • 2:04 - 2:08
    它將 i 賦值爲序列中的第一個數
  • 2:08 - 2:10
    或者它試著看可否給 i 賦值
  • 2:10 - 2:11
    賦值爲序列中的第一個數
  • 2:11 - 2:12
    如果可以
  • 2:12 - 2:13
    那麽它將繼續執行
  • 2:13 - 2:14
    如果不行
  • 2:14 - 2:16
    那麽它將跳出 for 循環
  • 2:16 - 2:19
    所以我這麽做
  • 2:19 - 2:23
    我將在這裡進行某種條件測試
  • 2:23 - 2:32
    序列中剩余的項
  • 2:32 - 2:33
    當我提到序列一詞
  • 2:33 - 2:34
    我指的是這個序列
  • 2:34 - 2:36
    我們的數的範圍
  • 2:36 - 2:38
    上個影片裏 我舉過的例子中
  • 2:38 - 2:39
    number 是 3
  • 2:39 - 2:41
    這個序列中剩余的項
  • 2:41 - 2:44
    我知道這裡很難看清
  • 2:44 - 2:45
    如果有 咱們說
  • 2:45 - 2:47
    如果序列中有剩余的項
  • 2:47 - 2:50
    如果序列中有剩余的項
  • 2:50 - 2:52
    那我們只要說
  • 2:52 - 2:53
    i 等於下一項
  • 2:53 - 2:54
    i 等於下一
  • 2:54 - 2:58
    i 等於下一項
  • 2:58 - 2:59
    如果有
  • 2:59 - 3:01
    嗯 下列情況我先放下不說
  • 3:01 - 3:03
    序列中一項都不剩的情況先不說
  • 3:03 - 3:05
    而是先說序列中還有剩余的情況
  • 3:05 - 3:06
    i 等於下一項
  • 3:06 - 3:08
    然後我們還定義了
  • 3:08 - 3:11
    我們定義 product
  • 3:11 - 3:12
    定義爲
  • 3:12 - 3:13
    我們定義 product
  • 3:13 - 3:15
    其實我想把這些標爲藍色
  • 3:15 - 3:17
    遵循咱們的慣例
  • 3:17 - 3:19
    那就讓我寫上
  • 3:19 - 3:20
    YES (是)
  • 3:20 - 3:22
    如果序列中有剩余的項
  • 3:22 - 3:28
    那麽 i = 下一項
  • 3:28 - 3:30
    這就是我們做的一個操作
  • 3:30 - 3:32
    然後我們重置 product
  • 3:32 - 3:36
    我們將 product 重新賦值爲
  • 3:36 - 3:38
    product 的上一個取值
  • 3:38 - 3:47
    乘以 i + 1
  • 3:47 - 3:52
    到此爲止 我們基本上
  • 3:52 - 3:54
    我們循環回到這裡的條件測試
  • 3:54 - 3:57
    從這開始 我們循環回
  • 3:57 - 3:59
    我試著把它寫整齊
  • 3:59 - 4:00
    我們循環回
  • 4:00 - 4:02
    我在這兒畫吧
  • 4:02 - 4:05
    我們循環回到程序中的這個點
  • 4:05 - 4:07
    這就是爲什麽它被稱爲一個循環
  • 4:07 - 4:11
    因爲在你進行完此操作後
  • 4:11 - 4:12
    這是內嵌在循環中的
  • 4:12 - 4:14
    你回到開始
  • 4:14 - 4:16
    去看看是否有更多循環可以進行
  • 4:16 - 4:19
    你回到循環開始之前
  • 4:19 - 4:22
    你說“嘿,序列中還有剩余的項嗎?”
  • 4:22 - 4:24
    這裡應該是一個問號
  • 4:24 - 4:26
    這樣的問號標明決策點
  • 4:26 - 4:28
    並且通常配上這種菱形
  • 4:28 - 4:30
    如果序列中有另一項
  • 4:30 - 4:32
    那麽後 i 等於下一項
  • 4:32 - 4:33
    並且 product 等於
  • 4:33 - 4:34
    之前的 product 乘以 i + 1
  • 4:34 - 4:35
    然後我們進行下一次循環
  • 4:35 - 4:37
    序列中有剩余的項嗎?
  • 4:37 - 4:38
    最終會有一刻
  • 4:38 - 4:40
    序列中不會剩下任何項
  • 4:40 - 4:41
    所以不會有
  • 4:41 - 4:42
    在某些情況下 不會有
  • 4:42 - 4:44
    任何項留在序列中
  • 4:44 - 4:45
    那我們就可以走右邊
  • 4:45 - 4:50
    或者說 我就從這兒跳出它
  • 4:50 - 4:53
    我們現在跳出了這個 for 循環
  • 4:53 - 4:55
    我們已經跳出了這個 for 循環
  • 4:55 - 4:57
    然後 我們做的下一件事
  • 4:57 - 4:58
    一旦我們完成了 for 循環
  • 4:58 - 5:01
    我們只要打印 product 的值
  • 5:01 - 5:03
    我們輸出 product 的值就可以了
  • 5:03 - 5:05
    這是一次客戶交互
  • 5:05 - 5:08
    所以我們就只是輸出 product 的值
  • 5:08 - 5:10
    所以我們輸出
  • 5:10 - 5:13
    輸出 product
  • 5:13 - 5:16
    於是 我們做完了!
  • 5:16 - 5:17
    然後我可以寫上 end (結束)
  • 5:17 - 5:20
    作爲我們程序的結尾
  • 5:20 - 5:22
    該程序會停止運行
  • 5:22 - 5:23
    結束
  • 5:23 - 5:25
    以上就是這個簡單程序的簡單流程圖
  • 5:25 - 5:27
    希望它可以幫助你
  • 5:27 - 5:29
    增進對程序本身的小理解
  • 5:29 - 5:31
    如果之前兩個影片並沒有太多幫助
  • 5:31 - 5:33
    並且同時讓你簡單理解
  • 5:33 - 5:36
    如何畫出一幅流程圖
Title:
Flowchart for the Factorial Program
Description:

Flowchart for the factorial program.

more » « less
Video Language:
English
Duration:
05:36
David Chiu added a translation

Chinese, Traditional subtitles

Revisions