理工科学生需要知道的十件事

理工科学生需要知道的十件事
一位在MIT教数学的老师总结了十条经验,对理工科学生应该很有教益:


你能够做到每天七个小时坐在书桌前。
只有在学你觉得学不会的东西时才能学到东西。
总的来说,知其所以然比知其然重要得多。
在科学和工程方面,没有人能骗太久。
并不是天才才能做有创造性的工作。
你必须对自己高标准严要求。
世界变化很快,你最好选学那些坚实恒久的学科,少赶时髦。
未来的计算机文化是正发生在你的身边,并不是计算机文化课上学的东西。
数学仍然是科学界的女皇。

- 阅读全文 -

谈话的窍门

谈话的窍门

期望事业有成,除了做好手边的事情,很重要的一点就是要会和别人沟通交流。下面是一些谈话的技巧:
明白大多数人都更喜欢和别人谈论自己。
1寻找共同点。
2说对方的好话。
3表达观点言简意赅。
4不时地绕回你们的共同点。
5除非想活跃气氛,否则不要自吹自擂。
6除非有特殊必要,必要讨论信仰问题。
7上一条同样适合于政治问题。
8如果讨论什么时事问题,尽量保持中立和友好。
9点到即止,不要浪费大家的时间。

- 阅读全文 -

哈工大ACM1002的解题过程

A+B+C


Time limit: 3sec. Submitted: 6774
Memory limit: 32M Accepted: 1143
Source : Unknown


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 Input
1 2 33 4 3

Sample Output
610

提示 请注意32位机上int的表示范围。

------------------------------------------------------
题目如上,看起来很简单的问题

根据提示,我知道简单的用int是不行的
根据1001的示例,写出的程序如下:

#include <iostream>
using namespace std;
int main()
{
long a,b,c;
while(cin>>a>>b>>c)
{
cout<<a+b+c<<endl;
}

return 0;
}



提交的结果是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的表示范围。
----------------------------
于是,改为

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
double sum;
while(cin>>a>>b>>c)
{
sum=a+b+c;
cout<<sum<<endl;
}

return 0;
}


结果,还是wa
用A=B=C=2^31-1 即2147483647 测试,结果是用科学计数法表示的,为2.14748e+09
经调试,才发现,原来a+b的值为-2,即已经越界了。
-----------------------------------
改为:

#include <iostream>
using namespace std;
int main()
{
int a,b,c;
double sum;
while(cin>>a>>b>>c)
{
sum=(double)a+b+c;
cout<<sum<<endl;
}

return 0;
}

结果,wa
调试,结果是正确的,
那么就是输出结果不符合要求
C++double的默认输出好像是科学计数法的,所以修改为:

include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int a,b,c;
double sum;
while(cin>>a>>b>>c)
{
sum=(double)a+b+c;
cout<<fixed<<setprecision(0)<<sum<<endl;
}

return 0;
}


调整fixed输出,找了很久,才发现fixed是对应于scientfic的,英语还是不行
挑战有效位数,使看起来象整数。

提交,accepted。

才算OK。
--------------------------------------------
看起来很简单的东西,很多的细节,还是不会注意到,汗!

Del.icio.us :
Flickr :
Technorati :

- 阅读全文 -

TStrings 参数传递方法

          正常情况下,我们都是习惯于直接把结果当作函数的结果返回
例如:
1)
function
getCommList: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)
function
getCommList: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;
-----------------------------------------------------------------------------------------------------
如此进行,基本上不用考虑对象是深拷贝,浅拷贝的问题
只需进行常规的操作,避免了内存的创建,释放的困扰。
——————————————————————————————————


 



- 阅读全文 -

测试Semagic

Testing Semagic
难得在台湾的microsoft上发现了一些东西
http://www.microsoft.com/taiwan/WindowsXP/windowsmediaplayer/downloads/create.htm
当然包括这个Semagic了
试试先

- 阅读全文 -

传递string到ppLabel

最近一个项目使用ReportBuilder生成报表,有个标题用Label表示,需要从程序中传递到report里,

最先,直接使用 ppLabel编译通过,但是,在第一次生成报表的时候,在这一句代码停留了很长一段时间,导致性能太差。

后来,在report designer里面的calc,看到有label事件,onGetText,知道是赋值给label用的,但是,用了许多方法,都是因为不知道怎么使用calc的代码。曾经想利用report的parameterlist,但还是用不来,只好放弃。

最后,才在Form的inspector看到和calc中看到的一样的事件,原来,可以直接在delphi里面处理这些事件的,直接写pplabel的OnGetText事件,就可以解决了,走了许多的弯路,终于是搞定这问题。

Del.icio.us : ,
Flickr : ,
Technorati : ,

- 阅读全文 -

Testing BlogJet

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

- 阅读全文 -

delphi 即时刷新hint的方法

在delphi中,使用DBCHART,在鼠标移动的时候,用hint显示鼠标当前位置的信�?/P>

Call application.CancelHint to remove the old hint,

the application.ActivateHint to show the new hint.

消息来至

- 阅读全文 -

cvs for Delphi

一直以来,都是使用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了

Del.icio.us :
Flickr :
Technorati :

- 阅读全文 -

热门文章

最新文章

最近回复

  • wfzlxvvgte: 你的文章让我感受到了不一样的风景,谢谢分享。 http://ww...
  • sfiutfecff: 你的文章内容非常用心,让人感动。 http://www.55ba...
  • dyqoaaqpdc: 你的文章内容非常卖力,让人点赞。 http://www.55ba...
  • vrfedcneqp: 你的文章内容非常卖力,让人点赞。 http://www.55ba...
  • wmhoubuazg: 你的文章内容非常用心,让人感动。 http://www.55ba...
  • khhhttrppu: 你的文章内容非常卖力,让人点赞。 http://www.55ba...
  • atjzyxiutr: 你的文章内容非常用心,让人感动。 http://www.55ba...
  • dlamzmkwwi: 你的文章内容非常卖力,让人点赞。 http://www.55ba...
  • predcxvhsz: 《蛋黄人》国产剧高清在线免费观看:https://www.jgz...
  • qmffcradmz: 《逃狱者》剧情片高清在线免费观看:https://www.jgz...

分类

标签

其它