zoukankan      html  css  js  c++  java
  • 编程基本功训练:流程图画法及练习

    对于“程序设计”的工作,很多刚開始学习的人的理解就是“写代码”。相同,新手们苦恼的问题是,他们仅仅会“写代码”。当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着,就把自己绕糊涂了。头晕脑胀地坚持下来,程序能执行,阿弥托佛,赶紧撤。这样做出的程序,并不可靠。
      在程序设计中,最重要的不是敲代码,而是设计。就像建筑、机械等行业的要画设计图、施工图,程序设计的思路也有必要用图的形式画出来。绘图的过程就是思考的过程,因为其直观性,绘图的过程本身又促进了思考。在软件project中,已经发展出了非常多种有用的图,为软件产品设计的质量提供保证。这部分练习帮助程序设计者掌握和实践的“程序流程图”。
      一、什么是程序流程图

      “程序流程图”常简称为“流程图”,是一种传统的算法表示法,程序流程图是人们对解决这个问题的方法、思路或算法的一种描写叙述。它利用图形化的符号框来代表各种不同性质的操作,并用流程线来连接这些操作。在程序的设计(在编码之前)阶段,通过画流程图,能够帮助我们理清程序思路。下图是一个简单的流程图,描写叙述求两个数的最大公约数的算法(辗转相除法)。

        

      画流程图是每一个程序猿的基本功。流程图有其规范,这是用于技术人员之间交流的须要,并非想怎么画就怎么画。流程图中经常使用的符号见右图,在前述求最大公约数的流程图中找出相应的部分。


      二、三种控制结构的流程图表示

      这部分不再写文字,各种程序设计的教材中都会写一些,至少在讲各种控制结构时,总时要讲的。请參考自己手头能找到的教材,认真品味。
      我们直接提示若干任务,画一画,就会了。


      三、练习题目(各部分分别至少选两个画一画,注意用一张质量好一些纸,书写整齐,确保越画越高兴)

      1、热身
      (1)将英尺转换为米
      (2)输入两个点的坐标,求两点之间的距离并输出
      2、分支程序
      (1)描写叙述一下今晚的计划:假设下雪,校园内玩雪;否则,在103上机(怀念)
      (2)丢硬币决定今晚:正面,K歌;反面:逛街;立起来,学C++

      (3)求函数值:

      

      

      (4)输入一元二次方程ax^2+bx+c=0的各项系数,并依据各系数的值的情况,分别进行求解(考虑对系数的各种可能太复杂时,给自己减少些难度,先从不考虑系统直接求解開始)
      (5)输入个人月收入总额,计算出他本月应缴税款和税后收入(税率等參考第9周任务) 
      3、循环结构
      (1)求1+2+3+...+100(三种循环结构都画一画)
      (2)输出1/3-3/5+5/7-7/9…+19/21的结果 
      (3)一个数假设恰好等于它的因子之和,这个数就称为“完数”。找出1000内的全部完数。
      (4)输出1000以内的全部回文数
      (5)鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,怎样买? 
      4、复杂结构的程序

      在解决这个问题中,利用函数能够让我们利用更“有序”的思维去想问题,“自顶向下,逐步求精”,真理。例:以下的流程图用于输出星号图,体现的是这样的思维,右边的图能够嵌入到左边中,替代“输出第i行”的框子,也能够指导我们专门编成一个函数。

      

      任务:
      (1)输出10000以内的全部回文素数。将推断回文和推断素数分别单独画,相应将这两个功能用函数实现的方法。
      (2)画出银行系统的流程图(各详细业务点到为止,不必全画)


      注:在传统教学中,未学写代码,先学画流程。曾经的实践中,感觉效果不好。控制结构为何物都晕,怎样能画出来。有一定编程体验后再画,是改革的思路。这是编程的一项基本功,务必掌握!



      

  • 相关阅读:
    [LeetCode 1029] Two City Scheduling
    POJ 2342 Anniversary party (树形DP入门)
    Nowcoder 106 C.Professional Manager(统计并查集的个数)
    2018 GDCPC 省赛总结
    CF 977 F. Consecutive Subsequence
    Uva 12325 Zombie's Treasure Chest (贪心,分类讨论)
    Poj 2337 Catenyms(有向图DFS求欧拉通路)
    POJ 1236 Network of Schools (强连通分量缩点求度数)
    POJ 1144 Network (求割点)
    POJ 3310 Caterpillar(图的度的判定)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3839999.html
Copyright © 2011-2022 走看看