博文

U<- V+(S-6) 汇编语言(2005-12-22 11:44:00)

摘要:编程实现: U<-- V+(S-6) 设U,V,S均为二位十进制压缩BCD码(如:49H)

方法一:
data segment
   v db 49h
   s db 15h
   u db ?
data ends
code segment
   assume cs:code,ds:data
start:
   mov ax,data
   mov ds,ax
   mov al,s
   sub al,06h
   das
   jbe l1
   add al,v
   daa
   jmp l2
 l1:
   neg al      ;如果是负数,则求出其对应的正数
   mov ah,al   ;将s-06h的结果绝对值存在ah中
   mov al,v   
   sub al,ah  ;用v-|s-06h|
   das
l2:
   mov u,al
   mov ah,4ch
   int 21h
code ends
      end start

方法二:(不用考虑正负数)
data segement
     v db 49h
     s db 15h
     u db ?
data ends

阅读全文(3958) | 评论:0

成为编程高手的五个阶段(2005-12-22 11:26:00)

摘要:                         成为编程高手的五个阶段 第一阶段 此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。
第二阶段
此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。
第三阶段
此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。
第四阶级
此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行VxD或操作系统的内核的修改。
这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想变不过来。
第五阶级
此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是MS Word这样的大型软件,只要有充足的时间,也一定会设计出来。
第六阶级
此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。
此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,Win 32或Linux在你眼里是没有什么差别的。
每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。
要......

阅读全文(273) | 评论:0

编码风格 (2005-12-22 01:18:00)

摘要:  改善编码风格 -------------------------------------------------------------------------------- 应该说,我们中的许多人,编程的历史并不短,但很多时候,我们对自己编写出来的代码却毫无自信,有时候自己见了都怕,尽管这段代码实现了要求的功能。归其原因,往往是代码风格差导致的代码凌乱没有美感,本文的目的就是要讲解一般的良好风格,帮助读者写出“美丽”的代码,事先要说明的是文中所涉及到的语言有C、C++、JAVA及BASIC,我之所以用了三种语言而不是只用一种语言是为了向读者表明风格对语言的通用的。
 
    1)标识符(命名规则)
    标识符应当直观且可以拼读,可望文知意,最好采用英文单词或其组合,便于记忆和阅读,切忌使用汉语拼音来命名。长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪,例如:
    好的命名  int student_age,teacher_age;
    坏的命名  int age1,age2;
    但名字是否越长越好呢?不是的,请看下面的例子:
    struct student
           {
            int student_age;    /* 坏的命名 */
            char *student_name;
           ......

阅读全文(2547) | 评论:0

英语学习(2005-12-22 00:05:00)

摘要:英语学习 Why Do Students learn English? English has been getting more and more popular in the last decade. Many countries have made English taught as the second language in schools. But why do students need English? If they do need, what do they need it for?. Different students learn English for different purposes. Most of the students learn English because they need to read English textbooks or journals and attend English lectures, while a few students use it to talk to English-speaking visitors, attend seminars, or write letters and reports.        Whatever the purposes are, one thing is certain: Students need English, and English teaching should be strengthened in universities. However, the current teaching methods should be improved and the teaching materials should be updated to satisfy their needs.  
--------------------------------------------------------------
  2、英文求职信   Directions: for this part, you are allowed ......

阅读全文(5129) | 评论:2

一些不错的C++网站 (2005-12-21 13:59:00)

摘要:
 一些不错的C++网站
喜欢C++的朋友,你应该该也有自己喜欢,也认为不错的网站吧!我恳求你告诉我,请留言给我. http://www.boost.org/ Boost provides free peer-reviewed portable C++ source libraries. http://www.cplusplus.com/ Non-technical information about the C++ language, from a basic description, a summary of its history to the latest news concerning this language. http://gcc.gnu.org/ 这个大家熟悉 http://www.cppreference.com/ 这个,GOOGLE搜到的. http://www.cuj.com/ C/C++ Users Journal
Practical technical information, with an extensive code archive, for advanced C/C++ programmers. A monthly hardcopy magazine since 1983. http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup's Homepage
This is the homepage of Bjarne Stroustrup, the designer and original implementor of C++. ... C and C++: A Case for Compatibility. The C/C++ Users Journal. August 2002. I'm the College of Engineering Professor in Computer Science at ... http://www.cprogramming.com/ Cprogramming.com is a web site designed to help you learn the C......

阅读全文(3205) | 评论:0

MFC-你的类到底帮我做了什么?(2005-12-20 18:14:00)

摘要:
      MFC 你的类到底帮我做了什么?(理解什么是句柄?)     MFC帮我们和Windows对话,MFC是个服务公司     MFC相当于一些第三产业,比如餐馆.比如企业ISO9000认证咨询公司.比如营业执照代办机构.
   所有的原因是因为这些东西都很复杂,所以我们引进了MFC来帮我们的忙.
其实跟认证咨询公司帮我们准备报表,然后帮我们联系认证机构一样.MFC就是通过API和WINDOWS这个上帝进行交流.我们自己可能记不住怎么和上帝聊天的规范,但MFC知道那些流程.如果你自己会讲你在MFC帮你说的时候你也可以自己插嘴说两句,这样直接一点.    先讲讲跟WINDOWS上帝说话的时候的要素.  最关键的是句柄(内存地址),因为在WINDOWS的概念里只有内存空间地址. 比如你求WINDOWS帮你在你的程序的窗口上写一个字(记住,其实是WINDOWS帮你写的,别以为写上几个代码就会在屏幕上写字),那你得告诉WINDOWS 你的窗口内存的地址,然后告诉它在什么坐标上. 这个时候WINDOWS  就找到那个内存地址,然后 通过坐标计算出相对空间位置加上内存地址,  这时候就在那里写上字.  然后其他的部门(显示驱动程序)会把字写到屏幕上.     上面的操作,如果你自己跟WINDOWS说,那得做两件事,第一件是获得句柄,第二件申请.
     如果叫MFC做,他在VIEW里面给你一个CDC指针,你只要叫CDC的成员函数帮你TEXTOUT就可以了,句柄它会帮你搞定.     程序是一个进程,你的程序分配到的内存被包成一个整体,你在程序里得到的指针是从0开始的相对指针,句柄是绝对指针.句柄是在你向WINDOWS对话的时候用的.平时自己用的时候只要用相对指针就可以了.MFC就是帮你隐藏绝对指针,让你觉得你的世界是从0开始的完美的世界.可偏偏有些时候还是被我们发现,老鸟觉得很自然,新手就困惑了,为什么要用句柄.如果你想让WI......

阅读全文(2977) | 评论:0

编程学习(2005-12-20 14:20:00)

摘要:   // May.15th.2005 programfan 的信息学讨论区开张了, 大家去看看
http://www.programfan.com/club/bbs.asp?bbsid=54 // May.14th.2005 大榕树论坛 - 非常著名的 OI 及 ACM(TJU,ZJU,PKU) 讨论区,人气很旺,有什么 ACM 不会了可以去参考一下
http://bbs.mydrs.org * 一些网站 NetYi 电子书库 - 提供各种各样的电子图书,不过有积分制度
http://www.netyi.net
多种文件格式的介绍 - 较详细介绍了各种文件的结构
http://www.moon-soft.com/program/FORMAT/
唯 C 世界 - C 语言界很好的网站
http://www.vcok.com/
源代码库 - 各种方面的 C 源代码,非常全面
http://zhwm.diy.myrice.com/pcbook/daima/vc/
http://www.vckbase.com/sourcecode/algorithms/
AoGo 汇编小站 - 关于汇编和底层 C 的一些东西
http://www.aogosoft.com/
C 语言编程宝典 - 可以算是 C 的教程
http://paul.rutgers.edu/~junl/learning/TC/ * Online Judge - ACM 众多的在线裁判系统 浙江大学的 Online Judge -http://acm.zju.edu.cn
北京大学的 Online Judge -http://acm.pku.edu.cn
吉林大学的 Online Judge -http://acm.jlu.edu.cn
四川大学的 Online Judge -http://cs.scu.edu.cn/acm
汕头大学的 Online Judge -http://acm.stu.edu.cn/
中科大的 Online Judge -http://acm.ustc.edu.cn/index.php
哈工大的 Online Judge -http......

阅读全文(3142) | 评论:0

怎样成为优秀的软件模型设计者(2005-12-20 00:06:00)

摘要:怎样成为优秀的软件模型设计者?
我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中,你会获得立杆见影的成果。 1. 人远比技术重要 你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterprise Java Beans)和代理(agent)是很有趣的东西。但是对于用户来说,如果你设计的软件很难使用或者不能满足他们的需求,后台用再好的技术也于事无补。多花点时间到软件需求和设计一个使用户能很容易理解的界面上。 2. 理解你要实现的东西 好的软件设计人员把大多数时间花费在建立系统模型上,偶尔写一些源代码,但那只不过是为了验证设计过程中所遇到的问题。这将使他们的设计方案更加可行。 3. 谦虚是必须的品格 你不可能知道一切,你甚至要很努力才能获得足够用的知识。软件开发是一项复杂而艰巨的工作,因为软件开发所用到的工具和技术是在不断更新的。而且,一个人也不可能了解软件开发的所有过程。在日常生活中你每天接触到的新鲜事物可能不会太多。但是对于从事软件开发的人来说,每天可以学习很多新东西(如果愿意的话)。 4. 需求就是需求 如果你没有任何需求,你就不要动手开发任何软件。成功的软件取决于时间(在用户要求的时间内完成)、预算和是否满足用户的需求。如果你不能确切知道用户需要的是什么,或者软件的需求定义,那么你的工程注定会失败。 5. 需求其实很少改变,改变的是你对需求的理解 Object ToolSmiths公司(www.objecttoolsmiths.com)的Doug Smith常喜欢说:“分析是一门科学,设计是一门艺术”。他的意思是说在众多的“正确”分析模型中只存在一个最“正确”分析模型可以完全满足解决某个具体问题的需要(我理解的意思是需求分析需要一丝不苟、精确的完成,而设计的时候反而可以发挥创造力和想象力 - 译者注)。 如果需求经常改动,很可能是你没有作好需求分析,并不是需求真的改变了。 你可以抱怨用户不能告诉你他们想得到什么,但是不要忘记,收集需求信息是你工作。 你可以说是新来的开发人员......

阅读全文(2045) | 评论:0

写给想当程序员的朋友(2005-12-19 20:19:00)

摘要:写给想当程序员的朋友
软件以程序员为本(《程序员》) 谨以此文献给所有想当程序员的朋友 (一) 文章由来及个人经历 我是一名计算机专业的本科毕业生,毕业已经1年多了。毕业后从事的是软件编程工作,经常有其他专业的朋友想从事软件编程工作,向我请教如何,因为我自觉涉行不深,不敢信口开河,无奈朋友信任,我不得不郑重考虑一下这个问题了,来帮助朋友选择和回报朋友的信任。 这也就是此文的由来。 还是先谈谈我个人的经历吧。(是不是有点俗套,但我觉得了解我的经历,有助于理解我话的含义;我一向认为不了解古龙的生活经历的,不会真正读懂古龙的作品和古龙笔下的英雄的)我本科就读于南方一所著名的高校(因为自己的不成气,愧谈母校名谓),学的就是计算机专业。上本科时,几乎没有认真的听完一门专业课程,上课看报纸睡大觉,下课看录像看小说看球赛,临考抱佛脚,每次考试和课程设计都是蒙混过关。(于之相对是,我选修的工商管理和经济贸易方面的课到是听得不亦乐乎,考的分数颇高,也许这才是我的真正兴趣所在。) 总而言之,大学是混过来了,对专业的理解和掌握程度,应该没有达到毕业要求的合格水平。(也很后悔,但是有什么用呢,当时不知道珍惜;如果上天再给我一次机会的话,我一定会抓住,多看点美国大片少看点港片;现在,重回校园是我的一大理想)但是大学的学习使我有了一个简单的知识框架(总算学费没白交),我对一个朋友这样形容过我的这个知识框架,“它不是钢筋铸的,是稻草扎的”,哈哈哈,不要笑,真的,我敢说很多本科毕业的朋友的本专业的知识框架也只不过是“稻草扎的”。直到现在,我一直觉得自己的基础知识还是很薄弱,一直想抓点时间,把基础书本好好的温习一下。(此项任务正在计划和实施中) 毕业后,分配到某研究所工作。当领导让我选择自己以后的工作方向时,我毫不犹豫的选择了软件(也不知道到底是对还是错,但我决不后悔)。此研究所主要是以硬件为核心搞通信控制设备的研发生产;软件是辅助,所以也不受什么重视,很多搞软件的人都跳槽走了,留下来的大都是一些已经废掉和行将废掉的“伪/萎”程序员(名副其实的“软件人员”)。在这里感觉不到什么高紧张和高技术程度的研究和开发;软件开发的技术含量极低,以致于大部分人只有半年的学习和开发经验,以后都是这些知识和经验的重复利用。(我问过其他到研究所工作的同学,他们说都一样,呜呼,我们的国防科研开发呀)对......

阅读全文(2771) | 评论:1

C++的沉迷与爱恋(2005-12-19 20:00:00)

摘要:C++的沉迷与爱恋 (转载)
每年的 09/28 於我都是一个特殊的日子 -- 不只是因为教师节。今年很特殊地没有普天同庆,那麽我就写篇文章自己庆祝一下好了。 我於今年七月发表了一本着作 <多型与虚拟> 和一本译作 <深度探索 C++ 物件模型> ,获得很大的回响。这些作品都不是针对 C++ 的完全初学者所写,但从初阶到高阶为数众多的 C++ guy,热情地表达了他们对这些主题的喜悦。 在许多来信中,我看到一些有趣的现象,也感受到一些值得整理下来的想法。所以,根据我个人的学习过往、我的教学经验、以及周遭朋友的心得交流,写下这篇文章,或可为後学者戒。 ●<多型与虚拟> 序言节录 首先让我节录 <多型与虚拟> 一书序言: <多型与虚拟> 序 节录(侯俊杰/松岗/1998/07) 一般而言,C++ 是一个难学易用的语言。 C++ 的难学,初始在於其重重的布幕,布幕之中编译器对我们的程式码做了太多的手脚,使我们惯於循序思考的工程脑袋一无所措。及长,又面临新的思维模式,使我们必须扭转惯常的思考习惯。 C++ 的易用则在於其巨大的弹性,能够以多型(polymorphism)、虚拟(virtual)、模板(template)、泛型(generalization)等种种型式,让既有的码去处理未知的、未来的资料型态。 当然,易用必须先能用。用不好或不能用的话,「写 C++ 程式」最後就成了只是「使用 C++ 编译器」,这是大家常拿来彼此调侃的笑话。 在「难学」的背景下,「易用」是使我们依然前仆後继的动力。愈来愈多的大学资讯科系把 C++ 开在大一课程,这虽然说明 C++ 是多麽地重要,可也苦了资讯新兵们。 其实「难学」的最大症结在於,很难得有一本书,能够一针见血地指出多型与虚拟的重要性;在我们粗具语法基础之後,直接把我们导引到最核心最重要的思想,并且在建立这个思想的过程中,提供足够的必要基础。
●困难度之一 「C++ 是个难学易用的语言」,这句话相信很多人心有戚戚。C++ 的学习难度,一在於语言本身太多的「幕」,一在於 "paradigm shift" (思考模式的移转)。 传统循序语言如 C, Pascal, Basic, Fortran...,除了......

阅读全文(2726) | 评论:1