小甲鱼 发表于 2016-1-20 16:49:12

使用流程图来描述你的程序

使用流程图来描述你的程序

前边小甲鱼一直用自然语言来描述程序。对于不存在分支和循环等复杂结构的程序来说,自然语言其实是够用的。就像记流水账一样,一条路走到黑……{:10_247:}

比如一个程序你直接描述成“先 XX,再 OO,然后 XX,完了再 OO,没事你就继续 XX,还得再 OO,最后 XXXX”这样的形式。

虽然使用自然语言描述程序通俗易懂,但文字冗长,并且容易产生歧义!比如“这根香蕉不大好吃”,哎,妹子,你到底是说“这根香蕉不大,好吃!”,还是说“这根香蕉不好吃!”呢?{:10_242:}

但自从我们接触了分支结构,整个程序就变得活泼起来了!

所以,我们今后统一使用流程图来描述程序。

流程图是用一些图框来表示各种操作,直观形象 {:10_275:} 。




举个栗子你就懂了,比如 S1E11 中的程序:

#include <stdio.h>

int main()
{
      int i;

      printf("您老贵庚啊:");
      scanf("%d", &i);

      if (i >= 18)
      {
                printf("进门左拐!\n");
      }
      else
      {
                printf("慢走不送!\n");
      }

      return 0;
}
画成流程图就是酱紫:


注:判断框左右的“Y”和“N”分别表示表达式的值为“真”和“假”的两种情况。

再比如这个程序:

#include <stdio.h>

int main()
{
      int i;

      printf("请输入成绩:");
      scanf("%d", &i);

      if (i >= 90)
      {
                printf("A\n");
      }
      else if (i >= 80 && i < 90)
      {
                printf("B\n");
      }
      else if (i >= 70 && i < 80)
      {
                printf("C\n");
      }
      else if (i >= 60 && i < 70)
      {
                printf("D\n");
      }
      else
      {
                printf("E\n");
      }

      return 0;
}
画成流程图就是酱紫:



很容易对吧,赶紧把这个新技能 get√ 起来 {:10_288:}


最后,有鱼油可能会问:那我用什么工具来画流程图呢?

微软有个神奇的法器:Visio

不过……



微软你真的是打算来中国卖软件的吗?{:10_290:}

建议有购买意向的壕们先买个 U 盘支持下小甲鱼 -> 传送门


咱还是有免费优秀的工具推荐的。

Visio 小甲鱼是肯定不支持大家购买的,当然,特殊渠道获得除外……


这儿给大家推荐一个在线就能绘制流程图的网址:https://www.processon.com

非常专业,还是免费的!



点击“Sign Up”



支持企鹅和微博同步登陆,非常方便,连账号都不用注册了~


下边教大家如何简单的创建一个流程图:



登陆后,依次点击“Diagrams”->“My Diagrams”->“New Diagram”



这儿提供了许多模板供你选择,点击“Blank”-> 在 File Name 处给你的流程图命名 -> 点击“Create”创建一个空白的模板:



左侧是代表各种功能的图框,直接用鼠标拖拽过来即可!


噢,对了,最重要的一点:



有中文……

话说好像我最开始的时候忘了说了…… {:10_245:}


小甲鱼的二师兄 发表于 2016-1-21 15:26:03

辛苦啦

Axel-F 发表于 2016-1-22 18:23:47

小甲鱼老师之前有一个统计打了多少行代码的程序,我找不到在哪了?
能发个链接吗?

小甲鱼 发表于 2016-1-23 00:36:44

Axel-F 发表于 2016-1-22 18:23
小甲鱼老师之前有一个统计打了多少行代码的程序,我找不到在哪了?
能发个链接吗?

这一节课后作业:http://bbs.fishc.com/thread-66283-1-1.html

Axel-F 发表于 2016-1-23 20:30:36

小甲鱼 发表于 2016-1-23 00:36
这一节课后作业:http://bbs.fishc.com/thread-66283-1-1.html

谢谢!!

tigermali 发表于 2016-1-23 22:06:37

收藏了,挺好的,不太会用,条件分支中横折的不太会画,画出来的箭头容易是横的,不太容易弄成竖的箭头。

小甲鱼 发表于 2016-1-24 05:04:06

tigermali 发表于 2016-1-23 22:06
收藏了,挺好的,不太会用,条件分支中横折的不太会画,画出来的箭头容易是横的,不太容易弄成竖的箭头。

用最后边介绍的在线软件即可,通过拖拽圆点可以直接连接两个框框~

tigermali 发表于 2016-1-24 12:26:13

小甲鱼 发表于 2016-1-24 05:04
用最后边介绍的在线软件即可,通过拖拽圆点可以直接连接两个框框~

OK,会了,先画框再拖线,不用先画线。谢谢

hldh214 发表于 2016-1-24 14:03:00

{:10_279:}{:10_279:}{:10_279:}新技能get
原来一直用Word内置的流程图.....后来接触了Xmind.....现在才发现这网站才是我需要的

lawry 发表于 2016-1-26 08:42:59

流程图很少用。。。。
学习了

1048870116 发表于 2016-1-26 18:50:34

为什么我打开是中文的

无艸忘居 发表于 2016-1-27 20:40:34

大爱这个教程

Especially涵 发表于 2016-2-16 10:13:13

可以的

长渊 发表于 2016-6-2 12:33:20

写的随堂代码   只能输出 :请输入分数   输入分数后没反应   不知道原因   ,呼叫小甲鱼老师
#include <stdio.h>
intmain()
{
        int i ;
        printf("请输入分数:");
        scanf("%d\n",&i);
       
       if (i >= 90)
        {
                     printf("A\n");
        }
        else if (i>=80 && i<90)
        {
                     printf("B\n");
        }
        else if (i>=70&&i<80)
        {
                        printf("C\n");
       }
        else if (i>=60&&i<70)
        {
                  printf("D\n");
       }
        else
        {
                  printf("E\n");
       }
        return0 ;
}

屁哥 发表于 2016-9-22 20:18:50

长渊 发表于 2016-6-2 12:33
写的随堂代码   只能输出 :请输入分数   输入分数后没反应   不知道原因   ,呼叫小甲鱼老师
#includ ...

是不是这里的问题 我才学到这 嘿嘿空格的事么
else if (i >= 70 && i < 80)
else if (i >= 60 && i < 70)

guxin666666 发表于 2016-10-4 10:08:26

谢谢小甲鱼,你太棒了。

jamespp 发表于 2016-10-24 19:14:36

。。。

a89361461 发表于 2017-6-1 23:02:27

长渊 发表于 2016-6-2 12:33
写的随堂代码   只能输出 :请输入分数   输入分数后没反应   不知道原因   ,呼叫小甲鱼老师
#includ ...

scanf("%d\n", & i );
把\n去掉就可以了,如果不去掉的话,输入分数后还要输入\n才会显示结果的,我刚才试过的{:5_91:}

长渊 发表于 2017-6-2 07:27:19

a89361461 发表于 2017-6-1 23:02
把\n去掉就可以了,如果不去掉的话,输入分数后还要输入\n才会显示结果的,我刚才试过的

嗯嗯是这样子    刚好一整年前的问题了

pynliu 发表于 2017-7-11 17:24:28

行行好,送点鱼币吧
页: [1] 2 3 4 5 6 7
查看完整版本: 使用流程图来描述你的程序