理工科学生需要知道的十件事
理工科学生需要知道的十件事
一位在MIT教数学的老师总结了十条经验,对理工科学生应该很有教益:
你能够做到每天七个小时坐在书桌前。
只有在学你觉得学不会的东西时才能学到东西。
总的来说,知其所以然比知其然重要得多。
在科学和工程方面,没有人能骗太久。
并不是天才才能做有创造性的工作。
你必须对自己高标准严要求。
世界变化很快,你最好选学那些坚实恒久的学科,少赶时髦。
未来的计算机文化是正发生在你的身边,并不是计算机文化课上学的东西。
数学仍然是科学界的女皇。
理工科学生需要知道的十件事
一位在MIT教数学的老师总结了十条经验,对理工科学生应该很有教益:
你能够做到每天七个小时坐在书桌前。
只有在学你觉得学不会的东西时才能学到东西。
总的来说,知其所以然比知其然重要得多。
在科学和工程方面,没有人能骗太久。
并不是天才才能做有创造性的工作。
你必须对自己高标准严要求。
世界变化很快,你最好选学那些坚实恒久的学科,少赶时髦。
未来的计算机文化是正发生在你的身边,并不是计算机文化课上学的东西。
数学仍然是科学界的女皇。
Time limit: | 3sec. | Submitted: | 6774 |
Memory limit: | 32M | Accepted: | 1143 |
For each pair of integers A B and C ( -2^31 <= A, B, C<= 2^31-1 ), Output the result of A+B+C on a single line. Sample Input1 2 33 4 3 Sample Output 610 提示 请注意32位机上int的表示范围。 ------------------------------------------------------ 题目如上,看起来很简单的问题 根据提示,我知道简单的用int是不行的 根据1001的示例,写出的程序如下:
提交的结果是Wrong Answer。 后发现,long>=int 很多情况下,是取等于 所以,用long是不行的。 干脆改为long double,还是wa(Wrong Answer) 仔细研究了数据类型长度 发现32位机子上 type sizeof short 2 int 4 long 4 double 8 long double 12 就是说,题目中A,B,C都可以用int表示,只是结果就超过了int的表示范围。 ---------------------------- 于是,改为
结果,还是wa 用A=B=C=2^31-1 即2147483647 测试,结果是用科学计数法表示的,为2.14748e+09 经调试,才发现,原来a+b的值为-2,即已经越界了。 ----------------------------------- 改为: 结果,wa 调试,结果是正确的, 那么就是输出结果不符合要求 C++double的默认输出好像是科学计数法的,所以修改为:
调整fixed输出,找了很久,才发现fixed是对应于scientfic的,英语还是不行 挑战有效位数,使看起来象整数。 提交,accepted。 才算OK。 -------------------------------------------- 看起来很简单的东西,很多的细节,还是不会注意到,汗! |
正常情况下,我们都是习惯于直接把结果当作函数的结果返回
例如:
1)
functiongetCommList:TStrings;
var
sl:TStrings;
begin
sl:=TStringList.create;
.....
result:=sl;
end;
____________________________
然后调用:
var
sl2:TStrings;
begin
sl2:=TStringList.create; //这里也需要,不然会警告没有初始化
try
sl2:=getCommList;
...
finally
sl2.free;
end;
end;
-------------------------------------------------------------------------
这样,就有问题了,创建了两次的TStringList,却只进行了一次释放
——————————————————————————————
2)
functiongetCommList:TStrings;
var
sl:TStrings;
begin
sl:=TStringList.create;
try
.....
result.assign(sl);
finally
sl.free;
end;
end;
____________________________
然后调用:
var
sl2:TStrings;
begin
sl2:=TStringList.create;
try
sl2:=getCommList;
...
finally
sl2.free;
end;
end;
---------------------------------------------------------------------------------
如此,进行了两次分配,两次释放,但是,运行的时候,却报AV错误
原因不清
或许是sl已经释放,assign并未真正的拷贝了数据?
————————————————————————————————
3)推荐的方法
procedure getCommList(varsl:TStrings );
begin
//只需进行必要的赋值
sl.clear;
sl.items.......
end;
____________________________
然后调用:
var
sl2:TStrings;
begin
sl2:=TStringList.create; //这里安正常的需要创建
try
getCommList(sl2);
...
finally
sl2.free;
end;
end;
-----------------------------------------------------------------------------------------------------
如此进行,基本上不用考虑对象是深拷贝,浅拷贝的问题
只需进行常规的操作,避免了内存的创建,释放的困扰。
——————————————————————————————————
Testing Semagic
难得在台湾的microsoft上发现了一些东西
http://www.microsoft.com/taiwan/WindowsXP/windowsmediaplayer/downloads/create.htm
当然包括这个Semagic了
试试先
最近一个项目使用ReportBuilder生成报表,有个标题用Label表示,需要从程序中传递到report里,
最先,直接使用 ppLabel编译通过,但是,在第一次生成报表的时候,在这一句代码停留了很长一段时间,导致性能太差。
后来,在report designer里面的calc,看到有label事件,onGetText,知道是赋值给label用的,但是,用了许多方法,都是因为不知道怎么使用calc的代码。曾经想利用report的parameterlist,但还是用不来,只好放弃。
最后,才在Form的inspector看到和calc中看到的一样的事件,原来,可以直接在delphi里面处理这些事件的,直接写pplabel的OnGetText事件,就可以解决了,走了许多的弯路,终于是搞定这问题。
I have installed an interesting application - BlogJet. It's a cool Windows client for my blog tool (as well as for other tools). Get your copy here: http://blogjet.com
"Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination." -- Albert Einstein
可用升级服务器更新
更新日期:2008-06-11 15:07
*升级服务器地址与说明*
http://nod32.52zy.com/
http://win.rulez.cz/
http://nod32.lzsh.cn/nod32/
http://jaf.ru/nod32up/
*******************************************************************************
一直以来,都是使用vssxion 才对delphi进行source control,但总觉得用的不爽。我一直用的是2.0的版本,因为破解完全,跟注册版一样,看到盒子上有3.1的,甚至5.0的,但都是带着破解伴侣的。呵呵,带个这样的东西,说明破解的功力还是有点差距的。可惜,网上都找不到新版的破解。
一直在寻找cvs的插件,就只有一个sourceXion,可惜网上的只有1的版本,才算是完全破解的,也就不怎么用了
今天下午郁闷了一下,找了个athlant,据说是可以连接各种source provider,下载,安装,看起来都不错,跟vss一样的界面。可是,竟然没有发现cvs的配置选项,只有一个就是vss。上网查看一下,原来是需要一个cvs插件,有两个选择:cvsproxy或者igloo,官方推荐是前者,不过非是免费的,破解版本只有1的,当前最新是1,而后者呢,基本上找不到下载的地方。官方网站,google可以找出来,我却登录不了
郁闷了一个下午!
ps:呵呵,现在基本上不用cvs了