< Return to Video

阶乘程序的流程图

  • 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
    所以 items left in sequence (序列中剩余的项)
  • 2:32 - 2:33
    当我提到序列
  • 2:33 - 2:34
    我指的是这个序列
  • 2:34 - 2:36
    我们的 range(number)
  • 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 = next item (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 = next item
  • 3:06 - 3:08
    然后我们还定义了
  • 3:08 - 3:11
    我们定义 product
  • 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 = next item
  • 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
    然后我是平等的下一项
  • 4:32 - 4:33
    产品等于
  • 4:33 - 4:34
    什么产品是倍我 + 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 循环的 boken。
  • 4:55 - 4:57
    然后,我们执行的下一件事情
  • 4:57 - 4:58
    一旦我们完成我们的 for 循环
  • 4:58 - 5:01
    是我们只是打印产品的价值。
  • 5:01 - 5:03
    我们只是输出产品的价值。
  • 5:03 - 5:05
    这就是的用户交互。
  • 5:05 - 5:08
    所以我们真的只输出产品的价值。
  • 5:08 - 5:10
    所以我们输出 — —
  • 5:10 - 5:13
    "输出产品"
  • 5:13 - 5:16
    和我们都做了 !
  • 5:16 - 5:17
    我可以写"终结"
  • 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
    如何书写一个流程图。
  • Not Synced
Title:
阶乘程序的流程图
Description:

阶乘程序的流程图。

more » « less
Video Language:
English
Duration:
05:36

Chinese, Simplified subtitles

Revisions Compare revisions