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:04number = 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:36product = 1
-
1:36 - 1:40product 等於 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:03for 循環其實是許多操作
-
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:39number 是 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:53i 等於下一項
-
2:53 - 2:54i 等於下一
-
2:54 - 2:58i 等於下一項
-
2:58 - 2:59如果有
-
2:59 - 3:01嗯 下列情況我先放下不說
-
3:01 - 3:03序列中一項都不剩的情況先不說
-
3:03 - 3:05而是先說序列中還有剩余的情況
-
3:05 - 3:06i 等於下一項
-
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:20YES (是)
-
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:38product 的上一個取值
-
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如何畫出一幅流程圖