编程基本功训练:流程图画法及练习

对于“程序设计”的工作,很多刚開始学习的人的理解就是“写代码”。相同,新手们苦恼的问题是,他们仅仅会“写代码”。当接到一个新的任务,不少人总是在第一时间就爬到键盘上去敲代码。敲着敲着,就把自己绕糊涂了。头晕脑胀地坚持下来,程序能执行,阿弥托佛,赶紧撤。这样做出的程序,并不可靠。
  在程序设计中,最重要的不是敲代码,而是设计。就像建筑、机械等行业的要画设计图、施工图,程序设计的思路也有必要用图的形式画出来。绘图的过程就是思考的过程,因为其直观性,绘图的过程本身又促进了思考。在软件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)画出银行系统的流程图(各详细业务点到为止,不必全画)


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



  

转载于:https://www.cnblogs.com/mfrbuaa/p/4008229.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python简单练习 -统计文本词频并用柱状图显示

函数功能:统计文本中单词频率,并用柱状图显示前10个最高的单词 这里统计的是函数所在文件本身 import turtlecount 10 data [] words [] # y yScale 6 # X xScale 30def drawLine(t, x1, y1, x2, y2):t.penup()t.goto(x1, y1)t.pendown()t.goto(x…

今日《科学》封面:纳米级清晰度看大脑是怎样一种体验?

来源:药明康德微信团队摘要:在最新出版的《科学》杂志上,由麻省理工学院(MIT)和霍华德休斯医学研究所(HHMI)的科学家们领衔的一支团队,成功对果蝇的完整大脑进行了成像,清…

java的System.getProperty()方法能够获取的值

java.version Java 执行时环境版本号 java.vendor Java 执行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装文件夹 java.vm.specification.version Java 虚拟机规范版本号 java.vm.specification.vendor Java 虚拟机规范供应商 java.vm.spec…

Python中class的简单介绍

类的定义 class classname[(父类名)]: – 成员函数及成员变量_ init _ 构造函数:初始化对象_ del_ 析构函数:销毁对象定义类的成员函数时,必须默认一个变量代表类定义的对象本身,这个变量的名称可自行定义,下面的程序…

中国演绎太空生命传奇

来源:人民日报海外版摘要:人类不仅在努力增加对地球家园的认识,而且推进航天科技发展,进入浩渺的太空,探索宇宙的奥秘。在太空中绽放的花朵嫦娥四号搭载的微型生物圈载荷手绘图搭载探空火箭进入太空的两只小狗“小豹”…

FL2440移植linux内核常用命令(command)

Host Ubuntu系统:sudo ifconfig eth0 192.168.1.2打补丁(补丁和内核在同一目录下/home/chris/temp)&#xff1a;cd /home/chris/temp/linux-3.0patch -p1 < ../linux-3.0-s3c2440.patch开发板u-boot:setenv bootargs root/dev/nfs rw nfsroot192.168.1.2:/home/chris/nfs_wo…

C++预处理指令#define,#if,#endif等

转载自&#xff1a;“https://www.cnblogs.com/xiehongfeng100/p/4594849.html”&#xff0c;原文写的更加详细&#xff0c;还有代码解释&#xff0c;建议看原文。 本文主要记录了C/C预处理指令&#xff0c;常见的预处理指令如下&#xff1a; #空指令&#xff0c;无任何效果 …

李伯虎院士:新一代人工智能引领下的智造制造初步实践

来源&#xff1a;电能革命由中国智能制造百人会主办的“2018智造百强榜高峰会暨2019中国智能制造百人会年会上”于2019年1月11日在北京科技会堂举行。中国工程院院士/国家制造强国战略咨询委员会委员李伯虎做“新一代人工智能引领下的智造制造初步实践”的演讲。以下为演讲的速…

js中的escape的用法汇总

js对文字进行编码涉及3个函数&#xff1a;escape,encodeURI,encodeURIComponent&#xff0c;相应3个解码函数&#xff1a;unescape,decodeURI,decodeURIComponent 1、 传递参数时需要使用encodeURIComponent&#xff0c;这样组合的url才不会被#等特殊字符截断。 …

Python中Turtle绘图函数-绘制时钟程序

Turtle常用的一些函数&#xff0c; 参考博客&#xff1a;http://blog.csdn.net/zengxiantao1994/article/details/76588580 时钟代码设计 我们可以通过main函数查看整个时钟代码的设计设计指针&#xff08;Init()&#xff09;并显示指针&#xff1a;设计指针的方向(turtle.m…

5G的未来投资机会在哪里?

来源&#xff1a;网易智能日前&#xff0c;为了更好地以资本助推5G产业发展&#xff0c;中国移动投资公司与中国移动研究院联合发布了《洞见5G&#xff0c;投资未来——中国5G产业发展与投资报告》&#xff0c;分析了5G对生产和生活带来的变革&#xff0c;研判5G产业建设的投资…

C语言查找算法

/** 查找(数组) 1> 顺序查找 &#xff1a; 就是遍历数组每一个元素同该元素比较&#xff0c;但是问题是效率比较低 2> 折半查找 &#xff1a; 条件是数组必须是有顺序的 */ #include <stdio.h> #define n 2 int main() { // 折半查找 /* 思路&#xff1a;将该元素同…

python在windows系统中安装pandas,numpy

进入python的安装目录的sripts文件夹下&#xff0c; 在该文件夹下进入命令行&#xff0c;在命令行输入pip install pandas 等待成功安装 转载自&#xff1a;https://www.cnblogs.com/xuqiulin/p/6623154.html

华为5G首席科学家童文 | 5G:万物连接平台 智能世界基石

华为5G首席科学家、华为Fellow童文博士来源&#xff1a;华为2019年是5G产业进入全面商用的关键一年&#xff0c;全球5G网络的部署已经启动。2018年6月&#xff0c;5G独立组网标准冻结&#xff0c;5G完成了第一阶段全功能eMBB标准化工作&#xff1b;12月6日, 中国三大运营商获得…

js处理日期的一些整理(js获取给定日期前一天的日期)

var date new Date();alert(date);//获取当前时间 alert(date.getFullYear());//获取当前年分 alert(date.getMonth());//获取月份&#xff08;获取当前月份要加1&#xff09; alert(date.getDate());//获取当前日期的几号 alert(date.getDay());//获取当前是星期几 alert(dat…

windows下配置tensorflow

我使用的是python3.6版&#xff0c;目前该版本可以使用tensorflow&#xff0c; 安装tensorflow&#xff0c;参考博客 &#xff1a;https://www.cnblogs.com/nosqlcoco/p/6923861.html 在pycharm下配置tensorflow&#xff0c;参考博客&#xff1a;https://www.cnblogs.com/yingc…

深度解密:软银孙正义如何成为美国硅谷最有权势之人

来源&#xff1a;腾讯科技摘要&#xff1a;据外媒报道&#xff0c;伊隆马斯克、杰夫贝索斯亦或是马克扎克伯格(&#xff0c;都不如日本亿万富翁孙正义那样&#xff0c;对AI驱动的未来有着最大胆的愿景。在孙正义看来&#xff0c;未来机器将控制着我们的生活方式。为了实现这个愿…

【笔记】Windows Phone 8开发笔记之API

Windows Phone 8 API一览 Windows Phone 7平台不支持Native语言的开发&#xff0c;这困扰了许多游戏和底层应用的开发者。Windows Phone 8 SDK的推出&#xff0c;改善了这个情况。下图就是Windows Phone 8 的API构成。 1. .NET API for Windows Phone Windows Phone 8支持的托管…

自动驾驶之路已走了多远?一文读懂研究现状

作者&#xff1a;Claudine Badue等编译&#xff1a;机器之心 Panda摘要&#xff1a;自动驾驶载具或将引爆人类的下一次出行方式革命&#xff0c;而我们目前又已经走到了哪一步&#xff1f;近日&#xff0c;巴西圣埃斯皮里图联邦大学的研究者在 arXiv 上发布了一篇自动驾驶汽车研…

OpenCV的基本模块介绍

####文件结构 在调用opencv时需要用到的头文件分布&#xff08;默认安装情况下&#xff0c;同时下面都是基于2.4.x版本&#xff09;&#xff1a; 对windows系统来说&#xff0c;一般在OPENCV_DIR/build/include/文件夹下&#xff0c;所以在VS中调用时需要配置附加库目录&#…