来来来,看看你的水平有多高!——Aimingoo送分项目(超过600大元) (0分)

  • 主题发起人 aimingoo
  • 开始时间
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个乌七糟八的论坛上看到一个“请问有多少编程高手”的贴,看那些回贴,简直不知
所云!!!
为此,特在大富翁上展开一项考验大家编程水平的活动。我试列出如下一道测试题,大家
看看可否?——说实话,我自己都没有把握~~~~~~~~~~~
题目:
  [red]请以不超过512字节(不含空格和备注)的源代码来表现你在Delphi的某一方面或者某些方
面的编程实力。[/red]
要求:
[red]1. 字节数越少越好
2. 要求程序必须能被编译运行
3. 尽可能多地反应你的编程水平和代码风格
  4. 除了Delphi自身的单元外,不允许使用其它扩展单元
5. Form窗体代码.DFM文件不计算字节数。但计算它在.PAS中的相关定义的字节数
6. 尽可能完成一件工作,或者体现某项技巧/技术,或者解释Delphi中某种现象、规则或优势[/red]
其它:
[purple]本计划分值600分,前三名分值以3:2:1的比例分配。强烈欢迎其它富翁提供赞助。另,邀请
由本论坛前50名的富翁作为列席评委,并邀请yysun出任评委会主席。
大家有什么想法请跟贴。[/purple]
 
W

wjiachun

Unregistered / Unconfirmed
GUEST, unregistred user!
好题!第一名的300分我来赞助好了!
 
F

forss

Unregistered / Unconfirmed
GUEST, unregistred user!
应该是本论坛的前50名富翁每人出600分作为奖品.。。[:D]
另外,,报名时间和截止时间应该定下来吧,,这个提议非常棒。。。[:)]
 
L

luyear

Unregistered / Unconfirmed
GUEST, unregistred user!
第六条太模糊了些,512字节,看来只能写没有表单的程序了!!!
我光new一个Form就有80字节(不含空格和注解)
要是定义几个按钮,事件,很快就超过512了!!确实有意思
以下代码技术含量不高,纯属搞笑,但不是没有用,在写敏感字节的时候
有人偷看,就运行这个程序了!!哈哈哈
program MASK;
uses
windows,
Graphics;
{$R *.res}
var
DC:TCanvas;
i,j:integer;
begin
DC:=tcanvas.create;
DC.handle:=getdc(0);
for i:= 1 to 400 do
begin
DC.MoveTo(400,300);
DC.LineTo(2*i,1);
DC.MoveTo(400,300);
DC.LineTo(2*i,600);
DC.MoveTo(400,300);
DC.LineTo(1,round(i*1.5));
DC.MoveTo(400,300);
DC.LineTo(800,round(i*1.5));
end;
DC.Pen.Color:=clred;
For j:= 1 to 120 do
begin
DC.moveTo(600,1);
for i:= 1 to 800 do
DC.LineTo(i,600-round(i*i/(Sqr(j)/2)));
DC.moveTo(1,1);
for i:= 1 to 800 do
DC.LineTo(i,round(i*i/(Sqr(j)/2)));
end;
DC.Font.Size:=72 ;
DC.Font.Color:=clblue;
DC.Brush.Color:=clbackground;
DC.textout(10,100,'看不到了吧!');
end.
 
Y

yysun

Unregistered / Unconfirmed
GUEST, unregistred user!
做主席啊?好!
本主席出实物奖励:第一名:一件 Borland 公司的宣传 Kylix 的 T shirt.[8D]
投稿现在开始。截至日期 2001年10月31日。
 
S

Sachow

Unregistered / Unconfirmed
GUEST, unregistred user!
建议将字节数限制扩为2K,仅仅512字节恐怕太小了点,不够做窗体界面的程序,只能做
控制台程序,如果不能做窗体界面的程序,可能就成为比PASCAL和算法的比赛了。
 

小人物

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么比,总得有个题目吧?
 
W

wjiachun

Unregistered / Unconfirmed
GUEST, unregistred user!
[8D]各位审题不认真吧,512字节说的是源代码
 

小人物

Unregistered / Unconfirmed
GUEST, unregistred user!
没有题目,怎么比较???
如果大家爱写什么就写什么,
比如一个人写网络,一个人写数据库,风马牛不相及,
请问主考官,你如何分出谁优谁劣的???
主考官,你不会是为了骗取源代码吧?
猜测而已,请主考官不要介意。
同时我建议主考官制定一个更详细的题目,要具体化才好比较!
 

一个过客

Unregistered / Unconfirmed
GUEST, unregistred user!
谁来负责数字数?要考虑空格。先写一个数字数的程序把?
 
S

Sachow

Unregistered / Unconfirmed
GUEST, unregistred user!
当然有认真审题并且经过实践了,如果多往窗体上放两个控件,再来几个响应控件事件的
过程,光是引用单元和定义窗体类的代码就超过数百字节了!
 
W

wsn

Unregistered / Unconfirmed
GUEST, unregistred user!
入收藏夹先
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
哦,哈哈。我倒不必骗一个512字节的源代码来玩。不过,反过来想,就算是骗,也是
帮大富翁里的大小富翁和穷人们骗的啊,大家都在看嘛。
其实这是个提高编程水平的项目,由于不限定范围,所以空间大得多。但要分出谁优谁
劣,我敢说是没问题的。我打赌最后的评比会有详细的文字说明,也会让大家满意。
我们公司在招聘程序员时,就出了30多道题,每道题都没设分值,也声明不考虑应答者
回答的数量和完整度。然后由公司6名涉及不同方面的项目负责人,在600多份答案中,
根据答案情况来判定应答者的能力。
结果非常棒,我们找到了我们需要的开发人员。
有机会我倒可能将这三十多道题也发到大富翁来。:)
至于512字节能做什么,我倒是可以提供一段代码,大家做参考。:)
http://www.delphibbs.com/delphibbs/dispq.asp?lid=357080
里面所提到的代码我已经形成代码包,并包含Delphi3的编译器。请在
这儿下载。你可以用这个小的包来做VxD了。哈哈~~~~~``
http://202.102.247.230/soft/VxDPack.zip
一个过客的想法倒是不错。哈哈。能考核到字符串的处理能力。如果
参考QStrings的代码,还可以考核ASM上面的能力呢。:)
另外,请大家注意,512字节不包含那些无用的空格,例如为了代码格式而
在“a := b”的“:=”两边所留的空格。数字符的程序最终要能截去这些
字符,还能让代码正常编译。:)
此外。接受yysun的建议,并作出如下规则:
-------------
[red] 7. 投稿现在开始。截至日期 2001年10月31日。
8. 获奖者同时将获本论坛成员对本活动的捐赠。捐赠受奖情况由捐赠者指定。[/red]
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
Sachow,你将form名改成F,再将onXXXXXXX的事件处理程序名重新定义一下试试?
例如:
----------
原来是:
procedure TForm1.FormCreate(Sender: TObject);
begin
showMessage('test');
end;

修改后:
procedure TF.ONFC(S: TObject);
//form.onCreate()
begin
showMessage('test');
end;
---------------
哈哈,要尽量缩减变量名。——这一招是我在写javaScript和HTML时常用的。因为
字节数直接决定到网页调入速度。:)
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
luyear的程序我运行了,的确有点意思,可以成为大家的参考范本。哈哈哈~~~~~~~
但经过我手工的代码调整之后,仍然有608字节。因此仍不够精练。我试将代码略修改附
后。同时,请luyear包涵。:)
---------------------------------------------
program M;
uses windows, Graphics;
var i,j:integer;
begin
with tcanvas.create do
begin
handle:=getdc(0);
for i:=1 to 400 do
begin
MoveTo(400,300);
LineTo(2*i,1);
MoveTo(400,300);
LineTo(2*i,600);
MoveTo(400,300);
LineTo(1,round(i*1.5));
MoveTo(400,300);
LineTo(800,round(i*1.5))
end;
Pen.Color:=clred;
For j:=1 to 120 do
begin
moveTo(600,1);
for i:=1 to 800 do
LineTo(i,600-round(i*i/(Sqr(j)/2)));
moveTo(1,1);
for i:=1 to 800 do
LineTo(i,round(i*i/(Sqr(j)/2)))
end;
Font.Size:=72 ;
Font.Color:=clblue;
Brush.Color:=clbackground;
textout(10,100,'看不到了吧!')
end
end.
---------------------------------------------
这段程序被我手工的代码调整后,变成550字节,并仍然可以编译执行。这个550字节的文件是这样的(准备写数字符的程序的同志们看齐了^-^):
program M;uses windows, Graphics;var i,j:integer;
begin
with tcanvas.create do
begin
handle:=getdc(0);for i:=1 to 400 do
begin
MoveTo(400,300);LineTo(2*i,1);MoveTo(400,300);LineTo(2*i,600);MoveTo(400,300);LineTo(1,round(i*1.5));MoveTo(400,300);LineTo(800,round(i*1.5)) end;
Pen.Color:=clred;For j:=1 to 120 do
begin
moveTo(600,1);for i:=1 to 800 do
LineTo(i,600-round(i*i/(Sqr(j)/2)));moveTo(1,1);for i:=1 to 800 do
LineTo(i,round(i*i/(Sqr(j)/2))) end;
Font.Size:=72 ;Font.Color:=clblue;Brush.Color:=clbackground;textout(10,100,'看不到了吧!') end end.
不过无论怎样做,luyear的程序要达到题目要求,还得再减少字节数。哈哈。:)
 
S

Sachow

Unregistered / Unconfirmed
GUEST, unregistred user!
哦,短变量名,好办法!
 
B

Brave

Unregistered / Unconfirmed
GUEST, unregistred user!
往那里投,form如何投?
 
C

creation-zy

Unregistered / Unconfirmed
GUEST, unregistred user!
to aimingoo:
缩短变量名在JavaScript中的确能起一定的作用,但在Delphi中,这是毫无意义的(请原谅我语气重了一些),
我认为因该计算单词的个数,而不是整个文本的长度(这样什么空格、换行自然都不会被计算在内)。
这个点子如何?
 
A

aimingoo

Unregistered / Unconfirmed
GUEST, unregistred user!
to creation-zy:
的确是这样的。Delphi是编译的,一个字符的变量和十个字符的变量名在目
标代码中都体现不出来。
最初这样想的时候并没有考虑太细。事实上在一些国外的类型比赛中,都是
以目标文件大小来考查的。
我的确对这个字数限制考虑得不是太细。但最原本的思想是要大家在思想的
一闪中完成,这取决于对Delphi的熟练程度和细节的了解。也更多取决于思
路。所以代码不应当太长,否则大家也没那么多时间。
缩短变量名实际上已经与我们平常的编辑有违背了。因为大家平常都要考虑
代码可读性,变量名长点,能体现一定含义的最好。而在这里,我们为了字
节数考虑,还要尽可能缩短它。的确有些不合理。
我的想法是尽可能以精少的代码来完成这些,而不在乎512字节是否符合某些
代码格式规范。
所以我还是赞成有人写一个计算“有效字符数”的程序出来的。——说不准也
在512字节以内呢。:)
大家还有什么想法的尽管提啊。活动的规则还可以再做一定修改的。:)
 

Similar threads

S
回复
0
查看
912
SUNSTONE的Delphi笔记
S
S
回复
0
查看
743
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
990
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部