“五步编程法”在《C程序设计》教学中的应用研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xia96316
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:C程序设计是计算机科学与技术专业中开设的比较重要、基础的专业课,大部分学生接触程序设计都是从该门课开设的。学过的学生普遍反映C程序设计比较难,不容易掌握。该文根据《C程序设计》教学经验,从算法出发,总结出“五步编程法”,帮助学生编程快速入门,以提高学生编程水平和编程能力。
  关键词:C程序设计;五步编程法;算法;编程
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)31-0140-02
  通过总结最近几个学期的《C程序设计》的期末考试试卷发现,学生对于C程序的掌握较差,得分率很低,原因主要存在两个方面:(1)对C语言语法死记硬背,不能灵活使用,当题目有变化时就不知道如何处理。(2)拿到题目后不知如何编写符合题意的程序,不能将书本的知识解决现实问题。
  对于第一种情况,说明这些同学C语言知识掌握不牢,可以通过大量的练习来提高其编程能力。对于第二种情况,笔者总结了“五步编程法”来进行针对性教学,实践表明,可以很好地提高学生的编程能力。
  1 第一步——算法分析
  算法从广义上来说,是为了解决一个问题而采取的方法和步骤,它分为数值运算算法和非数值运算算法两大类。数值运算的目的是求数值解,例如求解方程的跟、求一个函数的定积分等,都属于数值运算范畴,这类算法往往都有现成的模型、公式,可供学生使用。而非数值运算算法包括的就十分广泛,最常见的是用于事务管理领域,这类算法运算的种类繁多,要求各异,只有一些典型的非数值运算算法,如排序算法,查找算法等。C程序设计所涉及的算法基本上以数值运算算法为主,也接触一些典型的非数值运算算法,这样算法具有一定的规律,可以引导学生查找这些算法的规律,提高学生的编程能力。①
  在这一步中,学生的主要是任务是寻找算法,并将算法用数学公式表达出来。
  例如求ax2 bx c=0方程的根。a,b,c由键盘输入,设b2-4ac>0,且a≠0。这是一个典型的二元一次方程,在中学的时候就知道,求解方程的根的公式是:
  [x1=-b b2-4ac2a] …………①
  [x2=-b-b2-4ac2a] …………②
  为了表达方便,可以将公式分为两项:
  [p=-b2a],[q=b2-4ac2a],则公式①、②可变为
  [x1=p q] …………③
  [ x2=p-q] …………④
  有了这些公式,只要知道a、b、c的值就可以求出方程的根。
  2 第二步——將算法用C语言语句表示
  C语言有自己的语法规则,在这一步,学生需要将数学公式转换成符合C语言语法规则的表达式,并将该表达式转换成可以执行的C语句。
  根据C语言的语法规则,[p=-b2a]可以表示为
  [p=-b/(2*a)] …………⑤
  [q=b2-4ac2a]可以表示为
  [q=sqrt(b*b-4*a*c)/(2*a)] …………⑥
  其中 disc=b*b-4*a*c …………⑦
  sqrt()是编译系统提供数学函数,作用是求解[x],它在使用时必须在源文件中加入#include 语句。
  公式⑤⑥⑦在C语言中被称为表达式,表达式转换成可执行的C语句的方法是在表达式后面加上“;”。根据语法规则,公式③④⑤⑥⑦转换成C语句为:
  disc=b*b-4*a*c; …………⑧
  [p=-b/(2*a)]; …………⑨
  [q=sqrt(disc)/(2*a)]; …………⑩
  [ x1=p q]; …………?
  [ x2=p-q]; …………?
  3 第三步——将得到的C语句填充到程序的主函数的函数体中
  C语言规定,程序的执行总是从主函数(main)开始,并从主函数结束。而且C语言的输入输出都是通过库函数实现,这个库函数被包含在stdio.h的头文件中。C语言的main()函数语法格式(加上两个头文件,#include 和#include ):
  #include
  #include
  void main()
  {
  函数体
  } …………?
  将⑧~?填充到?中得到程序为:
  #include
  void main()
  {
  disc=b*b-4*a*c; …………⑧
  [p=-b/(2*a)]; …………⑨
  [q=sqrt(disc)/(2*a)]; …………⑩
  [ x1=p q]; …………?
  [ x2=p-q]; …………?
  } …………?
  4 第四步——查漏补缺
  C语言规定,任何变量必须“先定义、后使用”,例中disc,p,q,a,b,c,x1,x2都是变量,这些变量都需要在使用前先定义,在语句⑧之前添加给变量定义的语句。设变量a,b,c为整型,其它的变量为浮点型。根据语法规则,补充语句(带阴影部分),得到源程序为:
  #include
  #include
  void main()
  {
  int a,b,c;
  float disc,p,q,x1,x2;
  disc=b*b-4*a*c; …………⑧   [p=-b/(2*a)]; …………⑨
  [q=sqrt(disc)/(2*a)]; …………⑩
  [ x1=p q]; …………?
  [ x2=p-q]; …………?
  } …………?
  很多变量在使用前需要给它一个初始的值,这个过程被称为赋初值。C语言一般通过两种形式实现,一个是通过赋值语句,一个是通过输入函数scanf。使用输入函数,可以通过人机界面实现数据的输入,编制的程序复用性高,是常见的变量赋值的方法,本题要求是通过输入函数实现对a,b,c赋初值的。根据语法规则,补充语句(带阴影部分),得到源程序为:
  #include
  #include
  void main()
  {
  int a,b,c;
  float disc,p,q,x1,x2;
  scanf(“%d%d%d”,
其他文献
@@@@在“新兴国家群体性崛起”的宏大国际背景之下,中非关系在中国对外关系中占据了为重要的地位。目前中国在非洲的利益至少包括政治、安全、经济和软实力构建等四个方面,然而
随着城市化的发展,政府需要多种思路解决城市治理问题。而信息技术的发展为重新思考城市治理体系提供了新路径。在信息技术时代,应当以公民为本位,重新思考信息技术与政府职能、
摘要:该文简单分析了高校计算机实验教学中存在的问题,阐述了服务器虚拟化实验平台应用针对服务器虚拟化在高校计算机实验室的应用优势展开了深人的研究,结合本次研究,发表了一些自己的建议看法,希望可以对服务器虚拟化在高校计算机实验室应用有效性的提高起到一定的参考和帮助,更好地完成高校计算机实验教学,为学生的全面发展进步打下良好的基础。  关键词:服务器虚拟化;高校;计算机实验室;应用  当前高校招生规模越
摘要:随着科学技术飞速的发展,在电子产品全面普及,单反相机作为电子产品中的一员,已经逐步走入大多数家庭之中。很多中老年人赶时髦买了单反相机,但有一大部分中老年人并不知道如何正确使用,把1-2万的单反相机当2000-3000的数码相机使用。所以我们把如何培训中老年摄影师作为本次培训的重点,在本次培训中我们把课程分为五个具体方面,分别是了解摄影的基本原理及单反相机的基本构造,了解摄影的风格种类的划分及
顺式阿曲库铵是一种中时效非去极化肌松药,它是组成阿曲库铵的10种同分异构体中的1种。与阿曲库铵相比,顺式阿曲库铵有作用强、组胺释放作用小以及对血流动力学影响小的优点,是
本文用史论结合的方法分析了物质富裕精神富有这一浙江现代化目标所集中体现的基本价值。物质富裕精神富有是科学社会主义的根本价值,体现了社会主义工具理性和价值理性的统一
摘要:碎片化时间产生了微型学习的需求,微型学习的发展推动了微课的发展。该文在介绍微课的基础上,分析并研究计算机类微课制作的特点、方法、技巧和注意事项,最后给出对微课制作的思考。  关键词:高职;计算机;微课  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)36-0100-02  1 概述  随着手机、平板等移动设备的普及,碎片化时间产生了微型学习的需求,人们期待在较
该文介绍一种全新的网络运营模式,既能做到校园网的可管、可控和统一管理,实现'网络覆盖、数据畅通、应用可靠、服务贴心',又能提高校务服务和管理的效率,促进教学科
党章对党的群众观点和群众路线作了全面而深刻的回答,集中体现马克思主义唯物史观的基本原则,反映了我们党始终坚持马克思主义群众观,是群众观点的忠实践行者、群众路线的坚
新生血管形成在肿瘤的形成与转移中起重要作用。通过干扰血管形成来抑制肿瘤已成为临床生物治疗策略,其中血管内皮细胞生长因子(VEGF)单克隆抗体贝伐单抗(bevacizumab,商品名Avast