计算机编程导论
编程是一项系统而繁琐的工作 , 不仅需要程序员有一定的基础 , 还需要良好的编程习惯和风格 。良好的编程习惯和风格不仅可以使程序代码更容易阅读和修改 , 更重要的是可以使程序结构更加合理 , 有助于提高程序的执行效率 。以下是我在程序设计中总结的一些经验 , 供大家参考 。设计顺序当我们第一次开始学习编程时 , 为了编写一个程序 , 我们总是先有一些想法 , 然后在编写代码的同时进行调试 。这种方法一般只适用于非常小的程序 。根据软件工程的特点 , 用这种方式设计所有程序是不合理的 。实际上 , 设计过程就像建造一栋高层建筑 。首先 , 我们要设计图纸 , 然后开始施工 。因此 , 对于个人编写程序 , 应该遵循以下步骤:2 。结构设计:即设计程序的整体框架 , 设计我们需要使用的模块等 。并绘制流程图 。3.用户界面设计:在这里 , 我们需要设计一个输入输出界面 , 与用户进行交互 。4.代码设计:在这一步 , 我们需要编写代码 。5.调试:处理程序中正在发生或可能发生的各种错误 。6.维护:通俗地说 , 维护就是升级程序 , 修改原来的错误 。对于上面的步骤 , 我想大多数人都会认为代码设计是最重要的 , 但是如果程序的结构不清晰 , 我们在编写代码的时候就会出现混乱 。一个程序的性能主要看它的结构是否合理 。所以在节目设计中 , 要尽可能的注意这一点 , 这样才能让我们的节目更加完美 。环境一个好的编程环境可以帮助我们在编写程序时避免各种资源的无序 , 避免资源的流失 。建议您在放置源程序的目录中设置一个“程序”文件夹;然后用你想写的程序名和版本名创建一个文件夹 , 用来存放整个源程序和各种资源 。最后 , 分别建立几个文件夹 , “Documents”:用于存储程序文档 , 包括流程图等 。“资源”:用于存储图片、声音、电影等资源;“调试”:用于存储调试的程序 。“发布”:用于存储最终版本的程序 。例如 , 如果我们想用1.0版制作一个名为“English”的英语学习软件 , 那么在我们的编程环境中应该存在以下文件夹:[drive] : \ \.\程序\ \英语1 \ \调试\[驱动程序] 3360 \ \ \ 。[驱动器] : \ \.\ \程序\ \英语1 \ \资源\ \ \[驱动器] : \ \.\ programs\ \ english1 \ \ release\ \另外 , 最好设置一个专门的文件夹来存放各种模块 。如果设计技能代码写得乱七八糟 , 程序就不容易阅读和修改 。因此 , 编写代码时需要注意以下几点:(1)注意事项:虽然写笔记会占用一定的时间 , 但在阅读和修改代码时会节省很多时间 。所以建议在定义函数的时候 , 在函数的第一行写出函数的函数 , 一行说明函数的参数 , 在每个变量的定义语句后面注明它的函数 。(2)变量和函数的命名:每个程序都会用到很多变量和函数 。如果随机命名变量和函数 , 每次使用都要在变量或函数的定义语句中找出它们的数据类型和名称 , 随机命名也会导致变量和函数的重复定义 。建议您使用匈牙利命名法 。方法是:每个变量或函数的开头以其数据类型的缩写命名 , 然后加上代表这个变量或函数的功能的英文单词缩写 , 形成变量或函数的名称 。例如 , 要定义一个用于计数的整数变量count , 其定义语句为c\ \ c:intcount;基本:将icount调成整数.
这样定义既能有效避免变量和函数的混淆和重复定义 , 又能保证数据类型的匹配 。(3)控件命名:如果在Windows下编程 , 可能会用到很多控件 。如果不严格管理控件名称 , 会造成很大程度的混乱 。因此 , 建议在命名控件时 , 使用控件类型的缩写和代表控件功能的英文单词的缩写来构成控件的名称 。例如 , 如果要命名一个要删除的按钮控件 , 可以将控件名命名为cmdDel 。
计算机编程软件
编程是每个游戏编程常见问题中的一个问题 。这个问题在游戏开发论坛一周问几次 。这是一个很好的问题 , 但是没有人能给出一个简单的答案 。在一些应用程序中 , 总有一些计算机语言比其他语言更好 。下面介绍几种主要的编写游戏的编程语言及其优缺点 。希望这篇文章能帮你做个决定 。1.C语言如果说FORTRAN和COBOL是第一代高级编译语言 , 那么C语言就是他们的孙儿 。c语言是丹尼斯里奇在20世纪70年代创造的 。它更强大 , 与ALGOL有更连续的继承 , ALGOL是COBOL和FORTRAN的结构化继承者 。c语言被设计成一个比它的前辈更复杂更简单的版本 , 适合编写系统级的程序 , 比如操作系统 。在此之前 , 操作系统是用汇编语言编写的 , 不可移植 。c语言是第一种使系统级代码移植成为可能的编程语言 。C支持结构化编程 , 也就是说C的程序被编写成一个独立的函数调用(calls)的集合 , 从上到下运行 , 而不是像单个集成块代码一样使用GOTO语句来控制流程 。因此 , C程序比集成的FORTRAN和COBOL“空心粉码”代码要简单得多 。其实C还有GOTO语句 , 只是功能有限 , 只有在结构化方案非常复杂的时候才推荐使用 。由于其系统的编程根源 , 将C语言和汇编语言结合起来相当容易 。函数调用接口非常简单
汇编语言指令还能内嵌到C代码中 , 所以 , 不需要连接独立的汇编模块 。优点:有益于编写小而快的程序 。很容易与汇编语言结合 。具有很高的标准化 , 因此其他平台上的各版本非常相似 。缺点:不容易支持面向对象技术 。语法有时会非常难以理解 , 并造成滥用 。移植性:C语言的核心以及ANSI函数调用都具有移植性 , 但仅限于流程控制、内存管理和简单的文件处理 。其他的东西都跟平台有关 。比如说 , 为Windows和Mac开发可移植的程序 , 用户界面部分就需要用到与系统相关的函数调用 。这一般意味着你必须写两次用户界面代码 , 不过还好有一些库可以减轻工作量 。用C语言编写的游戏:非常非常多 。资料:C语言的经典著作是《The C Programming Language》 , 它经过多次修改 , 已经扩展到最初的三倍大 , 但它仍然是介绍C的优秀书本 。一本极好的教程是《The Waite Group"s C Primer Plus》 。2、C++C++语言是具有面向对象特性的C语言的继承者 。面向对象编程 , 或称OOP是结构化编程的下一步 。OO程序由对象组成 , 其中的对象是数据和函数离散集合 。有许多可用的对象库存在 , 这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样) 。比如说 , 有很多的GUI和数据库的库实现为对象的集合 。C++总是辩论的主题 , 尤其是在游戏开发论坛里 。有几项C++的功能 , 比如虚拟函数 , 为函数呼叫的决策制定增加了一个额外层次 , 批评家很快指出C++程序将变得比相同功能的C程序来得大和慢 。C++的拥护者则认为 , 用C写出与虚拟函数等价的代码同样会增加开支 。这将是一个还在进行 , 而且不可能很快得出结论的争论 。我认为 , C++的额外开支只是使用更好的语言的小付出 。同样的争论发生在六十年代高级程序语言如COBOL和FORTRAN开始取代汇编成为语言所选的时候 。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢 , 而且必然如此 。而高级语言支持者认为这么点小小的性能损失是值得的 , 因为COBOL和FORTRAN程序更容易编写和维护 。优点:组织大型程序时比C语言好得多 。很好的支持面向对象机制 。通用数据结构 , 如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担 。缺点:非常大而复杂 。与C语言一样存在语法滥用问题 。比C慢 。大多数编译器没有把整个语言正确的实现 。移植性:比C语言好多了 , 但依然不是很乐观 。因为它具有与C语言相同的缺点 , 大多数可移植性用户界面库都使用C++对象实现 。使用C++编写的游戏:非常非常多 。大多数的商业游戏是使用C或C++编写的 。资料:最新版的《The C++ Programming Language》非常好 。作为教程 , 有两个阵营 , 一个假定你知道C , 另外一个假定你不知道 。到目前为止 , 最好的C++教程是《Who"s Afraid of C++》 , 如果你已经熟知C , 那么试一下《Teach Yourself C++》 。3、我该学习C++或是该从C开始我不喜欢这种说法 , 但它是继“我该使用哪门语言”之后最经常被问及的问题 。很不幸 , 不存在标准答案 。你可以自学C并使用它来写程序 , 从而节省一大堆的时间 , 不过使用这种方法有两个弊端:你将错过那些面向对象的知识 , 因为它可能在你的游戏中使得数据建模更有效率的东西 。最大的商业游戏 , 包括第一人称射击游戏很多并没有使用C++ 。但是 , 这些程序的作者即使使用老的C的格式 , 他们通常坚持使用面向对象编程技术 。如果你只想学C , 至少要自学OO(面向对象)编程技术 。OO是仿真(游戏)的完美方法 , 如果你不学习OO , 你将不得不“辛苦”的工作 。4、汇编语言显然 , 汇编是第一个计算机语言 。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法 。这意味着你将与处理器的底层打交道 , 比如寄存器和堆栈 。如果你要找的是类英语且有相关的自我说明的语言 , 这不是你想要的 。确切的说 , 任何你能在其他语言里做到的事情 , 汇编都能做 , 只是不那么简单 — 这是当然 , 就像说你既可以开车到某个地方 , 也可以走路去 , 只是难易之分 。话虽不错 , 但是新技术让东西变得更易于使用 。总的来说 , 汇编语言不会在游戏中单独应用 。游戏使用汇编主要是使用它那些能提高性能的零零碎碎的部分 。比如说 , 毁灭战士整体使用C来编写 , 有几段绘图程序使用汇编 。这些程序每秒钟要调用数千次 , 因此 , 尽可能的简洁将有助于提高游戏的性能 。而从C里调用汇编写的函数是相当简单的 , 因此同时使用两种语言不成问题 。特别注意:语言的名字叫“汇编” 。把汇编语言翻译成真实的机器码的工具叫“汇编程序” 。把这门语言叫做“汇编程序”这种用词不当相当普遍 , 因此 , 请从这门语言的正确称呼作为起点出发 。优点:最小、最快的语言 。汇编高手能编写出比任何其他语言能实现的快得多的程序 。你将是利用处理器最新功能的第一人 , 因为你能直接使用它们 。缺点:难学、语法晦涩、坚持效率 , 造成大量额外代码 — 不适于心脏虚弱者 。移植性:接近零 。因为这门语言是为一种单独的处理器设计的 , 根本没移植性可言 。如果使用了某个特殊处理器的扩展功能 , 你的代码甚至无法移植到其他同类型的处理器上(比如 , AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的) 。使用汇编编写的游戏:我不知道有什么商业游戏是完全用汇编开发的 。不过有些游戏使用汇编完成多数对时间要求苛刻的部分 。资料:如果你正在找一门汇编语言的文档 , 你主要要找芯片的文档 。网络上如Intel、AMD、Motorola等有一些关于它们的处理器的资料 。对于书籍而言 , 《Assembly Language: Step-By-Step》是很值得学习的 。5、Pascal语言Pascal语言是由Nicolas Wirth在七十年代早期设计的 , 因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望 , “空心粉式代码”变成了规范 , 而当时的语言又不反对它 。Pascal被设计来强行使用结构化编程 。最初的Pascal被严格设计成教学之用 , 最终 , 大量的拥护者促使它闯入了商业编程中 。当Borland发布IBM PC上的 Turbo Pascal时 , Pascal辉煌一时 。集成的编辑器 , 闪电般的编译器加上低廉的价格使之变得不可抵抗 , Pascal编程了为MS-DOS编写小程序的首选语言 。然而时日不久 , C编译器变得更快 , 并具有优秀的内置编辑器和调试器 。Pascal在1990年Windows开始流行时走到了尽头 , Borland放弃了Pascal而把目光转向了为Windows 编写程序的C++ 。Turbo Pascal很快被人遗忘 。最后 , 在1996年 , Borland发布了它的“Visual Basic杀手”— Delphi 。它是一种快速的带华丽用户界面的 Pascal编译器 。由于不懈努力 , 它很快赢得了一大群爱好者 。基本上 , Pascal比C简单 。虽然语法类似 , 它缺乏很多C有的简洁操作符 。这既是好事又是坏事 。虽然很难写出难以理解的“聪明”代码 , 它同时也使得一些低级操作 , 如位操作变得困难起来 。优点:易学、平台相关的运行(Delphi)非常好 。缺点:“世界潮流”面向对象的Pascal继承者(Mola、Oberon)尚未成功 。语言标准不被编译器开发者认同 。专利权 。移植性:很差 。语言的功能由于平台的转变而转变 , 没有移植性工具包来处理平台相关的功能 。使用Pascal编写的游戏:几个 。DirectX的Delphi组件使得游戏场所变大了 。资料:查找跟Delphi有关的资料 , 请访问:Inprise Delphi page 。6、Visual Basic哈 , BASIC 。回到八十年代的石器时代 , 它是程序初学者的第一个语言 。最初的BASIC形式 , 虽然易于学习 , 却是可怕的无组织化 , 它义无反顾的使用了GOTO充斥的“空心粉式代码” 。当回忆起BASIC的行号和GOSUB命令 , 没有几个人能止住眼角的泪水 。快速前进到九十年代早期 , 虽然不是苹果公司所希望的巨人 , HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境 。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵 。为了与HyperCard一决高下 , 微软取得了一个小巧的名为Thunder编程环境的许可权 , 并把它作为Visual Basci 1.0发布 , 其用户界面在当时非常具有新意 。这门语言虽然还叫做Basic(不再是全部大写) , 但更加结构化了 , 行号也被去除 。实际上 , 这门语言与那些内置于TRS-80、Apple II及Atari里的旧的ROM BASIC相比 , 更像是带Basic风格动词的Pascal 。经过六个版本 , Visual Basic变得非常漂亮 。用户界面发生了许多变化 , 但依然保留着“把代码关联到用户界面”的主旨 。这使得它在与即时编译结合时变成了一个快速原型的优异环境 。优点:整洁的编辑环境 。易学、即时编译导致简单、迅速的原型 。大量可用的插件 。虽然有第三方的DirectX插件 , DirectX 7已准备提供Visual Basic的支持 。缺点:程序很大 , 而且运行时需要几个巨大的运行时动态连接库 。虽然表单型和对话框型的程序很容易完成 , 要编写好的图形程序却比较难 。调用Windows的API程序非常笨拙 , 因为VB的数据结构没能很好的映射到C中 。有OO功能 , 但却不是完全的面向对象 。专利权 。移植性:非常差 。因为Visual Basic是微软的产品 , 你自然就被局限在他们实现它的平台上 。也就是说 , 你能得到的选择是:Windows , Windows或Widnows 。当然 , 有一些工具能将VB程序转变成Java 。使用Visual Basic编写的游戏:一些 。有很多使用VB编写的共享游戏 , 还有一些是商业性的 。资料:微软的VB页面有一些信息 。7、JavaJava是由Sun最初设计用于嵌入程序的可移植性“小C++” 。在网页上运行小程序的想法着实吸引了不少人的目光 , 于是 , 这门语言迅速崛起 。事实证明 , Java不仅仅适于在网页上内嵌动画 — 它是一门极好的完全的软件编程的小语言 。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序 。虽然不是C++的正式续篇 , Java从C++ 中借用了大量的语法 。它丢弃了很多C++的复杂功能 , 从而形成一门紧凑而易学的语言 。不像C++ , Java强制面向对象编程 , 要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难 。优点:二进制码可移植到其他平台 。程序可以在网页中运行 。内含的类库非常标准且极其健壮 。自动分配合垃圾回收避免程序中资源泄漏 。网上数量巨大的代码例程 。缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码 , 程序将比真正编译器慢 。有很多技术(例如“即时”编译器)很大的提高了Java的速度 , 不过速度永远比不过机器码方案 。早期的功能 , 如AWT没经过慎重考虑 , 虽然被正式废除 , 但为了保持向后兼容不得不保留 。越高级的技术 , 造成处理低级的机器功能越困难 , Sun为这门语言增加新的“受祝福”功能的速度实在太慢 。移植性:最好的 , 但仍未达到它本应达到的水平 。低级代码具有非常高的可移植性 , 但是 , 很多UI及新功能在某些平台上不稳定 。使用Java编写的游戏:网页上有大量小的Applet , 但仅有一些是商业性的 。有几个商业游戏使用Java作为内部脚本语言 。资料:Sun的官方Java页面有一些好的信息 。IBM也有一个非常好的Java页面 。JavaLobby是一个关于Java新闻的最好去处 。8、创作工具上面所提及的编程语言涵盖了大多数的商业游戏 。但是也有一个例外 , 这个大游戏由于它的缺席而变得突出 。“神秘岛” 。没错 , 卖得最好的商业游戏不是使用以上任何一门语言编的 , 虽然有人说“神秘岛”99%是使用 3D建模工具制作的 , 其根本的编程逻辑是在HyperCard里完成的 。多数创作工具有点像Visual Basic , 只是它们工作在更高的层次上 。大多数工具使用一些拖拉式的流程图来模拟流程控制 。很多内置解释的程序语言 , 但是这些语言都无法像上面所说的单独的语言那样健壮 。优点:快速原型 — 如果你的游戏符合工具制作的主旨 , 你或许能使你的游戏跑得比使用其他语言快 。在很多情况下 , 你可以创造一个不需要任何代码的简单游戏 。使用插件程序 , 如Shockware及IconAuthor播放器 , 你可以在网页上发布很多创作工具生成的程序 。缺点:专利权 , 至于将增加什么功能 , 你将受到工具制造者的支配 。你必须考虑这些工具是否能满足你游戏的需要 , 因为有很多事情是那些创作工具无法完成的 。某些工具会产生臃肿得可怕的程序 。移植性:因为创作工具是具有专利权的 , 你的移植性以他们提供的功能息息相关 。有些系统 , 如Director可以在几种平台上创作和运行 , 有些工具则在某一平台上创作 , 在多种平台上运行 , 还有的是仅能在单一平台上创作和运行 。使用创作工具编写的游戏:“神秘岛”和其他一些同类型的探险游戏 。所有的Shockwave游戏都在网络上 。资料:Director、HyperCard、SuperCard、IconAuthor、Authorware 。9、易语言
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
