近期关于程序设计主要有哪些方法?的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯 ,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸 。
程序设计主要方法有面向结构的方法和面向对象的方法。\x0d\结构化程序设计\x0d\\x0d\ 随着计算机的价格不断下降,硬件环境不断改善 ,运行速度不断提升。程序越写越大,功能越来越强,讲究技巧的程序设计方法已经不能适应需求了 。记得是哪本书上讲过 ,一个软件的开发成本是由:程序设计 30% 和程序维护 70% 构成。这是书上给出的一个理论值,但实际上,从我十几年的工作经验中 ,我得到的体会是:程序设计占 10%,而维护要占 90%。也许我说的还是太保守了,维护的成本还应该再提高 。下面这个程序 ,提供了两种设计方案,大家看看哪个更好一些那?\x0d\\x0d\ 题目:对一个数组中的100个元素,从小到大排序并显示输出。(BASIC)\x0d\\x0d\ 方法1:冒泡法排序,同时输出。 \x0d\\x0d\FOR I=1 TO 100\x0d\ FOR J=I+1 TO 100\x0d\ IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T\x0d\ NEXT J\x0d\ ? A[I]\x0d\NEXT I\x0d\\x0d\ 方法2:冒泡法排序 ,然后再输出 。\x0d\\x0d\FOR I=1 TO 100\x0d\FOR J=I+1 TO 100\x0d\IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T\x0d\NEXT\x0d\NEXT\x0d\\x0d\FOR I=1 TO 100\x0d\? A[I]\x0d\NEXT \x0d\\x0d\ 显然,“方法1”比“方法2 ”的效率要高,运行的更快。但是 ,从现在的程序设计角度来看,“方法2”更高级。原因很简单:(1)功能模块分割清晰——易读;(2)也是最重要的——易维护 。程序在设计阶段的时候,就要考虑以后的维护问题。比如现在是实现了在屏幕上的输出 ,也许将来某一天,你要修改程序,输出到打印机上、输出到绘图仪上;也许将来某一天 ,你学习了一个新的高级的排序方法,由“冒泡法”改进为“快速排序 ” 、“堆排序”。那么在“方法2”的基础上进行修改,是不是就更简单了 ,更容易了?!这种把功能模块分离的程序设计方法,就叫“结构化程序设计 ”。\x0d\\x0d\面向对象的程序设计\x0d\\x0d\ 随着程序的设计的复杂性增加,结构化程序设计方法又不够用了 。不够用的根本原因是“代码重用”的时候不方便。面向对象的方法诞生了,它通过继承来实现比较完善的代码重用功能。很多学生在应聘工作 ,面试的时候,常被问及一个问题“你来谈谈什么是面向对象的程序设计”,学生无言 ,回来问我,这个问题应该怎么回答 。我告诉他,你只要说一句话就够了“面向对象程序设计是对数据的封装;范式(模板)的程序设计是对算法的封装。 ”后来再有学生遇到了这个问题 ,只简单的一句对答,对方就对这个学生就刮目相看了(学生后来自豪地告诉我的)。为什么那?因为只有经过彻底的体会和实践才能提炼出这个精华 。\x0d\\x0d\ 面向对象的设计方法和思想,其实早在70年代初就已经被提出来了。其目的就是:强制程序必须通过函数的方式来操纵数据。这样实现了数据的封装 ,就避免了以前设计方法中的,任何代码都可以随便操作数据而因起的BUG,而查找修改这个BUG是非常困难的 。那么你可以说 ,即使我不使用面向对象,当我想访问某个数据的时候,我就通过调用函数访问不就可以了吗?是的,的确可以 ,但并不是强制的。人都有惰性,当我想对 i 加1的时候,干吗非要调用函数呀?算了 ,直接i++多省事呀。呵呵,正式由于这个懒惰,当程序出BUG的时候 ,可就不好捉啦 。而面向对象是强制性的,从编译阶段就解决了你懒惰的问题。\x0d\\x0d\ 巧合的是,面向对象的思想 ,其实和我们的日常生活中处理问题是吻合的。举例来说,我打算丢掉一个茶杯,怎么扔那?太简单了 ,拿起茶杯,走到垃圾桶,扔!注意分析这个过程,我们是先选一个“对象”------茶杯 ,然后向这个对象施加一个动作——扔。每个对象所能施加在它上面的动作是有一定限制的:茶杯,可以被扔,可以被砸 ,可以用来喝水,可以敲它发出声音......;一张纸,可以被写字 ,可以撕,可以烧...... 。也就是说,一旦确定了一个对象 ,则方法也就跟着确定了。我们的日常生活就是如此。但是,大家回想一下我们程序设计和对计算机的操作,却不是这样的 。拿DOS的操作来说 ,我要删除一个文件,方法是在DOS提示符下:c:> del 文件名。注意看这个过程,动作在前(del),对象在后(文件名),和面向对象的方法正好顺序相反。那么只是一个顺序的问题 ,会带来什么影响那?呵呵,大家一定看到过这个现象:File not found. “啊~~~,我错了 ,我错了,文件名敲错了一个字母”,于是重新输入:c:> del 文件名2 。不幸又发生了 ,计算机报告:File read only. 哈哈,痛苦吧:)。所以DOS的操作其实是违反我们日常生活中的习惯的(当然,以前谁也没有提出过异议) ,而现在由于使用了面向对象的设计,那么这些问题,就在编译的时候解决了 ,而不是在运行的时候。obj.fun(),对于这条语句,无论是对象,还是函数 ,如果你输入有问题,那么都会在编译的时候报告出来,方便你修改 ,而不是在执行的时候出错,害的你到处去捉虫子 。\x0d\\x0d\ 同时,面向对象又能解决代码重用的问题——继承。我以前写了一个“狗 ”的类 ,属性有(变量):有毛、4条腿、有翘着的尾巴(耷拉着尾巴的那是狼) 、鼻子很灵敏、喜欢吃肉骨头......方法有(函数):能跑、能闻 、汪汪叫......如果它去抓耗子,人家叫它“多管闲事”。好了,狗这个类写好了 。但在我实际的生活中 ,我家养的这条狗和我以前写的这个“狗类”非常相似,只有一点点的不同,就是我的这条狗 ,它是:卷毛而且长长的,鼻子小,嘴小......。于是,我派生一个新的类型 ,叫“哈巴狗类”在“狗类 ”的基础上,加上新的特性。好了,程序写完了 ,并且是重用了以前的正确的代码——这就是面向对象程序设计的好处。我的成功只是站在了巨人的肩膀上 。当然,如果你使用VC的话,重用最多的代码就是MFC的类库。
程序设计
程序设计(Programming)是给出解决特定问题程序的过程 ,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序 。程序设计过程应当包括分析、设计、编码 、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。
定义
程序设计=数据结构+算法
程序设计(Programming)是指设计、编制 、调试程序的方法和过程 。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现 ,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。程序设计通常分为问题建摸 ,算法设计,编写代码,编译调试和整理并写出文档资料五个阶段 。
按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性 ,后者反之 。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质 ,有顺序程序设计、并发程序设计 、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计 、对象式程序设计之分 。
程序设计的基本概念有程序、数据、子程序 、子例程、协同例程、模块以及顺序性 、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位 ,顺序性 、并发性、并行性和分布性反映程序的内在特性。
程序设计规范是进行程序设计的具体规定 。程序设计是软件开发工作的重要部分,而软件开发是工程性的工作,所以要有规范。语言影响程序设计的功效以及软件的可靠性、易读性和易维护性。专用程序为软件人员提供合适的环境 ,便于进行程序设计工作 。
语言
(Programming Language)
是用于编写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言 。在程序设计语言中,这些记号串就是程序。程序设计语言包含三个方面,即语法、语义和语用。语法表示程序的结构或形式 ,亦即表示构成程序的各个记号之间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者 。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义 ,但也不涉及使用着,语用表示程序与使用的关系。
语言的分类
程序设计语言的基本成分有:①数据成分,用于描述程序所涉及的数据;②运算成分 ,用以描述程序中所包含的运算;③控制成分,用以描述程序中所包含的控制;④传输成分,用以表达程序中数据的传输。
程序设计语言程序设计 程序设计语言 计算机 IT按照语言级别可以分为低级语言和高级语言。低级语言有机器语言和汇编语言 。低级语言与特定的机器有关 、功效高 ,但使用复杂、繁琐、费时 、易出差错。机器语言是表示成数码形式的机器基本指令集,或者是操作码经过符号化的基本指令集。汇编语言是机器语言中地址部分符号化的结果,或进一步包括宏构造 。高级语言的表示方法要比低级语言更接近于待解问题的表示方法 ,其特点是在一定程度上与具体机器无关,易学、易用、易维护。
程序设计语言按照用户的要求有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算 ,以表示相应的计算过程,如FORTRAN 、COBOL、PASCAL等 。
按照应用范围,有通用语言与专用语言之分。如FORTRAN、COLBAL 、PASCAL、C语言等都是通用语言。目标单一的语言称为专用语言,如APT等 。
按照使用方式 ,有交互式语言和非交互式语言之分。具有反映人机交互作用的语言成分的语言成为交互式语言,如BASIC等。不反映人机交互作用的语言称为非交互式语言,如FORTRAN、COBOL 、ALGOL69、PASCAL、C语言等都是非交互式语言 。
按照成分性质 ,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如FORTRAN 、C语言等。含有并发成分的语言称为并发语言,如PASCAL、Modula和Ada等。
程序设计语言是软件的重要方面 ,其发展趋势是模块化、简明化 、形式化、并行化和可视化 。
关于程序设计主要有哪些方法?的探讨就到这里,您是否还有其他想了解的内容?欢迎在评论区留言告诉我们,同时别忘了点击关注哦!
评论列表(3条)
我是沃侬号的签约作者“admin”
本文概览:近期关于程序设计主要有哪些方法?的讨论热度持续攀升,我们通过多方渠道收集整理了相关资讯,并进行了系统化的梳理。若这些内容恰好能为您提供参考,将是我们最大的荣幸。程序设计主要方法...
文章不错《程序设计主要有哪些方法?》内容很有帮助