‘壹’ C语言中有哪些实用的编程技巧
这篇文章主要介绍了C语言高效编程的几招小技巧,本文讲解了以空间换时间、用数学方法解决问题以及使用位操作等编辑技巧,并给出若干方法和代码实例,需要的朋友可以参考下
引言:
编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。
第1招:以空间换时间
计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招——以空间换时间。
例如:字符串的赋值。
方法A,通常的办法:
代码如下:
#define LEN 32
char string1 [LEN];
memset (string1,0,LEN);
strcpy (string1,“This is a example!!”);
方法B:
代码如下:
const char string2[LEN] =“This is a example!”;
char * cp;
cp = string2 ;
(使用的时候可以直接用指针来操作。)
从上面的例子可以看出,A和B的效率是不能比的。在同样的存储空间下,B直接使用指针就可以操作了,而A需要调用两个字符函数才能完成。B的缺点在于灵 活性没有A好。在需要频繁更改一个字符串内容的时候,A具有更好的灵活性;如果采用方法B,则需要预存许多字符串,虽然占用了大量的内存,但是获得了程序 执行的高效率。
如果系统的实时性要求很高,内存还有一些,那我推荐你使用该招数。
该招数的变招——使用宏函数而不是函数。举例如下:
方法C:
代码如下:
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
int BIT_MASK(int __bf)
{
return ((1U << (bw ## __bf)) - 1) << (bs ## __bf);
}
void SET_BITS(int __dst, int __bf, int __val)
{
__dst = ((__dst) & ~(BIT_MASK(__bf))) | /
(((__val) << (bs ## __bf)) & (BIT_MASK(__bf))))
}
SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);
方法D:
代码如下:
#define bwMCDR2_ADDRESS 4
#define bsMCDR2_ADDRESS 17
#define bmMCDR2_ADDRESS BIT_MASK(MCDR2_ADDRESS)
#define BIT_MASK(__bf) (((1U << (bw ## __bf)) - 1) << (bs ## __bf))
#define SET_BITS(__dst, __bf, __val) /
((__dst) = ((__dst) & ~(BIT_MASK(__bf))) | /
(((__val) << (bs ## __bf)) & (BIT_MASK(__bf))))
SET_BITS(MCDR2, MCDR2_ADDRESS, RegisterNumber);
函数和宏函数的区别就在于,宏函数占用了大量的空间,而函数占用了时间。大家要知道的是,函数调用是要使用系统的栈来保存数据的,如果编译器里有栈检查 选项,一般在函数的头会嵌入一些汇编语句对当前栈进行检查;同时,CPU也要在函数调用时保存和恢复当前的现场,进行压栈和弹栈操作,所以,函数调用需要 一些CPU时间。而宏函数不存在这个问题。宏函数仅仅作为预先写好的代码嵌入到当前程序,不会产生函数调用,所以仅仅是占用了空间,在频繁调用同一个宏函 数的时候,该现象尤其突出。
D方法是我看到的最好的置位操作函数,是ARM公司源码的一部分,在短短的三行内实现了很多功能,几乎涵盖了所有的位操作功能。C方法是其变体,其中滋味还需大家仔细体会。
第2招:数学方法解决问题
现在我们演绎高效C语言编写的第二招——采用数学方法来解决问题。
数学是计算机之母,没有数学的依据和基础,就没有计算机的发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。
举例如下,求 1~100的和。
方法E
代码如下:
int I , j;
for (I = 1 ;I<=100; I ++){
j += I;
}
方法F
代码如下:
int I;
I = (100 * (1+100)) / 2
这个例子是我印象最深的一个数学用例,是我的计算机启蒙老师考我的。当时我只有小学三年级,可惜我当时不知道用公式 N×(N+1)/ 2 来解决这个问题。方法E循环了100次才解决问题,也就是说最少用了100个赋值,100个判断,200个加法(I和j);而方法F仅仅用了1个加法,1 次乘法,1次除法。效果自然不言而喻。所以,现在我在编程序的时候,更多的是动脑筋找规律,最大限度地发挥数学的威力来提高程序运行的效率。
第3招:使用位操作
实现高效的C语言编写的第三招——使用位操作,减少除法和取模的运算。
在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。举例如下:
方法G
代码如下:
int I,J;
I = 257 /8;
J = 456 % 32;
方法H
int I,J;
I = 257 >>3;
J = 456 - (456 >> 4 << 4);
在字面上好像H比G麻烦了好多,但是,仔细查看产生的汇编代码就会明白,方法G调用了基本的取模函数和除法函数,既有函数调用,还有很多汇编代码和寄存 器参与运算;而方法H则仅仅是几句相关的汇编,代码更简洁,效率更高。当然,由于编译器的不同,可能效率的差距不大,但是,以我目前遇到的MS C ,ARM C 来看,效率的差距还是不小。相关汇编代码就不在这里列举了。
运用这招需要注意的是,因为CPU的不同而产生的问题。比如说,在PC上用这招编写的程序,并在PC上调试通过,在移植到一个16位机平台上的时候,可能会产生代码隐患。所以只有在一定技术进阶的基础下才可以使用这招。
第4招:汇编嵌入
高效C语言编程的必杀技,第四招——嵌入汇编。
“在熟悉汇编语言的人眼里,C语言编写的程序都是垃圾”。这种说法虽然偏激了一些,但是却有它的道理。汇编语言是效率最高的计算机语言,但是,不可能靠着它来写一个操作系统吧?所以,为了获得程序的高效率,我们只好采用变通的方法 ——嵌入汇编,混合编程。
举例如下,将数组一赋值给数组二,要求每一字节都相符。
代码如下:
char string1[1024],string2[1024];
方法I
代码如下:
int I;
for (I =0 ;I<1024;I++)
*(string2 + I) = *(string1 + I)
方法J
代码如下:
#ifdef _PC_
int I;
for (I =0 ;I<1024;I++)
*(string2 + I) = *(string1 + I);
#else
#ifdef _ARM_
__asm
{
MOV R0,string1
MOV R1,string2
MOV R2,#0
loop:
LDMIA R0!, [R3-R11]
STMIA R1!, [R3-R11]
ADD R2,R2,#8
CMP R2, #400
BNE loop
}
#endif
方法I是最常见的方法,使用了1024次循环;方法J则根据平台不同做了区分,在ARM平台下,用嵌入汇编仅用128次循环就完成了同样的操作。这里有 朋友会说,为什么不用标准的内存拷贝函数呢?这是因为在源数据里可能含有数据为0的字节,这样的话,标准库函数会提前结束而不会完成我们要求的操作。这个 例程典型应用于LCD数据的拷贝过程。根据不同的CPU,熟练使用相应的嵌入汇编,可以大大提高程序执行的效率。
虽然是必杀技,但是如果轻易使用会付出惨重的代价。这是因为,使用了嵌入汇编,便限制了程序的可移植性,使程序在不同平台移植的过程中,卧虎藏龙,险象环生!同时该招数也与现代软件工程的思想相违背,只有在迫不得已的情况下才可以采用。切记,切记。
‘贰’ 编程语言的学习方法
首先:我学编程已经有快两年的时间了,我的专业和计算机编程一点也沾不上边(图书馆学专业本科)。从最初的C-〉C++-〉VC++6.0-〉VC++.NET托管编程 + SQL Server
要学编程不是一朝一夕的事,不知道你有多少的时间和毅力,编程要学到通最重要的就是方式就是自学,老师教不了多少东西,如果一个老师能够让你入门一门语言就已经是很不错了。
个人觉得最好是从C/C++学起当你对C++很懂的时候,就可以学习VC++了,VC++是学习Windows最好的编程语言,如果你VC++学得通了Windows系统编程就不再话下了.如果这时候比如要改行到C# / java 这些对你来说都是几周就能够上手的事.而且学习C++有一个很好的地方就是C++的书籍非常的多,经典书籍也很多你学习起来会给你非常多的帮助.
当然如果你选择了C++你一定要有毅力与恒心,现在很多的院校都是直接开C# 而不是开VC++课程就是因为VC++的难度大,正式因为难度大就更需要毅力了!如果你没有这个就最好不要选择VC++,还有如果你不是想把编程当作未来的工作方向建议不要学VC++,像开发什么网站的旧直接去学JAVA或C#/ASP就好了,容易上手难度也不会那么大,这时我个人的经历.
下面赋上我保存的一个文章,如果你准备学期VC++,可你看看:
学好VC++的十大良好习惯
欢迎光临阿蒙的VC++专业技术网站:http://www.vchome.net/
每到年底各大媒体就争先恐后热火朝天地搞总结,什么十大人物,十大品牌,十大美女,十大帅哥等等五花八门乱七八糟的让人充满好奇充满怀疑,这事确实让人有点郁闷,就如同男足国家队的国产教练如沈墙扶们每一次踢球失败后都要说这么一句:我们回去后要好好总结,下次会打得更好! 这话听了几十年了,耳朵都生虫了,但还是无法看到中国猪球队有象人样的表现.因此,总结在某一程度上来说只不过是一种形式罢了,总结不代表就能改过原有的不足,也不代表就能进步了,甚至有点俗不可耐,尽管如此,阿蒙亦明知故俗,前人说过了入乡了就要随俗,因此你生活在这种环境里,你无法对这些无聊无趣的东东置之不理,除非你是天才,天才往往在非天才的人看来是很怪异的,处处与现实格格不入,可阿蒙不是天才,所以还得赶快总结,要不就离题,又被大家骂了,:)
(一)充分利用MSDN,因为我个人觉得它胜过任何一本编程参考书;
MSDN是 Microsoft 当前提供的有关编程信息的最全面的资源,它包含微软最新的技术数据库,加上易学易用的全文检索功能,让您迅速找到任何您需要的技术参考数据,让您随时拥有与全世界菁英同步的技术,掌握最丰富的程序开发资源。我经常收到很多朋友的EMAILS,他们所提的问题往往都非常的简单,MSDN完全可以解答这些问题,但他们好象不太喜欢用,这是让我郁闷的地方,是因为英文不好呢,还是没有学会充分利用各种资源来解决问题的方法呢?
(二)提高英文水平,养成多上英文网站多看英文资料多买老外原版英文书;
有关程序员与英文水平的讨论已太多太多, 我个人认为要成为程序员,高中的英语水平够了,甚至不懂英语的一些人,也同样可以成为较好的程序员,因为开发工具的发展将是越来越傻瓜,但如果你是仅仅满足于能运用某种工具开发某个软件模块,那是没话说了.真正热衷技术肯干钻研乐于接受挑战的程序员是不满足于现状的,他们总感觉有太多的未知,于是总在不停地学习,如今信息技术发展得太快,而大部分的技术最先出现的时候都是英文版本的,要几个月或者几年以后才有中文版本的书出来,因此要想跟上步伐,一定要努力提高自己的英文水平,这样才能同步跟上信息技术。你可能担心自己的英语水平不行,没关系,刚开始多查字典,"万事开头难",必须有持之以恒的精神,不久你就会发现计算机英语其实很容易的。何况很多
英文技术站点确实比国内做得好啊!比如http://www.codeguru.com,http://www.codeproject.com, http://www.programmersheaven.com 等等.
(三)加强自我管理,善于作自我总结,分析自已的优点及缺点。
中国境内百分之八十以上的领导人在百分之八十以上的场合的讲话中都有类似的观点,所以在这里我是不多说了,反正这一条用在什么行业什么地方都不会有错的,人生最大的敌人不是就是自已吗?管好自已认清自已,那还有什么搞不定的?
(四)养成良好的文档习惯
程序员大多都不喜欢写文档,我以前也是特讨厌,在我的思想里,所谓的文档就是一些废话,一句话硬是用十句话来代替的无聊透顶,就如同部分中文系男生的爱情表白,明明就是"我爱你"三个字,他硬是把月亮啊太阳啊大海啊高山啊石头啊天使啊乱七八糟的都拉上关系了,尽管听起来浪漫,但在我认为不实用,:), 甚至太肉麻了,一个男子汉干嘛这么罗里罗嗦的......良好的文档是正规研发流程中非常重要的环节,一个好的程序是先写好设计文档再进行编程的,在设计文档的指导下,才能写出安全的代码。如果你不写文档,一开始就写程序,这样你就不会按已设计好的路线走,而是想到哪写到哪。小功能还好说,要是大功能,就容易混乱甚至失控.那么如何写文档呢?其实我认为没有统一的标准,虽然国家及一些NB的人总结了很多的模板,但每个人的习惯不同,如果你不加以修改或创新,就套用某个标准,我相信写起来会很吃力及说不清的难受,因此我觉得只要能将你的设计思想及实现算法或步骤描述清楚就是好的文档,我强烈建议广大程序员朋友们在写文档时要善于用图表来说明你的思想,我们不是作家,也可能作文都经常性地不及格,写出五官端正的文章对我们来说可能不容易啊!好好地利用VISIO,ROSE或别的工具来表达你的思想吧!
(五)代码风格要规范,严谨,效率要高。
这个不用说了,所以一定要记住了!不过,这一点有时可能与人的性格有关,如果你是经常丢三落四经常胡子长长经常钮扣扣错经常吃个快餐要一个小时的人,那你在CODING的时候可千万要注意了,CODING是CODING,生活是生活,不要写出的程序也是那样就不好了!
(六)掌握好跟踪调试技巧.
跟踪调试程序是一件繁琐而又复杂的事情,所以掌握必要的调试策略及技巧却可以使这些工作变得轻松起来.强烈建议你去看一下老美Everett N.McKay及Mike Wooding写的书<<Debugging Windows Programs>>,你一不定受益匪浅.
(七)养成自我测试的习惯
测试工作应由测试工程师来做,但在你写完一个模块或一个软件时,还是要自已先测试一下,保证不要出现一些低级的错误,何况这些错误让测试工程师看到了,狂扁你一顿,你很没FACES的.
(八)善于交流善于沟通,特别是经常与一些高手交流一下学习的心得体会;
有人说,程序员的性格大多内向不喜欢说话,其实是有些误会了,不是不喜欢而是话不投机,我的脑袋一天到晚都在不停地转,函数,数据,算法啊充满了我的世界,我那还有时间与你谈一些无聊的话题,话要找对人了,才容易谈下去,书上说过"听君一席话,胜读十年书",你要找的就是这种豁然开朗!现在技术的论坛越来越来,这将成为程序员交流一个重要的地方,也有人说:"读君一长贴,胜读十年书",:)
(九)阶段性地做一下专题总结
知识要温故而知新,因此我建议程序员要养成阶段性地做专题总结的习惯,比如你这个月学习或在做与多线程有关的模块或项目,那么在你做完后,你就可以好好地总结一下所有与多线程相关的技术,包括理论知识,实践方法以及各种技巧及优秀文章等等,这对你各种能力的提高将有很大的帮助,你试过了吗,如果没有,那就快点行动吧!
(十)要有持之以恒的精神
这是废话,因为我揍不齐十大,所以将它也算上,中国自古以来喜欢号召大众学习某种精神,比如马克思的,列宁的,毛泽东的,邓小平的,雷峰的等,这些精神使社会更安定人民生活更美好,那么程序员要有什么样的精神呢?我不是我说了就算了的,我只是想说明要学好任何一门技术,最好要有持之以恒精益求精的精神,特别是学一些比较抽象比较难的技术,比如VC++,我想它应比别的开发语言都要难学些,或许你已经开始了两年了,但感觉还是不爽仿佛也没掌握什么,这个时候你除了思考一下你的学习方法以外,还必须坚定你的目标及信念!
‘叁’ 求编程方法
1、学好C语言,你可以很好地应付任何一种编程工具。
2、一定要多上机练习,通过程式了解相关知识。几经反复方得正果。
3、不要把学习C语言当成一种任务,更不要把它看成很难完成的任务。要充满自信,只要是一个智力正常的人都能学好C语言。始终保持游戏的心态,多发现其中的乐趣。当感到编程趣味无穷,那你在电脑方面将前程无量。
4、如果一个程式一时无法弄清楚最后暂时放在一边,过一段时间你可能会从其他的程式中悟出道理。
5、C语言是一个整体,各个方面是有机联系的,要从总体上把握它,不要把它割裂成互不关联的部件。
6、不要完全相信教材(包括本讲义),所有结论最好都上机验证。
简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢?
程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。没有这些特殊的指令,就不能执行预期的任务。计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。因此我们要通过程序的方式来让计算机为我们“效劳”。而这个过程就是我们“编”出来的。编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
‘肆’ 几种常用编程语言的编程思想和方法
java c c++ vb等
‘伍’ 编程方法
如何学好VB
序:不要老是想着谁“最有钱途”,这些都不是我们应当考虑的,我们要考虑的是怎样才能真正的精通VB。如果成为了VB的专家,应当很容易赚到钱的。VB程序员为什么工资低,不是VB不行,是因为大部份VB程序员不行,他们只懂得用控件,而没有什么编程的思想。而VB的初学都只会用控件和简单的API就说精通VB了,显然影响的整个VB在程序界的地位,这些人显然不能称为程序员的,只能相当于会使用VB了,就像会Word一样。如果VB程序员都懂的数据结构,UML等,就完全是另外一回事了。有认为VB功能弱,请注意:仙剑95版就是用VB4做的,还有DirectX SDK7中有个一很好玩的3D游戏,声音和动画都非常好,也是用VB写的。所以VB能做很多东西,只要你想去做。
(1)VB不只是数据库和报表。不要以为VB就是数据库和报表,这只是VB强大功能的一小部份。如果这此都搞不清,还是好好的看一下相关的书籍,比在这里问问题有用多了。我以前没有学过数据库,只是有些编程的思路,后来学数据库就非常容易了。我做报表一般用RichTextBox或是From来做,一般都能做的很好,也不用去考虑什么水晶报表了。
(2)不要迷信于API。API能做很多东西,但有些东西在VB里面的函数中就有,API只是VB对WindowsSDK的封装而已。如果想学好API,建议学习SDK。如果VB本身就能很好的支持这个功能,何必还要用API呢。
(3)不要什么都想着控件。如果做程序都想着第三方控件的话,代价是很高的,不仅程序大,安全性也低了很多。其实VB本身带的控件已经完全够用了。
(4)认认真真的把MSDN中关于VB的内容好好看一看,特别是函数和语句,很有用的。
(5)遇到问题不要直接来这里问,自己好好想一想,试着解决这个问题,这虽然在时间上慢了,可是在自身的提高上却有很大的帮助。
(6)没事的时候,多研究些语言上的东西,如数据结构和算法,不要老是想着什么花哨的东西。这对以后的提高非常有帮助。
如何学好VB程序设计
1,学习程序设计的基本要求
2,Vb的功能及特点
3,学习VB程序设计的方法
对学习者知识的要求:
首先,学习程序设计要具备一定的数学基础.计算机与数学有很大的联系,综观计算机历史,计算机的数学模型(图灵机,由Alan Turing提出)和体系结构(由John Von Neuman提出)等都是由数学家提出的,最早的计算机也是为数值计算而设计的.因此,要学习好计算机就要有一定的数学基础.不过对于初学者来说,在数学基础方面的要求并不是很高,从我个人的角度来看,有高中数学水平就差不多了.
如何学好VB程序设计
学习程序设计基本要求
对学习者知识的要求:
其次,学习程序设计要有一定的逻辑思维能力.逻辑思维需要长时间的锻炼,如果你觉得自己在逻辑思维能力上有不足,也没有关系,因为编写程序本身也是对逻辑思维的锻炼.初学程序设计应具备的逻辑基础可以从高中数学中学到.
如何学好VB程序设计
学习程序设计基本要求
熟悉Visual Basic操作环境与设计工具,能设计应用程序界面.
掌握,理解面向对象程序设计基本概念
掌握VB语言的基础知识,程序设计的方法,
能阅读一般难的程序;
能应用编写一些简单程序;
具有用Visual Basic开发Windows环境下应用程序的能力和阅读分析一般难度的VB程序的能力.
如何学好VB程序设计
VB程序设计的基本要求
Visual Basic 简介
Visual Basic 是Microsoft 公司开发的Windows 应用程序开发工具,Visual ——"可视化的",是一种开发图形户界面(GUI)的方法.使得非计算机专业的人也可以开发出专业的Windows软件.
Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用面向对象与事件驱动的程序设计思想,使编程变得更加方便,快捷.使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件,数据库应用程序,网络应用程序等大型软件.是国内外最流行的程序设计语言之一.
2,VB的功能及特点
英文Visual的意思是"视觉的","可视的Baisc"这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做"可视",你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤.
在VB中引入了控件的概念,在Windows中控件的身影无处不在,如按钮,文本框等,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法,能够响应用户操作(事件).
这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的.
何为可视
Visual Basic的特点
1. 具有面向对象的可视化设计工具
2. 事件驱动的编程机制
3. 结构化的程序设计语言
4. 提供了易学易用的应用程序集成开发环境
5.支持多种数据库系统的访问
6.高度可移植化的代码
7.VB6.0在开发环境上,网络功能等的大大增强
Visual Basic的特点
可视化设计: Visual Basic为用户提供大量的界面元素(在Visual Basic中称为控件对象),例如 "窗体","菜单","命令按钮","工具按钮","检查框"等等,用户只需要利用鼠标,键盘把这些控件对象拖动到适当的位置,设置它们的大小,形状,属性等,就可以设计出所需的应用程序界面.
Visual Basic的特点
事件驱动编程:Windows操作系统出现以来,图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的,在使用Visual Basic设计应用程序时,必须首先确定应用程序如何同用户进行交互.(例如发生鼠标单击,键盘输入等事件时,用户必须编写代码控制这些事件的响应方法)这就是所谓的事件驱动编程.
程序设计方法概述
1.初期的程序设计
高运行效率,少占用内存为目标
2.结构化程序设计
程序的可读性,可维护性为目标
程序=算法+数据结构+计算机语言+面向过程的程序设计方法
3.面向对象的程序设计(OOP)
降低程序的复杂性,提高软件的开法效率和改善工作界面为目标
程序=对象+消息+面向对象的程序设计
面向对象的程序设计具有如下的优点:
1.符合人们习惯的思维方法,便于分解大型的复杂多变的问题.由于对象对应于现实世界中的实体,因而可以很自然地按照现实世界中处理实体的方法来处理对象,软件开发者可以很方便地与问题提出者进行沟通和交流.
2.易于软件的维护和功能的增减.对象的封装性及对象之间的松散组合,都给软件的修改和维护带来了方便.
3.可重用性好.重复使用一个类(类是对象的定义,对象是类的实例化),可以比较方便地构造出软件系统,加上继承的方式,极大地提高了软件开发的效率.
4.与可视化技术相结合,改善了工作界面.随着基于图形界面操作系统的流行,面向对象的程序设计方法也将深入人心.它与可视化技术相结合,使人机界面进入GUI时代.
(1)养成良好的学习习惯
VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想就在这时形成的,良好的程序设计习惯也在这个阶段养成.
(2)学习程序设计要注重理解一些重要的概念.
VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在程序入门阶段还是应该重视概念的学习.
3,学习VB程序设计的方法
(3)自己动手编写程序
程序设计入门阶段要经常自己动手编写程序,亲自动手进行程序设计是创造性思维应用的体现,是培养逻辑思维的好方法.因此一定要多动手编写程序,而且要从小程序开发开始,逐渐提高开发程序的规模.
(4)阅读,借签别人设计的好程序
多看别人设计好的程序代码,包括教材上的例题程序.在读懂别人程序后,要想他为什么这么设计 能不能将程序修改完成更多的功能 则可以学到别人优秀的东西,帮助自己提高自身水平.
3,学习VB程序设计的方法
(5) VB程序设计学习的重点
重点放在思路,算法,编程构思和程序实现上.
语句只是表达工具,要求堂上积极思考,尽量当堂学懂,并做到灵活应用.
学会利用计算机编程手段分析问题和解决问题.
(6)养成良好的编程习惯
强调可读性;变量要加注释;
程序构思要有说明;
学会如何调试程序;
对运行结果要做正确与否的分析.
3,学习VB程序设计的方法
学好VB程序设计的具体要求:
(1)课前预习,认真听课并作适当做笔记,课后要认真复习消化所学内容,完成作业.
(2)多写程序,注重实践
程序设计课是高强度的脑力劳动,不是听会的,也不是看会的,而是练会的.
只有自己动手,编写一些程序,才会有成就感,进而对课程产生兴趣,学起来才比较从容.只有当你在编写大量程序之后,才能获得真知灼见,感到运用自如.
动手能力的培养是这门课和以往课程最大的不同之处.
3,学习VB程序设计的方法
(3)上机调试程序应注意的几点:
上机前应认真把实验题在用纸上做一做(包括窗体界面设计,事件代码的编写等)
每次上机后应总结,把没有搞清楚的问题记录下来,请教老师或同学.
平时应多抽课余时间多上机调试程序.注意系统的提示信息,遇到问题多问几开为什么.
3,学习VB程序设计的方法
(4)保持良好的学习心态
要有自信,自强,积极主动学习.
克服畏难情绪,树立学好程序设计的信心.
VB重点和难点(文档下载):
‘陆’ C语言编程的一些技巧
也没啥技巧,就是要注意,一般情况下,开头的main函数,以及“;”符号,还有“{}”
‘柒’ 有什么简单点的编程语言。
如果你真的要学好计算机,一定要有耐心,要有枯燥的心理准备.最重要的是创新.熟能生巧嘛!
我觉得既然提到C语言,就有必要简单提到计算机编程语言发展的过程
既然知道C语言很重要,就有必要知道C语言的前世今生.
计算机科学不仅仅是编程语言,我只从编程语言的角度说说我的看法.
------------------------------------------------
就像是世界上应用最广泛的语言 是英语.当然你可以学习其他的语言,一样不耽误你讲话!
计算机编程语言也是这样,任何语言都有自己的用户之地,C语言发展很成熟,功能十分强大,应用非常广泛.
就像我刚开始学计算机科学一样,我想你也想知道有哪些编程语言.
世界上编程语言太多了,就像每个国家都有自己的语言一样的.但是从编程语言发展的角度说:
大概经历 这样 四个阶段:
############################################################
第一个阶段是 机器码编程 (你肯定知道计算机只能识别0和1,以前就是这样编程的).现在的PC计算机依然是这样,冯.诺依曼结构的计算机.你可以去网上搜索 冯.诺依曼 是干什么的.你会想,为什么现在编程不是0,1,计算机怎么识别呢?当你开始编程的时候,你用的编译器就在做这些事情.
###########################################################
##########################################################
第二个阶段是 低级语言,比如汇编语言,台湾叫做组合语言.其实组合翻译还是比较准确的.一般有IBM PC汇编语言,还有AT&T的汇编语言.学一个就可以了,另一个只是形式不同.对于Intel的CPU来说,8088 8086是对应于16位的汇编语言,80386以后到现在的奔腾都是对应32位汇编语言.现在大学学的是8088/8086的汇编,这远远落后于时代了.目前已经推出了64位的CPU了.
汇编之所以是低级语言,是因为可以对计算机硬件进行直接操作.尤其是对BIOS的中断调用.最典型的是,在我们操作系统启动的时候(比如XP,LINUX...),内核引导程序就要调用BIOS来获得计算机的硬件信息供内核的调用.
低级不是代表功能不强大. 对硬件进行直接操作的,一般如果代码量小的话,会选择汇编来写.汇编的效率极高.
为什么代码量小才用汇编呢?因为汇编代码别人很难读懂.而且非常难维护.所以在选择汇编语言编程的时候要考虑,我的程序是关注什么方面的.
并不是只有汇编语言才能对硬件编程,C语言一样可以,C++,JAVA都可以,但是考虑到执行效率,汇编比他们都有绝对优势.一般系统级编程用汇编,C语言比较多
很多人说汇编语言将被淘汰,但是在一定的领域,这个东西不会被淘汰的.据我所知,目前的系统启动部分除了用汇编写,还没有用其他语言写过,操作系统的内核,多用C来写,还没有用C++来写.据说Linus以前尝试用C++改写Linux内核,不过后来放弃了.如果有人对我的假设有什么疑义,请推荐给我一个不用汇编写启动的代码,或者内核是用面向对象编程语言来写的OS的程序代码,我将不胜感激.
如果有人有反对意见,我保留我自己看法,因为在计算机上没有不可能的事情!
#################################################
#################################################
第三个阶段是:结构化高级语言
这个代表就是C语言,PASCAL语言,FORTANT语言.
C语言相比较这三个语言来说,应用是最广泛的.
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。
这里提到可移植性,补充上边说的汇编语言,汇编语言因为是直接面对硬件,所以如果硬件不同,编程的语法就不同,所以汇编一般不可移植,或者移植非常困难.
C语言常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ , Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等...... 大学里教学用的是TC2.0,这里的T表示TURBO,是Borland公司的产品.
************************************************8
有必要了解一下C语言的发展历史
C语言的发展颇为有趣。它的原型ALGOL 60语言。
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。
为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言的特点
1. 简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
2. 运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富
C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
4. C是结构式语言
结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格、程序设计自由度大
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。
6. C语言允许直接访问物理地址,可以直接对硬件进行操作
因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8. C语言适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
######################################################
第四个阶段:面向对象的高级语言
典型的是C++ JAVA
在C语言的编程过程中,大家发现 结构化编程的C语言编程比较麻烦.
比如,我要编写 描述3个凳子的程序,如果用C写的话,我必须一个一个描写凳子.如果要写100,1000个或者更多呢?不就麻烦死了.为什么我们不能先构造一个凳子的基本模型,然后根据具体凳子的特点添加代码呢? 这样代码量不是大大减轻了,程序员就少做很多重复劳动了.这个基本模型就是面向对象里边经常提到的类.
当然C++和C比较不仅仅是这些有点,优点太多了,我只是做一个假设而已,C++的内容很多,C++是C的超集.你学习C++你就知道了.
C++和C的语法很相近,C++一样能处理结构化的程序,基本和C一样.
所以,你可以直接学习C++.C++和C没有什么必然关系.
#############################################
此外还有其他一些脚本语言perl,标记语言html等等.
游戏开发也经常用到脚本语言.
-------------------------------------------------
编程语言就和人说话一样,等你熟练掌握了,你应该学习如何说话的方法和技巧了.就是计算机上常说的 数据结构 和 算法
当你熟练掌握编程语言的时候,你会发现再学一门新的语言不是什么难的事情.很容易上手,确实是这样的.
--------------------------------------------------------------
--------------------------------------------------------------
刚才我说了编程语言基本分为那些,知道这些语言最擅长的地方,你学游戏还是学什么都会有个目标.
无论你从事什么计算机编程工作,我都觉得应该好好学习基础知识,不管你是先学再干,还是先干然后知不足才学.形式都是次要的,关键是解决问题.
不管怎么样,你还是要了解一些数学知识,比如游戏编程要涉及的 线性代数的矩阵知识,等等.数学是很重要的.不要认为编程和数学没有关系.在高级编程中应用数学知识太常见了.
游戏编程现在大家学习3D的比较多.毕竟玩游戏,还是要逼真的感觉的.你初学可以学习OpenGL或者D3D,这些结构和C语言相似,他们不是编程语言,只是接口.编译器你可以采用MS的VC++或者LINUX下的GCC + GLUT,当然编译器只是工具,你喜欢采用什么编译器,调试器都是你自己的选择.MS底下也可以采用其他的,Linux底下也可以采用GTK等等.看你喜好了.
再有就是Web编程语言语了:
asp
asp.net
PHP
JSP
‘捌’ 求学习编程语言基本语法的方法
学习自然语言的用途应该是为了交流,而不是考试。 学习编程语言的目的应该是写程序而不是背语法。
如果你学编程的目的不是应付考试而是出于兴趣,那么我可以告诉你程序语言语法并不是学习编程中最重要的环节。重要的是多写代码,多动手练习,多读别人写的代码。这样子才能提高的快。
语法不是最重要的也并不意味着就可以随随便便不用学了。找一本专门写你要学习的语言的语法的书,从头到尾先看一遍。看不明白也没有关系,跳过去看后面的。这样你就有个大概的印象了。
然后就可以找练习来做了,手头要有本语法方面内容很全的书,什么地方看不明白了去查书就好。
实际上很多程序员也不可能把运算符优先级什么的语法统统全背下来的。
总之还是一句话,要多动手写代码。
补充:学习编程的过程是个螺旋曲线,有些东西要等有了一定的经验后再回头来看才会明白。
‘玖’ 在C语言编程中都有哪些技巧呢
1,在控制循环方面你可以定义一个变量true默认是1,并把它作为循环条件,这样你就可以通过控制true的值去控制你的循环
2,在进行if语句判断时最好每一个条件加一个()这样不至于搞混,if语句的内容也最好加上{ },当然你也可以设置一个true变量作为判断条件,这样便于控制
3,在函数调用时最好先写主函数,把子函数写在主函数的前面这样可以减少主函数中不必要的代码,最好多用数组和指针进行函数的条用
4,在用到结构体时最好这样做 typedef strcut stu{....}Stu 这样在定义变量的时候你就可以这样写
Stu student1;而不必要写成这样struct stu student1;而且最好用指针Stu *student1;c语言的灵魂就是指针
5,在指针方面在循环输出内容时可以这样写for(;p!=null;p=p->next)
{
.......
}
这个其实就是链表的输出,记住数组的变量名也是一个指针,比如int a[10]和int *b; b=a
printf("结果%d"a[0]);与printf("结果%d"*b);结果是一样的其实a[0]与a指向的都是数组的第一个元素
还有在给指针赋值的时候记住赋的是地址,比如int *a ;int b=10; a=&b(正确的) a=b(这是错误的)
在指针输出值得时候前面要加一个*,就告诉你这么多吧,剩下的你自己在编程中自己体验总结
‘拾’ 学习编程方法
1、先选一种自己喜欢的语言(C,C++,Java,Python等等)
2、买一本关于这种语言入门的书,一开始不要看太难的,循序渐进,先看一遍。
3、多练基础代码,将各种语句练得非常熟练,可以选一些计算机语言初等练习题做做。
4、再重头到尾好好看一遍,哪里不懂,可以与他人交流。
5、多看看别人用这种语言写的程序,借鉴编程方法,对自己错误的思想进行校正。
6、多多练习,每天都打一些代码,毕竟熟能生巧。
【资料】
编程是编写程序的中文简称,就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种“可控体系”【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程】
例子:①比如编写一段代码程序②编写一个控制设备体系。