高级语言程序设计的功能意念教学法
摘要:本文分析了程序的功能成分和高级语言的功能成分以及算法的意念作用,指出了高级语言的各功能成分与程序设计之间的关系,提出了“高级语言程序设计”的功能意念教学法
关键词:程序设计;高级语言;算法设计;功能意念
1引言
“高级语言程序设计”是各类学校计算机相关专业的一门重要的专业基础课,许多学校都将其安排在新生入学后的第一学期开设。
对刚接触这门课程的学生而言,“高级语言程序设计”课程的中心内容包括两个部分:高级语言和程序设计。从高级语言和程序设计的关系来说,程序设计应该是这门课程的核心内容。
对于如何搞好“高级语言程序设计“的教学,不同的人有不同的看法。笔者在多年的教学实践中,多次尝试采用“功能意念教学法”,取得了教好的效果。本文就是这一教学法的简单总结。
2功能意念教学法
“高级语言程序设计”的功能意念教学法就是从程序的一般功能、程序的一般结构以及程序设计的一般过程出发,按照功能+意念+机制的方式组织教学。简单地说,就是为了设计一个程序,先解决我们需要做些什么,然后解决程序需要做些什么,最后解决高级语言怎么做到等一序列问题,也就是从问题和任务出发进行教学。
以上所述主要围绕程序最基本的功能展开,至于其它功能部分,比如C语言的编译预处理、宏、模块化、混合语言编程、指针、文件、链表等,也可以从功能意念的角度展开教学。
在具体实施教学的过程中,可以根据教学要求按照自顶向下的原则制定出所教授的高级语言的基本功能意念表,以方便教学。
3算法的意念作用
笔者认为,程序设计其实就是为了解决某个问题而从我们所熟悉的程序设计语言中挑选合适的语句做一个适当的排列组合。
在上面的这段话中,明显地有两个值得我们进一步探讨的关键词:合适的语句和适当的排列组合。现在我们的问题是,如何挑选合适的语句?又怎样做适当的排列组合?
这两个问题的解决有赖于所谓算法的概念。因此,为了解决这两个问题,我们必须针对面临的具体问题设计出有效的算法。
算法是解决特定问题的一序列操作的集合,代表的就是一种意念,换言之,就是设计者所希望的对数据进行加工处理的有序的步骤。这种操作步骤的有序性就决定了如何对所挑选的语句做适当的排列组合。
由粗到细是我们解决问题的一种典型的思维过程。按照这一思维特点,算法设计也有一个由粗到细的过程,即算法细化。
算法细化要适可而止,即有一个度的问题,那么我们又该如何把握这个度呢?一般而言,算法细化只要细化到其中的每一操作步在准备采用的语言中都能到对应的语句直接加以实现即可,而且也必须细化到这种程度!算法细化好了,如何挑选合适的语句也就解决了。
总之,算法决定了如何挑选合适的语句以及怎样对所挑选的语句做适当的排列组合!因此有了算法,我们只需要通过很简单的翻译转换就可以很容易地得到程序。
4高级语言的相关功能成分
高级语言是书写和记录程序的工具。为了适应程序的功能需要,高级语言自然应该提供相应的手段或机制让程序设计人员借以实现所需要的程序功能,高级语言的相关功能成分指的就是这些手段和机制。
4.1数据安排机制
高级程序设计语言中的数据安排机制主要体现为用于定义常量、变量、数组和记录(或结构体)等的功能成分。单纯从语言成分的角度来看,这些功能的实现主要是由一组和数据类型有关的关键字来体现的。换言之,高级语言为我们提供了一组与数据类型有关的关键字以便程序设计人员根据自己的意愿对数据空间进行组织和安排。以C语言为例,这些关键字主要有:char、int、float、double、struct以及signed、unsigned、short、long,等等。在源程序中来看,数据空间的组织和安排都是通过基于上述关键字的数据定义语句来实现的,比如:
1)int abc;
2)char abc[12] ;
3)*float abc;
4)struct abc{x char;y int;z float;}
struct abc xyz;
作为程序设计的工具,为了尽可能给程序设计人员带来方便,高级语言除了支持基本数据类型外,还支持用户自定义类型,如上面的例4)。
4.2数据I/O机制
高级语言中的数据I/O机制主要体现为各种用于数据输入/输出的语句或函数(库函数)等。在C语言中,这些函数常用的有:
fprintf、printf、sprintf、vprintf、vfprintf、vsprintf、
fscanf、scanf、sscanf、fgetc、fputc、getc、putc、getchar、putchar、fgets、fputs、pus、gets等。
以上列出的是所谓系统预定义函数,即标准函数或库函数。此外,用户还可以根据自己的需要以上述标准函数为基础自行定义一些可以得到某些特殊I/O效果的函数。
4.3数据处理机制
前面已经提到,数据的内部加工处理主要包括数据在主机内部的传送和各种运算,高级语言的数据处理机制就
是指为此目的而提供的各种运算符。在C语言中,这些运算符包括为数据传送提供的赋值运算符“=”和为数据运算提供的算术运算符“+、-、fprintf作用*、/、%、++、--”、关系运算符“>、>=、>”等等。
4.4流程控制机制
高级语言中的流程控制机制主要体现为用来实现分支程序结构、循环程序结构以及子程序
结构的功能成分,换言之,就是分支语句、循环语句以及子程序的定义和调用机制等。在C语言中,这些语句包括:if语句、switch语句、goto语句、break语句、continue语句、for语句、while语句、do…while语句以及return语句等。
5结束语
历史上高级程序设计语言有好多种,目前仍然流行的也有好几种,而且还在不断的推陈出新。从“功能意念”的角度,不难看出,所有的高级语言都应该有相类似的功能成分,以解决程序设计所面临的共同问题。因此,只要我们认真地学好一种语言,重点掌握好程序设计的一般思想方法,就可以很容易地掌握另外一种。从一种语言过渡到另一种语言,从语言的角度来说,只不过是一种形式上的转换而已,它们的内容(程序的功能)和程序设计的思想和方法却总是相通的。
参考文献:
[1] 谭浩强. C程序设计(第三版)[M]. 北京:清华大学出版社,2005.
[2] Brian W.Kernighan, Dennis M. Ritchie. C程序设计语言(第二版)[M]. 北京:清华大学出版社,2002.
[3] Bruce Eckel著. 刘宗田等译. C++编程思想第1卷:标准C++导引[M]. 北京:机械工业出版社,2002.
[4] 郑启华. PASCAL程序设计(第二版)[M]. 北京:清华大学出版社,1996.
[5] 沈军. 程序设计方法解析——Java描述[M]. 北京:清华大学出版社,2004.
[6] 覃征,虞凡等著. 程序设计方法与优化(第二版)[M]. 西安交通大学出版社,2007.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论