Lemon V1.1 Manual Release
User Manual:
Open the PDF directly: View PDF
.
Page Count: 17

Lemon v1.1 Manual
Crash∗
Contents
1muЩ2
2SC3
2.1 Windows²..................................... 3
2.2 Ubuntu²...................................... 3
3˜5
3.1 ~5˜....................................... 5
3.2 ?Èì˜...................................... 6
4#ï'm9
4.1 V\#ÁK...................................... 9
4.2 g½Âì`².................................. 10
4.2.1 ì«~£CŠó¤............................ 11
4.2.2 ì«~£PascalŠó¤......................... 12
4.3 V\#ÿÁ:..................................... 13
4.4 1þV\ÿÁ:.................................... 13
4.5 gÄV\ÁK..................................... 15
5m©ÿÁ16
6Ѥ117
∗ŠöBlogµhttp://hi.baidu.com/oimaster
1

1muЩ
)öŠ•˜¶OIer§²ž‰Kž²~I‡ÿÁgC§SUÄÏL¤kÿÁêâ"
3Windows²e§˜†¦^CenaŠ•µÿ^‡§¿…•éU•Cena.¡O•ª"
´Cenak˜Û•5µ'X•U3Windowse¦^§ØUÿÁJ‰YK"Óž‘
”POI@ê⩇¶V\ž•'ÞD"Ïd)öû½mu˜±ª²ÿÁ^‡§
±•ÏOIerÿÁgC§S"¿…)ö•éGUI§Smu)˜,§saƒ{ÆS
Qt¥Ä^{§duQt¥Ò´ª²GUI¥§ÐÎÜ·Ž{"
Lemon‘8Ò´ù)§8c|±Windows²ÚUbuntu²"
'uLemonù‡¶¡§Ù¢•vŸoAϹ§´·ÃžÿŽ"Ïd^‡ã
IÒ´e¡Œt…µ
2

2SC
Project Lemon3Google Codeþk˜‡•¡§Ø=^5•;“è§•^5uÙ^‡
ª‡"
2.1 Windows²
^èAì‹mhttp://code.google.com/p/project-lemon•¡§?\Downloads§Œ±ÀJ
e1lemon_v1.1_release_mingw.7z½lemon_v1.1_release_msvc2010.7z"Ù¢
ùü‡‡vŸo«O§•´?È^‡^?ÈìØÓ§c˜‡´MinGW g++ 4.4.0§˜
‡´MSVC 2010"
e1ƒ§†)Ø ,‡8¹e§$1lemon.exeÒUw^‡.¡"
2.2 Ubuntu²
Ubuntu²{§I‡kSC˜óä"‹mªàÑ\Xe·-µ
sudo apt-get install g++ git qt4-dev-tools
,I‡¦^gite1“è§UYÑ\e¡·-µ
git clone https://code.google.com/p/project-lemon
X?\project-lemon8¹ƒ†branch v1.1§¿?1?ȵ
cd project-lemon
git checkout v1.1
3
qmake lemon.pro
make
•ÏLÑ\./lemonÒU$1"
ŒU3ÏLgite1“螬J«Ã{ëÑÖì§ù´du,‡/¯¤±•0
ÏE¤"Œ±Uìe¡•ª)ûµk3ªà¥Ñ\ping www.google.com§ùÒ
UGoogleÑÖìIP§,?UXÚhosts§3Ù¥òcode.google.comIP••
c¡pingIP§2-#Ñ\c¡clone·-"XJ„´Ø1žõpingAg§zgping
IPŒU´ØÓ"
¢3v{^git{§Œ±3Downloadspe1lemon_v1.1_release_src.7z§,
)Ø ,‡8¹§Ñ\c©¥qmakeÚmake·-"
4

3˜
dc¡ãŒ±w§Lemon1˜g$1ž¬ÑV\?Èì•§ùpŒ±Uì
•`²˜?Èì´»§•[`²¡˜!"
3.1 ~5˜
Lemon$1¬Ñ‹m½#ï'mé{µ§kÀJž'4ù‡é{µ§,3ó
äèü¥ÀJ/À‘0§ÒUwe㤫é{µµ
•%@©Š#ÿÁ:ž%@ÿÁ:©Š§Œ±˜•ŒŠ•100"
•%@žm•›#ÿÁ:ž%@žm•›§Œ±˜•ŒŠ•600,000Φ§
=10©¨"
•%@˜m•›#ÿÁ:ž%@˜m•›§Œ±˜•ŒŠ•1024MB"
•?Èžm•›ÿÁž#N?Èì$1••žm§Œ±˜•ŒŠ•600,000Φ"
•ìžm•›éu¦^g½ÂìÁK§ÿÁž#Nì$1••žm§
Œ±˜•ŒŠ•600,000Φ"
•§SŒ•›ÿÁžŒ±É•Œ§SŒ§Œ±˜•ŒŠ•10,240KB§
=10MB"
•ÿÁ‚§êÿÁž•õ#NÓž$1‚§ê§Œ±˜•ŒŠ•8"ž(˜
ŠØ‡LCPUØ%ê§ÄKéu§S$1„ÝK•éŒ"
•Ñ\!ÑÑ©‡*ж3gÄV\ÁKž×£Ñ\ÚÑÑ©‡*ж"XJkõ
‡ž^’;’…m"z«*ж¥•U•¹=©i1Úêi§Œ´¯a"5¿ùp*
ж•øV\ÿÁ:ž^‡|¢©‡¦^§ÿÁž¿Ø¬u"
5

3.2 ?Èì˜
:Âþ•/?Èì0À‘kÒU?\?Èì˜"
Um>\ÒÒ¬ÑyV\?Èì•§1˜Ú´ÀJ¦^ý˜?È옄´Ã
Ę#?Èì"˜„5`§^ý˜˜ÒU÷vŒõêI¦§1˜Ú•‡3I‡
˜?Èìc‹§?\e˜ÚÒUwÀJ´».¡"
gcc!g++ÚfpcO2`z´˜«?Èì‰1“è`z§Œ±˜½§ÝJp§S$1
Ç"ØLIS¿m¥˜„Øméù‘`z"
6

JavaS••›´dJavaJ[Å•›§\•Œ±ÀJØ•›S•"
Python)ºìŒ±)¤˜«¥mi!èJp§S\1„ݧ¢SÿÁ¥ÄvŸo`z
J"
•˜Ú¬4\(@?Èì´»´Ä˜("
ئ^S˜8«?È옧\•Œ±ÀJÃĘ#?Èì"
•?Èì¶¡?Èì3L¥w«¶¡"
•?Èìa.okn«a.ŒÀ§)Òp‰Ñƒ')º"C++!JavaÚPython©
O´n«a.;.“L"
7

•?Èì ˜XJ?Èìa.´DÚ.½I‡?È)º.§ùpÒ‡ÀJ?Èì
˜"éuDÚ.§?Èì¬ò“è=††¤Åì“è§)º.?Èì¬)¤¥m
i!è"
•)ºì ˜XJ?Èìa.´)º.§Ò‡ÀJ)ºì ˜")ºì^u‰1¥
mi!轆)º‰1“è"
•§S*ж^uä=*ж§S¦^ù‡?Èì?ȧXJkõ‡*ж
ž^’;’…m"
•¥mi!è*ж)º.?Èì)¤¥mi!è*ж§~XJava¥mi!è
*ж•.class"
•%@?Èìëê?ÈžD4‰?Èìëê§¥^%sL«Ø‘*ж§S©‡
¶§%s.*L«‘*ж§S©‡¶"~Xgcc?Èëê•-o %s %s.*"
•%@)ºìëê$1)ºìžD4ëê§L«•{Ó?Èìëê"
•¤§·‚2£?Èì+nÀ‘k"
XJ‡íØcÀJ?Èì§Œ±Um>~Ò"m>þe†Þ´^5N?Èì`
k?"?Èì`k?´•µXJÀÃéuÓ˜KJõ«*ж§S§ü3c
¡?Èì¬À•ħӞ3§S*ж˜¥ü3c¡*ж¬k•Ä"
5¿e¡kp?UܧŒ±?U®k?Èì˜"duØÓŠó‰1Çkɧ
ÏdŒ±˜°A½Šóžm•›½˜m•›§•Ò´òžm•›½˜m•›¦þ˜‡¢ê§
éu˜m•›§•Œ±ÀJ†ž"z‡?ÈÑŒ±kõ‡˜§ØÓ˜?Èëê½
)ºì$1ëêØÓ§˜„^uÀJØÓ`zm'":‚¸CþUÜŒ±˜?ÈìÚ
§S$1ž˜‚¸Cþ§˜„^uy$1¤IÄ󥩇Ué"
8

4#ï'm
$1^‡¬Ñ/•H0é{µ§Œ±ÀJ‹m®k'm½ö#ï'm"XJ'4
ù‡é{µ§•Œ±3©‡èü¥ÀJ‹m½#ï'm"
#ï'mé{µXe㤫µ
•'mIK^5w«3^‡IK9þ'mIK"
••©‡¶•'m©‡¦^©‡¶§ùpÑ\ØI‡N‘*ж"
•'m8¹'mƒ'©‡•;8¹"
:Â/(½0§^‡¬3•½'m8¹eMïdataÚsource8¹§Óž„k˜‡
*ж•cdf©‡^5•ÁK!ÀÃ&E"Ù¥datae^5•˜ÁKêâ!g½Â
쩇§source8¹e•˜z‡ÀçS½‰Y©‡"source8¹ez‡©‡
Y“L˜ À穇Y¶¡•Àö¡§z Àé‡Yp†•˜ƒA§S
Ú‰Y©‡§ØI‡2MïÙ¦8¹"
4.1 V\#ÁK
ïáÐ'm§3†>UàIm…ÒŒ±V\#ÁK",3m>˜ÁKƒ'&
E"
•ÁKIKÁK3L¥w«¶¡"
•ÁKa.ÁKa.§8cŒ^ÀJ•kDÚ.Ú‰YJ."
•©‡¶¡§S©‡¶§5¿Ø‡‘*ж"
•Ñ\!ÑÑ©‡¶Ñ\ÑÑ©‡¶§m>Œ±ÀJ¦^IOÑ\½ÑÑ"
•'ª'ÀÃÑÑÚIOÑÑ•ª§8ckÊ«•ªµÅ1'ª!Ñõ
{˜‚Ú›LÎÅ1'ª!Üóäª!¢ê'ªÚg½Âì"Å1'
ª¬˜1˜1'ÀÃÑÑÚIOÑѴăӧØÓXÚ²†1ÎØÓØ¬)
K•"Å1'ª¥•Œ±ÀJÑõ{˜‚Ú›LÎ"Üó䪬N^Linuxe
diff·-?1'§Windowse•U¦^§´‡òdiff.exe˜3Úlemon.exeƒÓ
9

8¹e"¢ê'ª¬Å˜ÖÀÃÑÑÚIOÑÑ¥z˜‡¢ê§©O'Ø´Ä
3#N‰ŒS"g½ÂuìI‡ÀJ˜‡Œ‰1©‡Š•ì§äN`²žë„e˜
‡Ù!"
•?È옕z‡?ÈìÀJ˜§•Ò´ÀJƒA?Èëê§%@¬ÀJ
/default0˜"
•ÀÉY©‡*жéuJ‰YK§ÀÃJ‰Y©‡¥§z‡©‡¬ÚÑ\©
‡¥Ø*橇¶˜@‡é§ùpŒ±˜ÀÃJ‰Y©‡*ж§%
@•out"
4.2 g½Âì`²
g½ÂuìI‡•˜‡Œ‰1©‡§µÿ^‡ÏLò˜ëêD‰ì§¦
ì¼ÑÑ!ÑÑ©‡&E§,ò©(J\•½©‡¥"µÿ^‡¬•ìD
\8‡ëê§Uì^S©OL«IOÑ\©‡!ÀÃÑÑ©‡!IOÑÑ©‡!ÿÁ:÷
©!©êÑÑ©‡!&E©‡"Ù¥©êÑÑ©‡7LMï§I‡•Ù¥\˜‡šK
êL«©"&E©‡Œ±ØMï§XJM\?Û&E§ù&E¬w
«3(J¥"
10

4.2.1 ì«~£CŠó¤
1#include <stdio.h>
2#include <math.h>
3
4int main(int argc, char *argv[]) {
5FILE *fin = fopen(argv[1], "r");
6FILE *fout = fopen(argv[2], "r");
7FILE *ans = fopen(argv[3], "r");
8
9FILE *score = fopen(argv[5], "w");
10 FILE *msg = fopen(argv[6], "w");
11
12 double yourAnswer, stdAnswer;
13 fscanf(fout, "%lf", &yourAnswer);
14 fscanf(ans, "%lf", &stdAnswer);
15
16 if (fabs(yourAnswer - stdAnswer) < 1e-4) {
17 fprintf(score, "%s\n", argv[4]);
18 fprintf(msg, "Correct answer\n");
19 }else {
20 fprintf(score, "0\n");
21 fprintf(msg, "Wrong answer\n");
22 }
23
24 fclose(fin);
25 fclose(fout);
26 fclose(ans);
27 fclose(score);
28 fclose(msg);
29
30 return 0;
31 }
11

4.2.2 ì«~£PascalŠó¤
1program checker;
2
3var
4yourAnswer, stdAnswer : double;
5fin, fout, ans, score, msg : text;
6
7begin
8assign(fin, ParamStr(1));
9reset(fin);
10 assign(fout, ParamStr(2));
11 reset(fout);
12 assign(ans, ParamStr(3));
13 reset(ans);
14 assign(score, ParamStr(5));
15 rewrite(score);
16 assign(msg, ParamStr(6));
17 rewrite(msg);
18
19 readln(fout, yourAnswer);
20 readln(ans, stdAnswer);
21 if abs(yourAnswer - stdAnswer) < 1e-4 then
22 begin
23 writeln(score, ParamStr(4));
24 writeln(msg, ’Correct answer’);
25 end
26 else
27 begin
28 writeln(score, 0);
29 writeln(msg, ’Wrong answer’);
30 end;
31
32 close(fin);
33 close(fout);
34 close(ans);
35 close(score);
36 close(msg);
37 end.
12

4.3 V\#ÿÁ:
3†>À¥˜ÁKm…àIÑyèü§ÀJ/V\ÿÁ:0=ŒV\˜‡#ÿÁ
:§m>¬C¤ÿÁ:˜.¡"3Ñ\©‡¶ÚÑÑ©‡¶¥Ñ\SN§UV\=ŒV
\˜|ÿÁêâ"ùpÑ\ÑÑ©‡7L3data8¹e§¿…•‡Ñ\data8¹ƒ
´»§Xe㤫µ
˜‡ÿÁ:Œ±•¹õ|Ñ\Ñѧ•ªÿÁ:©•¤kÑ\ÑÑ¥©•$@
˜|©ê"
XJ‡?6Ñ\ÑÑ©‡¶§†L‚ƒA ˜VÂ=Œ?U"XJÀ¥˜1½õ1
UDelete…§=Œí؃AÑ\ÑÑ©‡"
3e¡Œ±˜ÿÁ:©Š!žm•›Ú˜m•›"Œ±˜•Œ©Š•100!•
Œžm•›•600,000Φ£10©¨¤!•Œ˜m•›•1024MB"
4.4 1þV\ÿÁ:
3†>À¥˜ÁKm…àIÑyèü§ÀJ/V\õ|ÿÁ:...0¬Ñ˜‡•
§^51þV\ÿÁ:"
•1˜Ú´˜z‡ÿÁ:©Š!žm•›Ú˜m•›"
13

1Ú´˜XÛšÑ\!ÑÑ©‡¶§ùpI‡¬¦^{üKLˆª"Ñ\!
ÑÑ©‡‚ª¥Œ±¦^<1>!<2>!,,!<9>5L«˜‡KLˆª§,3e¡Um>
\ÒŒ±#ïù˜‡ëê¿•½ëê“LKLˆª"I‡5¿´3Ñ\©‡‚ª
ÚÑÑ©‡‚ª¥§z‡ëê©O•UÑy˜g"éu¤këêšSNуө‡§¬
Š•˜|Ñ\ÑÑ"éu‹ëêšSNƒÓÑ\Ñѧ¬˜3Ó˜‡ÿÁ:¥"eã
¤«´˜POIÁK"POIÁK~~¦^/'”ÿÁ0•{§˜‡ÿÁ:Pkõ|
Ñ\ÑÑ©‡§˜„5`ê⩇·¶•ª´K8=©{¡\˜‡êi2\˜‡i1§êi
^5IPÿÁ:?Ò§i1^5IP˜|Ñ\ÑÑ"^㥕ªÒUUìýÏ•ªV
\¤kÑ\ÑÑ©‡"
•˜Ú´ýA(J§XJuy(JÚýÏØÓŒ±£þ˜Ú?Uëê"
14

4.5 gÄV\ÁK
•{zÁK!ÿÁêâV\L§§)öAOOgÄV\ÁKõU"éu˜
ÁK§XJF"UgÄV\§ž3data8¹e•ù‡ÁKM©‡Y§òƒAêâ
©‡˜\©‡Y¥",3››èü¥ÀJ/gÄV\ÁK0§¬Ñy˜‡é{µ§‰Ñé
ŒV\ÁK§,Œ±˜zÁK¤kÿÁ:o©Š!¤kÿÁ:žm•›Ú˜m
•›§(½Ò¬V\ƒAÁK"
gÄV\ÁK%@Š•DÚ.ÁK§V\ÁKIKÚ§S¶¡Ñ´éAÁK
©‡Y¶¡§Ñ\ÑÑ©‡©O2\þ*жinÚout"ê⩇š•{´µŠâ˜
¥½Ñ\ÑÑ©‡*ж§ÀуA©‡§XJ3˜¥Ñ\½ÑÑ©‡*ж•˜§
¬gÄòÑ\©‡*ж˜•in§ÑÑ©‡*ж˜•out;ans",éuØ*ж
©‡¶ƒÓ©‡¬Š•˜|Ñ\Ñѧ¿•ù˜|Ñ\ÑÑMÿÁ:§5¿©‡
¶Œ´¯a"^/gÄV\ÁK0õUV\ÁK§z‡ÿÁ:•¬k˜|Ñ\Ñ
Ñ"z‡ÿÁ:©Š¬^˜o©ŠØ±ÿÁ:‡ê§du©Š•U´ê§v{ئ
ž¬•e"ž¦þyÑ\ÑÑ©‡UUþã•{•˜é§ÄK)(JØŒý
"
Ù¥Œ±˜ÁKo©Š•Œ•100,000§žm•›•Œ•600,000Φ£10©¨¤§˜
m•›•Œ•1024MB"
15

5m©ÿÁ
:Â/ÀÃ0À‘k§Ue¡/M#0UܧҬŠâsource8¹e©‡YV\
L¥Ø•3Àç¿lL¥íØ®²lsource8¹eíØÀÃ",üÂ/ÿÁ
Ü0UÜÒUm©ÿÁ"5¿ÀÃJ§S¶Œ´¯a§7L‡ÚÁK˜¥
©‡¶¡Œš"
À¥ü‡½õ‡ÀÃU/ÿÁ0UÜŒ±=ÿÁÀ¥Ü©ÀçUDelete…½m…
:íØŒ±íØÀ¥ÀÃ"ÿÁ¤ÏL3LÞþüÂŒ±UìƒA‘8üS"VÂ
˜¶ÀÃŒ±w•[ÿÁ(J"
16
6Ѥ1
3/››0èü¥ÀJ/Ѥ10Œ±ò(JѤHTML©½L‚©‡"핦
^HTML‚ª§Œ±Ñ(J&E§Ñ¤L‚{•Uw«ÀÃzK©Ú
o©"L‚kü«‚ªŒ±ÀJµCSV‚ªÚXLS‚ª£=WindowsŒ^¿‡SCExcel¤"
CSV‚ª´ÏÒ©…ΧõêL‚?6^‡ÑUw"XLS‚ªÑI‡|^ActiveXN
^Excel§\„Ýš~ú§ØšAOI‡§ÄKØí•¦^"
d§/››0èü¥„Jøïá1?nÿÁ8¹õU§ù‡õU¬3'm8¹eM
ïselftest8¹§p¡¬•zÁKM©‡Y§¿gÄ)¤ƒA1?nÿÁ©‡§
ÀÕ‡ò?ÈÐŒ‰1©‡E›8¹¥§=Œé§S?1{üÿÁ"
17