(文档请参考:http://blog.csdn.net/CXXSoft/archive/2006/09/28/1299731.aspx)

3、运行效果

经典面试问题:12小球问题算法(源码)

4、 算法源码

经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)...{
经典面试问题:12小球问题算法(源码)作品名称:小球问题通用解决方案
经典面试问题:12小球问题算法(源码)开发作者:成晓旭
经典面试问题:12小球问题算法(源码)开发时间:2003年01月22日
经典面试问题:12小球问题算法(源码)完成时间:2003年01月23日
经典面试问题:12小球问题算法(源码)修改时间1:2003年11月14日
经典面试问题:12小球问题算法(源码)增加用户问题条件设置绘制方法
经典面试问题:12小球问题算法(源码)修改时间2:2003年11月18日
经典面试问题:12小球问题算法(源码)增加比较过程的记录功能
经典面试问题:12小球问题算法(源码)}

经典面试问题:12小球问题算法(源码)unitCommon;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
interface
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)uses
经典面试问题:12小球问题算法(源码)Windows,SysUtils,Classes,Graphics,BallType;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//清除画面方法
经典面试问题:12小球问题算法(源码)
procedureClearCanvas(aCanvas:TCanvas;aRect:TRect);
经典面试问题:12小球问题算法(源码)
//小球问题条件设置方法
经典面试问题:12小球问题算法(源码)
procedureDraw_Ball_Config(
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)aClearRect:TRect;
经典面试问题:12小球问题算法(源码)bShowTrace:Boolean);
经典面试问题:12小球问题算法(源码)
//小球问题解决方法
经典面试问题:12小球问题算法(源码)
procedureSerach_Error_Ball(
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)aClearRect:TRect;
经典面试问题:12小球问题算法(源码)bShowTrace:Boolean);
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)strLog1:AnsiString;
经典面试问题:12小球问题算法(源码)strLog2:AnsiString;
经典面试问题:12小球问题算法(源码)strLog3:AnsiString;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)implementation
经典面试问题:12小球问题算法(源码)
//单元内部常量定义
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)Fir_Pivot_X
=200;
经典面试问题:12小球问题算法(源码)Fir_Pivot_Y
=80;
经典面试问题:12小球问题算法(源码)Hint_X
=10;
经典面试问题:12小球问题算法(源码)One_DrawDelta
=140;
经典面试问题:12小球问题算法(源码)One_PreDelta
=70;
经典面试问题:12小球问题算法(源码)One_FroDelta
=30;
经典面试问题:12小球问题算法(源码)strADyB
='比较:A端(重)>B端(轻)'+CHR(13)+CHR(10);
经典面试问题:12小球问题算法(源码)strAXDB
='比较:A端=B端'+CHR(13)+CHR(10);
经典面试问题:12小球问题算法(源码)strAXyB
='比较:A端(轻)<B端(重)'+CHR(13)+CHR(10);
经典面试问题:12小球问题算法(源码)A_Team
='A组:';
经典面试问题:12小球问题算法(源码)B_Team
='B组:';
经典面试问题:12小球问题算法(源码)preTail0
='号球'+CHR(13)+CHR(10);
经典面试问题:12小球问题算法(源码)preTail1
='号球';
经典面试问题:12小球问题算法(源码)proHead
='结论:异常球在[';
经典面试问题:12小球问题算法(源码)lastResult
='结论:异常球是';
经典面试问题:12小球问题算法(源码)nextHint
=CHR(13)+CHR(10)+'启示:';
经典面试问题:12小球问题算法(源码)ErrorHint
='命题不严密,请检查设置条件!';
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)functionSearchBall_At4(AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)A,G:arrayofByte;varvErr_Ball_Order:Byte;
经典面试问题:12小球问题算法(源码)varvIsHeavy:Boolean;ACanvas:TCanvas;bShowTrace:Boolean):Boolean;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)A2,B2:Word;
经典面试问题:12小球问题算法(源码)A3,B3:Word;
经典面试问题:12小球问题算法(源码)Loop:Word;
经典面试问题:12小球问题算法(源码)bNumber:Byte;
经典面试问题:12小球问题算法(源码)bPartA,bPartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)bCmpPara:TC_CmpPara;
经典面试问题:12小球问题算法(源码)str:AnsiString;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=0;
经典面试问题:12小球问题算法(源码)vIsHeavy:
=False;
经典面试问题:12小球问题算法(源码)A2:
=AllBall[A[1]].Weight+AllBall[A[2]].Weight+AllBall[G[1]].Weight;
经典面试问题:12小球问题算法(源码)B2:
=AllBall[A[3]].Weight+AllBall[G[2]].Weight+AllBall[G[3]].Weight;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)str:
=A_Team+IntToStr(AllBall[A[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[G[1]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
=B_Team+IntToStr(AllBall[A[3]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[G[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[G[3]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)bNumber:
=3;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[1]];
经典面试问题:12小球问题算法(源码)bPartA[
1]:=AllBall[A[2]];
经典面试问题:12小球问题算法(源码)bPartA[
2]:=AllBall[G[1]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[A[3]];
经典面试问题:12小球问题算法(源码)bPartB[
1]:=AllBall[G[2]];
经典面试问题:12小球问题算法(源码)bPartB[
2]:=AllBall[G[3]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifA2=B2then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A3:
=AllBall[A[4]].Weight;
经典面试问题:12小球问题算法(源码)B3:
=AllBall[G[1]].Weight;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strAXDB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[A[4]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排3余1】';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
='用任一正常球与之比较,即可知异常球是偏轻偏重!';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+nextHint+str;
经典面试问题:12小球问题算法(源码)withbCmpPara
do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Pre_LNumber:
=4;
经典面试问题:12小球问题算法(源码)Fro_LNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(Pre_Latency,Pre_LNumber);
经典面试问题:12小球问题算法(源码)SetLength(Fro_Latency,Fro_LNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0toPre_LNumber-1do
经典面试问题:12小球问题算法(源码)Pre_Latency[Loop]:
=AllBall[Loop+9];
经典面试问题:12小球问题算法(源码)Fro_Latency[
0]:=AllBall[A[4]];
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Latency(Point(Hint_X,Fir_Pivot_Y
+One_DrawDelta-One_PreDelta),
经典面试问题:12小球问题算法(源码)Point(Hint_X,Fir_Pivot_Y
+One_DrawDelta+One_FroDelta),
经典面试问题:12小球问题算法(源码)bCmpPara,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)bNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[4]];
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[G[1]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta*2),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifA3=B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=0;
经典面试问题:12小球问题算法(源码)strLog3:
='异常球与正常球一样重!'+ErrorHint;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[4];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=A3>B3;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A3:
=AllBall[A[1]].Weight;
经典面试问题:12小球问题算法(源码)B3:
=AllBall[A[2]].Weight;
经典面试问题:12小球问题算法(源码)
ifA2>B2then
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strADYB
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strAXYB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[A[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[3]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排1余3】';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
='下一轮必须在本轮比较的同一端的两球中进行.即取:'
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)
经典面试问题:12小球问题算法(源码)
+'号球,在推算结果时,还必须用到此轮A、B端谁轻谁重!';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+nextHint+str;
经典面试问题:12小球问题算法(源码)bNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[1]];
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[A[2]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta*2),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifA3=B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[3];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=A2<B2;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA2>B2then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[1]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[2];
经典面试问题:12小球问题算法(源码)
//IsHeavy:=True;
经典面试问题:12小球问题算法(源码)
end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[2]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[1];
经典面试问题:12小球问题算法(源码)
//IsHeavy:=NOTTrue;
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)vIsHeavy:
=A2>B2;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)Result:
=vErr_Ball_Order<>0;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)functionSearchBall_At8(AllBall:arrayofTC_Ball;IsAdyB:Boolean;
经典面试问题:12小球问题算法(源码)A,B,G:arrayofByte;varvErr_Ball_Order:Byte;
经典面试问题:12小球问题算法(源码)varvIsHeavy:Boolean;ACanvas:TCanvas;bShowTrace:Boolean):Boolean;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)A2,B2:Word;
经典面试问题:12小球问题算法(源码)A3,B3:Word;
经典面试问题:12小球问题算法(源码)bNumber:Byte;
经典面试问题:12小球问题算法(源码)bPartA,bPartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)senPivot,thrPivot:TPoint;
经典面试问题:12小球问题算法(源码)str:AnsiString;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=0;
经典面试问题:12小球问题算法(源码)vIsHeavy:
=False;
经典面试问题:12小球问题算法(源码)A2:
=AllBall[A[1]].Weight+AllBall[A[2]].Weight+AllBall[B[1]].Weight;
经典面试问题:12小球问题算法(源码)B2:
=AllBall[A[3]].Weight+AllBall[B[2]].Weight+AllBall[G[1]].Weight;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)str:
=A_Team+IntToStr(AllBall[A[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[1]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
=B_Team+IntToStr(AllBall[A[3]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[G[1]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)bNumber:
=3;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[1]];
经典面试问题:12小球问题算法(源码)bPartA[
1]:=AllBall[A[2]];
经典面试问题:12小球问题算法(源码)bPartA[
2]:=AllBall[B[1]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[A[3]];
经典面试问题:12小球问题算法(源码)bPartB[
1]:=AllBall[B[2]];
经典面试问题:12小球问题算法(源码)bPartB[
2]:=AllBall[G[1]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
ifA2=B2then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A3:
=AllBall[B[3]].Weight;
经典面试问题:12小球问题算法(源码)B3:
=AllBall[B[4]].Weight;
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strAXDB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[A[4]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[3]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[4]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排5余3】';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
='下一轮必须在本轮比较的同一端的两球中进行.即取:'
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[3]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[4]].Order)
经典面试问题:12小球问题算法(源码)
+'号球,在推算结果时,还必须用到此轮A、B端谁轻谁重!';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+nextHint+str;
经典面试问题:12小球问题算法(源码)bNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[B[3]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[B[4]];
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta*2),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifA3=B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[4];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=IsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifIsAdyBthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[4]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[3];
经典面试问题:12小球问题算法(源码)
//IsHeavy:=NOTIsAdyB;
经典面试问题:12小球问题算法(源码)
end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[3]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[4];
经典面试问题:12小球问题算法(源码)
//IsHeavy:=NOTIsAdyB;
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)vIsHeavy:
=NOTIsAdyB;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA2>B2then
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strADYB
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+strAXYB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[A[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[3]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[1]].Order)+','
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[2]].Order);
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排3余5】';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+str;
经典面试问题:12小球问题算法(源码)str:
='此时,必须综合分析近两次的比较结果.当近两次比较的天平倾向相同时,'
经典面试问题:12小球问题算法(源码)
+'必须比较共同产生倾向因素的两个球;倾向相反时,'
经典面试问题:12小球问题算法(源码)
+'任取一个正常球与A组第3个球('
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[A[2]].Order)
经典面试问题:12小球问题算法(源码)
+')或B组第1个球('
经典面试问题:12小球问题算法(源码)
+IntToStr(AllBall[B[1]].Order)
经典面试问题:12小球问题算法(源码)
+')比较.';
经典面试问题:12小球问题算法(源码)strLog2:
=strLog2+nextHint+str;
经典面试问题:12小球问题算法(源码)
if((IsAdyB=True)and(A2>B2))or((IsAdyB=False)and(A2<B2))then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A3:
=AllBall[A[1]].Weight;
经典面试问题:12小球问题算法(源码)B3:
=AllBall[A[2]].Weight;
经典面试问题:12小球问题算法(源码)bNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[1]];
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[A[2]];
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta*2),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
ifA3=B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[2];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=NOTIsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
elseifA2>B2then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[1]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[2];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=IsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
elseifA2<B2then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA3>B3then
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[2]
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[1];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=IsAdyB;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
elseif((IsAdyB=True)and(A2<B2))or((IsAdyB=False)and(A2>B2))then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A3:
=AllBall[A[3]].Weight;
经典面试问题:12小球问题算法(源码)B3:
=AllBall[G[1]].Weight;
经典面试问题:12小球问题算法(源码)bNumber:
=1;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)bPartA[
0]:=AllBall[A[1]];
经典面试问题:12小球问题算法(源码)bPartB[
0]:=AllBall[G[1]];
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y
+One_DrawDelta*2),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
ifA3=B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=B[1];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=NOTIsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
elseifA3>B3then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifIsAdyBthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[3];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=IsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=0;
经典面试问题:12小球问题算法(源码)strLog3:
='"偏轻"的异常球>正常球!'+ErrorHint;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifIsAdyBthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=0;
经典面试问题:12小球问题算法(源码)strLog3:
='"偏重"的异常球<正常球!'+ErrorHint;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)vErr_Ball_Order:
=A[3];
经典面试问题:12小球问题算法(源码)vIsHeavy:
=IsAdyB;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)Result:
=vErr_Ball_Order<>0;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureSerach_Error_Ball(
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;aClearRect:TRect;
经典面试问题:12小球问题算法(源码)bShowTrace:Boolean);
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)A,B:Word;
经典面试问题:12小球问题算法(源码)Loop:Word;
经典面试问题:12小球问题算法(源码)BufC:array[
0..4]ofByte;
经典面试问题:12小球问题算法(源码)BufT:array[
0..8]ofByte;
经典面试问题:12小球问题算法(源码)BufA,BufB:array[
0..4]ofByte;
经典面试问题:12小球问题算法(源码)BufG:array[
0..4]ofByte;
经典面试问题:12小球问题算法(源码)bOrder:Byte;
经典面试问题:12小球问题算法(源码)bHeavy:Boolean;
经典面试问题:12小球问题算法(源码)FoundBall:TC_SearchBall;
经典面试问题:12小球问题算法(源码)str:AnsiString;
经典面试问题:12小球问题算法(源码)bNumber:Byte;
经典面试问题:12小球问题算法(源码)bPartA,bPartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)bCmpPara:TC_CmpPara;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A:
=0;
经典面试问题:12小球问题算法(源码)strLog1:
='';
经典面试问题:12小球问题算法(源码)strLog2:
='';
经典面试问题:12小球问题算法(源码)strLog3:
='';
经典面试问题:12小球问题算法(源码)ClearCanvas(aCanvas,aClearRect);
经典面试问题:12小球问题算法(源码)str:
=A_Team;
经典面试问题:12小球问题算法(源码)
forLoop:=1to4do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)A:
=A+AllBall[Loop].Weight;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[Loop].Order)+',';
经典面试问题:12小球问题算法(源码)
//bPartA[Loop]:=AllBall[Loop];
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+str;
经典面试问题:12小球问题算法(源码)B:
=0;
经典面试问题:12小球问题算法(源码)str:
=B_Team;
经典面试问题:12小球问题算法(源码)
forLoop:=5to8do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)B:
=B+AllBall[Loop].Weight;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[Loop].Order)+',';
经典面试问题:12小球问题算法(源码)
//bPartB[Loop]:=AllBall[Loop];
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)str:
=str+preTail0;
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+str;
经典面试问题:12小球问题算法(源码)bNumber:
=4;
经典面试问题:12小球问题算法(源码)SetLength(bPartA,bNumber);
经典面试问题:12小球问题算法(源码)SetLength(bPartB,bNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0tobNumber-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)bPartA[Loop]:
=AllBall[Loop+1];
经典面试问题:12小球问题算法(源码)bPartB[Loop]:
=AllBall[Loop+bNumber+1];
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)Balance_One_Compare(Point(Fir_Pivot_X,Fir_Pivot_Y),
经典面试问题:12小球问题算法(源码)bNumber,bPartA,bPartB,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifA=Bthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+strAXDB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)
forLoop:=1to4do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)BufC[Loop]:
=AllBall[8+Loop].Order;
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[8+Loop].Order)+',';
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排8余4】';
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+str;
经典面试问题:12小球问题算法(源码)
forLoop:=1to8do
经典面试问题:12小球问题算法(源码)BufT[Loop]:
=AllBall[Loop].Order;
经典面试问题:12小球问题算法(源码)withbCmpPara
do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Pre_LNumber:
=12;
经典面试问题:12小球问题算法(源码)Fro_LNumber:
=4;
经典面试问题:12小球问题算法(源码)SetLength(Pre_Latency,Pre_LNumber);
经典面试问题:12小球问题算法(源码)SetLength(Fro_Latency,Fro_LNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0toPre_LNumber-1do
经典面试问题:12小球问题算法(源码)Pre_Latency[Loop]:
=AllBall[Loop+1];
经典面试问题:12小球问题算法(源码)
forLoop:=0toFro_LNumber-1do
经典面试问题:12小球问题算法(源码)Fro_Latency[Loop]:
=AllBall[Loop+9];
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Latency(Point(
10,Fir_Pivot_Y-One_PreDelta),Point(10,Fir_Pivot_Y+One_FroDelta),
经典面试问题:12小球问题算法(源码)bCmpPara,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifSearchBall_At4(AllBall,BufC,BufT,bOrder,bHeavy,ACanvas,bShowTrace)then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)FoundBall.Ball:
=AllBall[bOrder];
经典面试问题:12小球问题算法(源码)FoundBall.IsHeavy:
=bHeavy;
经典面试问题:12小球问题算法(源码)
ifFoundBall.IsHeavythen
经典面试问题:12小球问题算法(源码)FoundBall.ErrorMsg:
='【偏重】'
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)FoundBall.ErrorMsg:
='【偏轻】';
经典面试问题:12小球问题算法(源码)str:
=''+IntToStr(FoundBall.Ball.Order)+'】='
经典面试问题:12小球问题算法(源码)
+IntToStr(FoundBall.Ball.Weight)+''+FoundBall.ErrorMsg;
经典面试问题:12小球问题算法(源码)strLog3:
=lastResult+str;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifA>Bthen
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+strADYB
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+strAXYB;
经典面试问题:12小球问题算法(源码)str:
=proHead;
经典面试问题:12小球问题算法(源码)
forLoop:=1to8do
经典面试问题:12小球问题算法(源码)str:
=str+IntToStr(AllBall[Loop].Order)+',';
经典面试问题:12小球问题算法(源码)str:
=str+']'+preTail1+'【排4余8】';
经典面试问题:12小球问题算法(源码)strLog1:
=strLog1+str;
经典面试问题:12小球问题算法(源码)
forLoop:=1to4do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)BufA[Loop]:
=AllBall[Loop].Order;
经典面试问题:12小球问题算法(源码)BufB[Loop]:
=AllBall[4+Loop].Order;
经典面试问题:12小球问题算法(源码)BufG[Loop]:
=AllBall[8+Loop].Order;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)withbCmpPara
do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Pre_LNumber:
=12;
经典面试问题:12小球问题算法(源码)Fro_LNumber:
=4;
经典面试问题:12小球问题算法(源码)SetLength(Pre_Latency,Pre_LNumber);
经典面试问题:12小球问题算法(源码)SetLength(Fro_Latency,Fro_LNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0toPre_LNumber-1do
经典面试问题:12小球问题算法(源码)Pre_Latency[Loop]:
=AllBall[Loop+1];
经典面试问题:12小球问题算法(源码)
forLoop:=0toFro_LNumber-1do
经典面试问题:12小球问题算法(源码)Fro_Latency[Loop]:
=AllBall[Loop+9];
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Balance_One_Latency(Point(Hint_X,Fir_Pivot_Y
-One_PreDelta),Point(10,Fir_Pivot_Y+One_FroDelta),
经典面试问题:12小球问题算法(源码)bCmpPara,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
ifSearchBall_At8(AllBall,A>B,BufA,BufB,BufG,bOrder,bHeavy,ACanvas,bShowTrace)then
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)FoundBall.Ball:
=AllBall[bOrder];
经典面试问题:12小球问题算法(源码)FoundBall.IsHeavy:
=bHeavy;
经典面试问题:12小球问题算法(源码)
ifFoundBall.IsHeavythen
经典面试问题:12小球问题算法(源码)FoundBall.ErrorMsg:
='【偏重】'
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)FoundBall.ErrorMsg:
='【偏轻】';
经典面试问题:12小球问题算法(源码)str:
=''+IntToStr(FoundBall.Ball.Order)+'】='
经典面试问题:12小球问题算法(源码)
+IntToStr(FoundBall.Ball.Weight)+''+FoundBall.ErrorMsg;
经典面试问题:12小球问题算法(源码)strLog3:
=lastResult+str;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
//MessageBox(0,PChar(Str),'小球问题',MB_OKorMB_IConInformation);
经典面试问题:12小球问题算法(源码)

经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureDraw_Ball_Config(
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)aClearRect:TRect;
经典面试问题:12小球问题算法(源码)bShowTrace:Boolean);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)ClearCanvas(aCanvas,aClearRect);
经典面试问题:12小球问题算法(源码)Process_Initial_Ball(
经典面试问题:12小球问题算法(源码)Point(
0,Fir_Pivot_Y-One_PreDelta-10),
经典面试问题:12小球问题算法(源码)AllBall,ACanvas,bShowTrace);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureClearCanvas(aCanvas:TCanvas;aRect:TRect);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)withaCanvas
do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Brush.Style:
=bsSolid;
经典面试问题:12小球问题算法(源码)Brush.Color:
=clWhite;
经典面试问题:12小球问题算法(源码)FillRect(aRect);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)end.

5、 显示绘制源码

经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)...{
经典面试问题:12小球问题算法(源码)作品名称:小球问题通用解决方案
经典面试问题:12小球问题算法(源码)开发作者:成晓旭
经典面试问题:12小球问题算法(源码)开发时间:2003年01月22日
经典面试问题:12小球问题算法(源码)完成时间:2003年01月22日
经典面试问题:12小球问题算法(源码)修改时间1:2003年11月15日
经典面试问题:12小球问题算法(源码)增加小于问题初始状态绘制方法
经典面试问题:12小球问题算法(源码)}

经典面试问题:12小球问题算法(源码)unitBallType;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
interface
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)uses
经典面试问题:12小球问题算法(源码)Dialogs,Windows,Classes,SysUtils,Graphics;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)type
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题:小球抽象数据类型
经典面试问题:12小球问题算法(源码)
TC_Ball=PackedRecord
经典面试问题:12小球问题算法(源码)Order:Byte;
经典面试问题:12小球问题算法(源码)Weight:Byte;
经典面试问题:12小球问题算法(源码)BgColor:TColor;
经典面试问题:12小球问题算法(源码)TextColor:TColor;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题:被寻找的目标小球抽象数据类型
经典面试问题:12小球问题算法(源码)
TC_SearchBall=PackedRecord
经典面试问题:12小球问题算法(源码)Ball:TC_Ball;
经典面试问题:12小球问题算法(源码)IsHeavy:Boolean;
经典面试问题:12小球问题算法(源码)ErrorMsg:AnsiString;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题:一次比较的参数的抽象数据类型
经典面试问题:12小球问题算法(源码)
TC_CmpPara=PackedRecord
经典面试问题:12小球问题算法(源码)Pre_LNumber:Byte;
经典面试问题:12小球问题算法(源码)Pre_Latency:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)Fro_LNumber:Byte;
经典面试问题:12小球问题算法(源码)Fro_Latency:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
//小球问题:小球抽象类
经典面试问题:12小球问题算法(源码)
TC_Ball_Class=class
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
private
经典面试问题:12小球问题算法(源码)bDrawOrder:Boolean;
经典面试问题:12小球问题算法(源码)bAbstractBall:TC_Ball;
经典面试问题:12小球问题算法(源码)bStartPoint:TPoint;
经典面试问题:12小球问题算法(源码)bSize:Integer;
经典面试问题:12小球问题算法(源码)bTextColor:TColor;
经典面试问题:12小球问题算法(源码)bBgColor:TColor;
经典面试问题:12小球问题算法(源码)bColorChanged:Boolean;
经典面试问题:12小球问题算法(源码)bCanvas:TCanvas;
经典面试问题:12小球问题算法(源码)
public
经典面试问题:12小球问题算法(源码)procedureSetBgAndTextColor(bgColor:TColor;ttColor:TColor);
经典面试问题:12小球问题算法(源码)procedureDrawSelf();
经典面试问题:12小球问题算法(源码)constructorCreate(bTrance:Boolean);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题:天平抽象类
经典面试问题:12小球问题算法(源码)
TC_Balance=class
经典面试问题:12小球问题算法(源码)
//published
经典面试问题:12小球问题算法(源码)
bMainPivot:TPoint;
经典面试问题:12小球问题算法(源码)bPartAPivot:TPoint;
经典面试问题:12小球问题算法(源码)bPartBPivot:TPoint;
经典面试问题:12小球问题算法(源码)bColor:TColor;
经典面试问题:12小球问题算法(源码)bPivotColor:TColor;
经典面试问题:12小球问题算法(源码)bCanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bWeightA:Integer;
经典面试问题:12小球问题算法(源码)bWeightB:Integer;
经典面试问题:12小球问题算法(源码)
private
经典面试问题:12小球问题算法(源码)bWidth:Integer;
经典面试问题:12小球问题算法(源码)bHeight:Integer;
经典面试问题:12小球问题算法(源码)bDelta:Integer;
经典面试问题:12小球问题算法(源码)
public
经典面试问题:12小球问题算法(源码)procedureDrawSelf();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题:天平比较一次抽象类[行为抽象]
经典面试问题:12小球问题算法(源码)
TC_Compare=class
经典面试问题:12小球问题算法(源码)cbPivot:TPoint;
经典面试问题:12小球问题算法(源码)cbPreStart,cbFroStart:TPoint;
经典面试问题:12小球问题算法(源码)cbCmpPara:TC_CmpPara;
经典面试问题:12小球问题算法(源码)cbCount:Byte;
经典面试问题:12小球问题算法(源码)cbPre_Latency:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)cBallPartA:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)cBallPartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)cbFro_Latency:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)cBalance:TC_Balance;
经典面试问题:12小球问题算法(源码)cCanvas:TCanvas;
经典面试问题:12小球问题算法(源码)
private
经典面试问题:12小球问题算法(源码)cbPPartA,cbPPartB:TPoint;
经典面试问题:12小球问题算法(源码)pPre_Latency:arrayofTC_Ball_Class;
经典面试问题:12小球问题算法(源码)pPartA:arrayofTC_Ball_Class;
经典面试问题:12小球问题算法(源码)pPartB:arrayofTC_Ball_Class;
经典面试问题:12小球问题算法(源码)pFro_Latency:arrayofTC_Ball_Class;
经典面试问题:12小球问题算法(源码)isShowTrace:Boolean;
经典面试问题:12小球问题算法(源码)procedureDraw_Balance();
经典面试问题:12小球问题算法(源码)procedureDraw_Part_A();
经典面试问题:12小球问题算法(源码)procedureDraw_Part_B();
经典面试问题:12小球问题算法(源码)procedureDraw_Latency();
经典面试问题:12小球问题算法(源码)
public
经典面试问题:12小球问题算法(源码)procedureDraw_AllBall();
经典面试问题:12小球问题算法(源码)procedureWeigh_Out();
经典面试问题:12小球问题算法(源码)constructorCreate(bTrace:Boolean);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//小球问题抽象类<2003-11-14至今未被使用,是为方法的通用性而设计>
经典面试问题:12小球问题算法(源码)
TC_Ball_Problem=class
经典面试问题:12小球问题算法(源码)bpBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)bpCompareCount:Byte;
经典面试问题:12小球问题算法(源码)bpBallCount:Byte;
经典面试问题:12小球问题算法(源码)bpCanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bpCompare:arrayofTC_Compare;
经典面试问题:12小球问题算法(源码)pBalace:TC_Balance;
经典面试问题:12小球问题算法(源码)
public
经典面试问题:12小球问题算法(源码)
//procedureWeigh_Out(bCenterX,bCenterY:Integer);
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)
//天平的一次比较结果处理算法
经典面试问题:12小球问题算法(源码)
procedureBalance_One_Latency(
经典面试问题:12小球问题算法(源码)BallStart1,BallStart2:TPoint;
经典面试问题:12小球问题算法(源码)OneCmpPara:TC_CmpPara;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean);
经典面试问题:12小球问题算法(源码)
//天平的一次比较执行算法
经典面试问题:12小球问题算法(源码)
procedureBalance_One_Compare(
经典面试问题:12小球问题算法(源码)BalancePivot:TPoint;
经典面试问题:12小球问题算法(源码)BallNum:Byte;
经典面试问题:12小球问题算法(源码)PartA,PartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean);
经典面试问题:12小球问题算法(源码)
//问题条件设置处理算法(小于的初始状态演示算法)
经典面试问题:12小球问题算法(源码)
procedureProcess_Initial_Ball(
经典面试问题:12小球问题算法(源码)StartPoint:TPoint;
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean
经典面试问题:12小球问题算法(源码));
经典面试问题:12小球问题算法(源码)implementation
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{TC_Ball_Class}
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)constructorTC_Ball_Class.Create(bTrance:Boolean);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)bDrawOrder:
=NOTbTrance;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Ball_Class.DrawSelf();
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)strDrawText:String;
经典面试问题:12小球问题算法(源码)w,h,r:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
//暂时增加
经典面试问题:12小球问题算法(源码)
ifbDrawOrderthen
经典面试问题:12小球问题算法(源码)strDrawText:
=IntToStr(bAbstractBall.Order)
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)strDrawText:
=IntToStr(bAbstractBall.Weight);
经典面试问题:12小球问题算法(源码)
ifbColorChangedthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)bCanvas.Brush.Color:
=bBgColor;
经典面试问题:12小球问题算法(源码)bCanvas.Pen.Color:
=bBgColor;
经典面试问题:12小球问题算法(源码)bCanvas.Font.Color:
=bTextColor;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)bCanvas.Brush.Color:
=bAbstractBall.BgColor;
经典面试问题:12小球问题算法(源码)bCanvas.Pen.Color:
=bAbstractBall.BgColor;
经典面试问题:12小球问题算法(源码)bCanvas.Font.Color:
=bAbstractBall.TextColor;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)bCanvas.Font.Size:
=bSize;
经典面试问题:12小球问题算法(源码)bCanvas.Font.Style:
=[fsBold];
经典面试问题:12小球问题算法(源码)w:
=bCanvas.TextWidth(strDrawText);
经典面试问题:12小球问题算法(源码)h:
=bCanvas.TextHeight(strDrawText);
经典面试问题:12小球问题算法(源码)
ifw>hthen
经典面试问题:12小球问题算法(源码)r:
=w
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)r:
=h;
经典面试问题:12小球问题算法(源码)
//注意:此处的计算比例,是根据矩形的内接圆、外切圆推算出来的,
经典面试问题:12小球问题算法(源码)
//再加以实现绘制时的位置系数调试、调整而来
经典面试问题:12小球问题算法(源码)
bCanvas.Ellipse(bStartPoint.X,bStartPoint.Y,bStartPoint.X+r*1414div1000,bStartPoint.Y+r*1414div1000);
经典面试问题:12小球问题算法(源码)
if(Length(strDrawText)=1)then
经典面试问题:12小球问题算法(源码)bCanvas.TextOut(bStartPoint.X
+r*414div1000,bStartPoint.Y+r*207div1000,strDrawText)
经典面试问题:12小球问题算法(源码)
elseif(Length(strDrawText)=2)then
经典面试问题:12小球问题算法(源码)bCanvas.TextOut(bStartPoint.X
+r*214div1000,bStartPoint.Y+r*228div1000,strDrawText);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Ball_Class.SetBgAndTextColor(bgColor:TColor;ttColor:TColor);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Self.bBgColor:
=bgColor;
经典面试问题:12小球问题算法(源码)Self.bTextColor:
=ttColor;
经典面试问题:12小球问题算法(源码)bColorChanged:
=true;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{TC_Balance}
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Balance.DrawSelf;
经典面试问题:12小球问题算法(源码)procedureDrawTray(ACanvas:TCanvas;aX,aY,Awidth,AHeight:Integer;aDeltaY:Integer);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)withACanvas
do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)MoveTo(aX,aY);
经典面试问题:12小球问题算法(源码)LineTo(aX
-AWidth,aY+aDeltaY);
经典面试问题:12小球问题算法(源码)LineTo(aX
-AWidth-AHeight,aY-AHeight+aDeltaY);
经典面试问题:12小球问题算法(源码)MoveTo(aX,aY);
经典面试问题:12小球问题算法(源码)LineTo(aX
+AWidth,aY-aDeltaY);
经典面试问题:12小球问题算法(源码)LineTo(aX
+AWidth+AHeight,aY-aHeight-aDeltaY);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)X0,Y0,X1,Y1,X2,Y2,D,H:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)bDelta:
=6;
经典面试问题:12小球问题算法(源码)
ifbWeightA>bWeightBthen//[A>B]
经典面试问题:12小球问题算法(源码)
bDelta:=bDelta
经典面试问题:12小球问题算法(源码)
elseifbWeightA=bWeightBthen//[A=B]
经典面试问题:12小球问题算法(源码)
bDelta:=0
经典面试问题:12小球问题算法(源码)
else//[A<B]
经典面试问题:12小球问题算法(源码)
bDelta:=-bDelta;
经典面试问题:12小球问题算法(源码)X0:
=bMainPivot.X;
经典面试问题:12小球问题算法(源码)Y0:
=bMainPivot.Y;
经典面试问题:12小球问题算法(源码)D:
=bWidth;
经典面试问题:12小球问题算法(源码)H:
=bHeight;
经典面试问题:12小球问题算法(源码)bCanvas.Pen.Color:
=bPivotColor;
经典面试问题:12小球问题算法(源码)bCanvas.Brush.Color:
=bPivotColor;
经典面试问题:12小球问题算法(源码)bCanvas.Polygon([Point(X0,Y0),Point(X0
-H,Y0+H),Point(X0+H,Y0+H),Point(X0,Y0)]);
经典面试问题:12小球问题算法(源码)bCanvas.Pen.Color:
=bColor;
经典面试问题:12小球问题算法(源码)DrawTray(bCanvas,X0,Y0,D,H,bDelta);
经典面试问题:12小球问题算法(源码)X1:
=X0-D-H;
经典面试问题:12小球问题算法(源码)Y1:
=Y0-H+bDelta;
经典面试问题:12小球问题算法(源码)DrawTray(bCanvas,X1,Y1,Ddiv
2,H,0);
经典面试问题:12小球问题算法(源码)X2:
=X0+D+H;
经典面试问题:12小球问题算法(源码)Y2:
=Y0-H-bDelta;
经典面试问题:12小球问题算法(源码)DrawTray(bCanvas,X2,Y2,Ddiv
2,H,0);
经典面试问题:12小球问题算法(源码)bPartAPivot.X:
=X1;
经典面试问题:12小球问题算法(源码)bPartAPivot.Y:
=Y1;
经典面试问题:12小球问题算法(源码)bPartBPivot.X:
=X2;
经典面试问题:12小球问题算法(源码)bPartBPivot.Y:
=Y2;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{TC_Compare}
经典面试问题:12小球问题算法(源码)constructorTC_Compare.Create(bTrace:Boolean);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)isShowTrace:
=bTrace;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Draw_AllBall;
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)strHint
='比较前:';
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)SetLength(pPre_Latency,cbCmpPara.Pre_LNumber);
经典面试问题:12小球问题算法(源码)SetLength(cbCmpPara.Pre_Latency,cbCmpPara.Pre_LNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0tocbCmpPara.Pre_LNumber-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop]:
=TC_Ball_Class.Create(isShowTrace);
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bAbstractBall:
=cbCmpPara.Pre_Latency[Loop];
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bSize:
=10;
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bStartPoint:
=Point(80+cbPreStart.X+Loop*25,cbPreStart.Y);
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].SetBgAndTextColor(clBlue,clYellow);
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas:
=cCanvas;
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas.Font.Size:
=11;
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas.Font.Style:
=[fsBold];
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas.Font.Color:
=clBlack;
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas.Brush.Color:
=clWhite;
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].bCanvas.TextOut(cbPreStart.X,cbPreStart.Y,strHint);
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].DrawSelf();
经典面试问题:12小球问题算法(源码)pPre_Latency[Loop].Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Draw_Balance;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)cBalance:
=TC_Balance.Create();
经典面试问题:12小球问题算法(源码)cBalance.bWeightA:
=0;
经典面试问题:12小球问题算法(源码)cBalance.bWeightB:
=0;
经典面试问题:12小球问题算法(源码)
forLoop:=0tocbCount-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)cBalance.bWeightA:
=cBalance.bWeightA+cBallPartA[Loop].Weight;
经典面试问题:12小球问题算法(源码)cBalance.bWeightB:
=cBalance.bWeightB+cBallPartB[Loop].Weight;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)cBalance.bMainPivot:
=cbPivot;
经典面试问题:12小球问题算法(源码)cBalance.bPivotColor:
=clFuchsia;
经典面试问题:12小球问题算法(源码)cBalance.bColor:
=clBlue;
经典面试问题:12小球问题算法(源码)cBalance.bWidth:
=100;
经典面试问题:12小球问题算法(源码)cBalance.bHeight:
=18;
经典面试问题:12小球问题算法(源码)cBalance.bCanvas:
=cCanvas;
经典面试问题:12小球问题算法(源码)cBalance.DrawSelf();
经典面试问题:12小球问题算法(源码)cbPPartA:
=cBalance.bPartAPivot;
经典面试问题:12小球问题算法(源码)cbPPartB:
=cBalance.bPartBPivot;
经典面试问题:12小球问题算法(源码)cBalance.Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Draw_Latency;
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)strHint
='比较后:';
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)SetLength(pFro_Latency,cbCmpPara.Fro_LNumber);
经典面试问题:12小球问题算法(源码)
//SetLength(cbCmpPara.Fro_Latency,cbCmpPara.Fro_LNumber);
经典面试问题:12小球问题算法(源码)
//注意:下面Pre_Latency不能用Fro_Latency来代替,不知道为什么2003-11-20
经典面试问题:12小球问题算法(源码)
SetLength(cbCmpPara.Pre_Latency,cbCmpPara.Fro_LNumber);
经典面试问题:12小球问题算法(源码)
forLoop:=0tocbCmpPara.Fro_LNumber-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop]:
=TC_Ball_Class.Create(isShowTrace);
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bAbstractBall:
=cbCmpPara.Fro_Latency[Loop];
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bSize:
=10;
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bStartPoint:
=Point(80+cbFroStart.X+Loop*25,cbFroStart.Y);
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].SetBgAndTextColor(clGreen,clYellow);
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas:
=cCanvas;
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas.Font.Size:
=11;
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas.Font.Style:
=[fsBold];
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas.Font.Color:
=clBlack;
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas.Brush.Color:
=clWhite;
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].bCanvas.TextOut(cbFroStart.X,cbFroStart.Y,strHint);
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].DrawSelf();
经典面试问题:12小球问题算法(源码)pFro_Latency[Loop].Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Draw_Part_A;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop,r:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)SetLength(pPartA,cbCount);
经典面试问题:12小球问题算法(源码)
forLoop:=0tocbCount-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)pPartA[Loop]:
=TC_Ball_Class.Create(isShowTrace);
经典面试问题:12小球问题算法(源码)pPartA[Loop].bAbstractBall.Order:
=cBallPartA[Loop].Order;
经典面试问题:12小球问题算法(源码)pPartA[Loop].bAbstractBall.Weight:
=cBallPartA[Loop].Weight;
经典面试问题:12小球问题算法(源码)pPartA[Loop].bSize:
=10;
经典面试问题:12小球问题算法(源码)pPartA[Loop].SetBgAndTextColor(clYellow,clRed);
经典面试问题:12小球问题算法(源码)pPartA[Loop].bCanvas:
=cCanvas;
经典面试问题:12小球问题算法(源码)
//注意:此句一定要有,设置字体的大小属性
经典面试问题:12小球问题算法(源码)
pPartA[Loop].bCanvas.Font.Size:=pPartA[Loop].bSize;
经典面试问题:12小球问题算法(源码)
ifpPartA[Loop].bCanvas.TextWidth(IntToStr(pPartA[Loop].bAbstractBall.Order))>
经典面试问题:12小球问题算法(源码)pPartA[Loop].bCanvas.TextHeight(IntToStr(pPartA[Loop].bAbstractBall.Order))then
经典面试问题:12小球问题算法(源码)r:
=pPartA[Loop].bCanvas.TextWidth(IntToStr(pPartA[Loop].bAbstractBall.Order))
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)r:
=pPartA[Loop].bCanvas.TextHeight(IntToStr(pPartA[Loop].bAbstractBall.Order));
经典面试问题:12小球问题算法(源码)r:
=r*1414div1000;
经典面试问题:12小球问题算法(源码)
//下面的计算公式有点难
经典面试问题:12小球问题算法(源码)
pPartA[Loop].bStartPoint.X:=cbPPartA.X-(cbCountdiv2)*r-r*5*(cbCountmod2)div10+Loop*r;
经典面试问题:12小球问题算法(源码)pPartA[Loop].bStartPoint.Y:
=cbPPartA.Y-r;
经典面试问题:12小球问题算法(源码)pPartA[Loop].DrawSelf();
经典面试问题:12小球问题算法(源码)pPartA[Loop].Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Draw_Part_B;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop,r:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)SetLength(pPartb,cbCount);
经典面试问题:12小球问题算法(源码)
forLoop:=0tocbCount-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)pPartB[Loop]:
=TC_Ball_Class.Create(isShowTrace);
经典面试问题:12小球问题算法(源码)pPartB[Loop].bAbstractBall.Order:
=cBallPartB[Loop].Order;
经典面试问题:12小球问题算法(源码)pPartB[Loop].bAbstractBall.Weight:
=cBallPartB[Loop].Weight;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)pPartB[Loop].bSize:
=10;
经典面试问题:12小球问题算法(源码)pPartB[Loop].SetBgAndTextColor(clYellow,clRed);
经典面试问题:12小球问题算法(源码)pPartB[Loop].bCanvas:
=cCanvas;
经典面试问题:12小球问题算法(源码)pPartB[Loop].bCanvas.Font.Size:
=pPartB[Loop].bSize;
经典面试问题:12小球问题算法(源码)
ifpPartB[Loop].bCanvas.TextWidth(IntToStr(pPartB[Loop].bAbstractBall.Order))>
经典面试问题:12小球问题算法(源码)pPartB[Loop].bCanvas.TextHeight(IntToStr(pPartB[Loop].bAbstractBall.Order))then
经典面试问题:12小球问题算法(源码)r:
=pPartB[Loop].bCanvas.TextWidth(IntToStr(pPartB[Loop].bAbstractBall.Order))
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)r:
=pPartB[Loop].bCanvas.TextHeight(IntToStr(pPartB[Loop].bAbstractBall.Order));
经典面试问题:12小球问题算法(源码)r:
=r*1414div1000;
经典面试问题:12小球问题算法(源码)pPartB[Loop].bStartPoint.X:
=cbPPartB.X-(cbCountdiv2)*r-r*5*(cbCountmod2)div10+Loop*r;
经典面试问题:12小球问题算法(源码)pPartB[Loop].bStartPoint.Y:
=cbPPartB.Y-r;
经典面试问题:12小球问题算法(源码)pPartB[Loop].DrawSelf();
经典面试问题:12小球问题算法(源码)pPartB[Loop].Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTC_Compare.Weigh_Out();
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Draw_Balance();
经典面试问题:12小球问题算法(源码)Draw_Part_A();
经典面试问题:12小球问题算法(源码)Draw_Part_B();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureBalance_One_Compare(
经典面试问题:12小球问题算法(源码)BalancePivot:TPoint;
经典面试问题:12小球问题算法(源码)BallNum:Byte;
经典面试问题:12小球问题算法(源码)PartA,PartB:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean);
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)OneCmp:TC_Compare;
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)OneCmp:
=TC_Compare.Create(bTrace);
经典面试问题:12小球问题算法(源码)OneCmp.cbPivot:
=BalancePivot;
经典面试问题:12小球问题算法(源码)OneCmp.cbCount:
=BallNum;
经典面试问题:12小球问题算法(源码)OneCmp.cCanvas:
=ACanvas;
经典面试问题:12小球问题算法(源码)SetLength(OneCmp.cBallPartA,OneCmp.cbCount);
经典面试问题:12小球问题算法(源码)SetLength(OneCmp.cBallPartB,OneCmp.cbCount);
经典面试问题:12小球问题算法(源码)
forLoop:=0toOneCmp.cbCount-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)OneCmp.cBallPartA[Loop]:
=PartA[Loop];
经典面试问题:12小球问题算法(源码)OneCmp.cBallPartB[Loop]:
=PartB[Loop];
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)OneCmp.Weigh_Out();
经典面试问题:12小球问题算法(源码)OneCmp.Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureBalance_One_Latency(
经典面试问题:12小球问题算法(源码)BallStart1,BallStart2:TPoint;
经典面试问题:12小球问题算法(源码)OneCmpPara:TC_CmpPara;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean);
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)OneCmp:TC_Compare;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)OneCmp:
=TC_Compare.Create(bTrace);
经典面试问题:12小球问题算法(源码)OneCmp.cCanvas:
=ACanvas;
经典面试问题:12小球问题算法(源码)OneCmp.cbCmpPara:
=OneCmpPara;
经典面试问题:12小球问题算法(源码)OneCmp.cbPreStart:
=BallStart1;
经典面试问题:12小球问题算法(源码)OneCmp.cbFroStart:
=BallStart2;
经典面试问题:12小球问题算法(源码)OneCmp.Draw_AllBall();
经典面试问题:12小球问题算法(源码)OneCmp.Draw_Latency();
经典面试问题:12小球问题算法(源码)OneCmp.Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
//问题条件设置处理算法(小于的初始状态演示算法)
经典面试问题:12小球问题算法(源码)
procedureProcess_Initial_Ball(
经典面试问题:12小球问题算法(源码)StartPoint:TPoint;
经典面试问题:12小球问题算法(源码)AllBall:arrayofTC_Ball;
经典面试问题:12小球问题算法(源码)ACanvas:TCanvas;
经典面试问题:12小球问题算法(源码)bTrace:Boolean);
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)
//strHint='初始状态:';
经典面试问题:12小球问题算法(源码)
strHint='';
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)aBall:TC_Ball_Class;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
forLoop:=Low(AllBall)toHigh(AllBall)-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)aBall:
=TC_Ball_Class.Create(bTrace);
经典面试问题:12小球问题算法(源码)aBall.bAbstractBall:
=AllBall[Loop+1];
经典面试问题:12小球问题算法(源码)aBall.bSize:
=10;
经典面试问题:12小球问题算法(源码)aBall.bStartPoint:
=Point(2+StartPoint.X+Loop*25,StartPoint.Y);
经典面试问题:12小球问题算法(源码)aBall.bCanvas:
=ACanvas;
经典面试问题:12小球问题算法(源码)aBall.bCanvas.Font.Size:
=11;
经典面试问题:12小球问题算法(源码)aBall.bCanvas.Font.Style:
=[fsBold];
经典面试问题:12小球问题算法(源码)aBall.bCanvas.Font.Color:
=clBlack;
经典面试问题:12小球问题算法(源码)aBall.bCanvas.Brush.Color:
=clWhite;
经典面试问题:12小球问题算法(源码)aBall.bCanvas.TextOut(StartPoint.X,StartPoint.Y,strHint);
经典面试问题:12小球问题算法(源码)aBall.DrawSelf();
经典面试问题:12小球问题算法(源码)aBall.Free();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)end.
经典面试问题:12小球问题算法(源码)

6、 界面源码

经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)...{
经典面试问题:12小球问题算法(源码)作品名称:小球问题通用解决方案
经典面试问题:12小球问题算法(源码)开发作者:成晓旭
经典面试问题:12小球问题算法(源码)开发时间:2003年01月21日
经典面试问题:12小球问题算法(源码)完成时间:2003年01月22日
经典面试问题:12小球问题算法(源码)修改时间1:2003年02月10日新增Delphi绘图功能
经典面试问题:12小球问题算法(源码)修改时间2:2003年11月14日新增对问题模拟条件的用户设置功能
经典面试问题:12小球问题算法(源码)修改时间2:2003年11月20日新增ClearCanvas()方法,解决不能清除画面问题
经典面试问题:12小球问题算法(源码)}

经典面试问题:12小球问题算法(源码)unitBMain;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
interface
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)uses
经典面试问题:12小球问题算法(源码)Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
经典面试问题:12小球问题算法(源码)Dialogs,StdCtrls,BallType,Common,Buttons,ExtCtrls;
经典面试问题:12小球问题算法(源码)type
经典面试问题:12小球问题算法(源码)TExceptStyle
=(esLight,esHeavy);//偏轻偏重
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)strHint
='中国';
经典面试问题:12小球问题算法(源码)BallNumber
=12;//小球数量
经典面试问题:12小球问题算法(源码)
BallValue=10;//正常小球的质量
经典面试问题:12小球问题算法(源码)
HeavyValue=15;//偏重小球的质量
经典面试问题:12小球问题算法(源码)
LightValue=5;//偏轻小球的质量
经典面试问题:12小球问题算法(源码)

经典面试问题:12小球问题算法(源码)type
经典面试问题:12小球问题算法(源码)TfrmMain
=class(TForm)
经典面试问题:12小球问题算法(源码)btnDemo:TButton;
经典面试问题:12小球问题算法(源码)imgMain:TImage;
经典面试问题:12小球问题算法(源码)gbConfig:TGroupBox;
经典面试问题:12小球问题算法(源码)RadioButton1:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton2:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton3:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton4:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton5:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton6:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton7:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton8:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton9:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton10:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton11:TRadioButton;
经典面试问题:12小球问题算法(源码)RadioButton12:TRadioButton;
经典面试问题:12小球问题算法(源码)ImgConfig:TImage;
经典面试问题:12小球问题算法(源码)cbEStyle:TCheckBox;
经典面试问题:12小球问题算法(源码)Label1:TLabel;
经典面试问题:12小球问题算法(源码)Memo0:TMemo;
经典面试问题:12小球问题算法(源码)Label2:TLabel;
经典面试问题:12小球问题算法(源码)Label3:TLabel;
经典面试问题:12小球问题算法(源码)Memo1:TMemo;
经典面试问题:12小球问题算法(源码)Label4:TLabel;
经典面试问题:12小球问题算法(源码)Memo2:TMemo;
经典面试问题:12小球问题算法(源码)Label5:TLabel;
经典面试问题:12小球问题算法(源码)Memo3:TMemo;
经典面试问题:12小球问题算法(源码)btnSetNumber:TButton;
经典面试问题:12小球问题算法(源码)btnAuto:TButton;
经典面试问题:12小球问题算法(源码)btnAbout:TButton;
经典面试问题:12小球问题算法(源码)Label6:TLabel;
经典面试问题:12小球问题算法(源码)cbTrance:TCheckBox;
经典面试问题:12小球问题算法(源码)procedureFormShow(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedureRadioButton1Click(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedurebtnDemoClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedureFormCreate(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedurebtnSetNumberClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedurebtnAutoClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)procedurebtnAboutClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)
private
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{Privatedeclarations}
经典面试问题:12小球问题算法(源码)isTrance:Boolean;
//是否跟踪(cbTrance的状态记录)
经典面试问题:12小球问题算法(源码)
SmallBall:array[0..BallNumber]ofTC_Ball;//小球的抽象数据
经典面试问题:12小球问题算法(源码)
ExceptBall:TC_Ball;//异常小球
经典面试问题:12小球问题算法(源码)
ExceptStyle:TExceptStyle;//异常小球的特性
经典面试问题:12小球问题算法(源码)
ExceptBallValue:Integer;//异常小球的质量
经典面试问题:12小球问题算法(源码)
ExceptColor:TColor;//异常小球的表示颜色
经典面试问题:12小球问题算法(源码)
//处理小球问题条件设置RadioGroup
经典面试问题:12小球问题算法(源码)
functionProcessRadioButton(isSort:Boolean):Integer;
经典面试问题:12小球问题算法(源码)
//选择异常小球方法
经典面试问题:12小球问题算法(源码)
procedureChooseExceptBall();
经典面试问题:12小球问题算法(源码)
//绘制所有小球方法
经典面试问题:12小球问题算法(源码)
//withExceptBall=true<有异常小球的绘制>
经典面试问题:12小球问题算法(源码)
//withExceptBall=false<无异常小球的绘制>
经典面试问题:12小球问题算法(源码)
procedureDrawSmallBall(withExceptBall:Boolean;isTrance:Boolean);
经典面试问题:12小球问题算法(源码)procedureClearCanvas
经典面试问题:12小球问题算法(源码)(aCanvas:TCanvas);
经典面试问题:12小球问题算法(源码)
public
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{Publicdeclarations}
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)frmMain:TfrmMain;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)implementation
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)经典面试问题:12小球问题算法(源码)
...{$R*.dfm}
经典面试问题:12小球问题算法(源码)
//单元内部常量定义
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)Soft_Name
='小球问题解答过程演示程序0.2版';
经典面试问题:12小球问题算法(源码)strWaitHint
='本功能正在加紧完善中......'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'请拭目以待!';
经典面试问题:12小球问题算法(源码)strSetNumber
='设置[3-12]的小球数目,程序将自动演示问题的解答过程!'
经典面试问题:12小球问题算法(源码)
+CHR(13)+CHR(10)+strWaitHint;
经典面试问题:12小球问题算法(源码)strAutoAnswer
='设置任意数目的小球,程序将根据本题的问题模式,'
经典面试问题:12小球问题算法(源码)
+'推算最少的比较次数,并自动演示推算过程!'
经典面试问题:12小球问题算法(源码)
+CHR(13)+CHR(10)+strWaitHint;
经典面试问题:12小球问题算法(源码)About_Soft_Info
=Soft_Name+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'开发作者:成晓旭'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'完成时间:2003年01月23日'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'最后修改:2003年11月20日'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'联系方式:[email protected]'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'设计说明:本程序采用纯面向对象的分析、设计、实现。'+
经典面试问题:12小球问题算法(源码)
'也是本人的第一个运用'+
经典面试问题:12小球问题算法(源码)
'设计模式的作品。'+CHR(13)+CHR(10)+
经典面试问题:12小球问题算法(源码)
'发布说明:程序完成时,我将公布其源码<欢迎来信索取>。';
经典面试问题:12小球问题算法(源码)functionTfrmMain.ProcessRadioButton(isSort:Boolean):Integer;
经典面试问题:12小球问题算法(源码)
const
经典面试问题:12小球问题算法(源码)space
=25;
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)aCtrl:TControl;
经典面试问题:12小球问题算法(源码)aChoose:TRadioButton;
经典面试问题:12小球问题算法(源码)
//点击的小球索引号,循环计数器,第一个RadioButton的Top属性,GroupBox中RadioCount的计数器(关键)
经典面试问题:12小球问题算法(源码)
indexBall,I,aTop,RadioCount:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)indexBall:
=-1;
经典面试问题:12小球问题算法(源码)aTop:
=0;
经典面试问题:12小球问题算法(源码)RadioCount:
=0;//注意:此处初值=-1是错误的
经典面试问题:12小球问题算法(源码)
forI:=0togbConfig.ControlCount-1do
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)aCtrl:
=gbConfig.Controls[I];
经典面试问题:12小球问题算法(源码)
ifaCtrl.ClassType=TRadioButtonthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
try
经典面试问题:12小球问题算法(源码)Inc(RadioCount);
经典面试问题:12小球问题算法(源码)aChoose:
=TRadioButton(aCtrl);
经典面试问题:12小球问题算法(源码)
ifisSortthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifindexBall=-1then
经典面试问题:12小球问题算法(源码)aTop:
=aChoose.Top
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)aChoose.Top:
=aTop;
经典面试问题:12小球问题算法(源码)aChoose.Left:
=(RadioCount-1)*space+8;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
ifaChoose.Checkedthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)indexBall:
=RadioCount;
经典面试问题:12小球问题算法(源码)
//ShowMessage('IndexBall='+IntToStr(indexBall));
经典面试问题:12小球问题算法(源码)
break;//算法效率之关键
经典面试问题:12小球问题算法(源码)
end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)except
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)Result:
=indexBall;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.FormShow(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)ProcessRadioButton(
true);
经典面试问题:12小球问题算法(源码)DrawSmallBall(
false,cbTrance.Checked);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.ChooseExceptBall();
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)index:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)index:
=ProcessRadioButton(false);
经典面试问题:12小球问题算法(源码)
if(index>=0)and(index<=BallNumber)then
经典面试问题:12小球问题算法(源码)ExceptBall:
=SmallBall[index];
经典面试问题:12小球问题算法(源码)
ifcbEStyle.Checkedthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)ExceptStyle:
=esHeavy;
经典面试问题:12小球问题算法(源码)ExceptBallValue:
=HeavyValue;
经典面试问题:12小球问题算法(源码)ExceptColor:
=clRed;
经典面试问题:12小球问题算法(源码)end
经典面试问题:12小球问题算法(源码)
else
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)ExceptStyle:
=esLight;
经典面试问题:12小球问题算法(源码)ExceptBallValue:
=LightValue;
经典面试问题:12小球问题算法(源码)ExceptColor:
=clFuchsia;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)ExceptBall.Weight:
=ExceptBallValue;
经典面试问题:12小球问题算法(源码)ExceptBall.BgColor:
=ExceptColor;
经典面试问题:12小球问题算法(源码)ExceptBall.TextColor:
=clBlack;
经典面试问题:12小球问题算法(源码)SmallBall[index]:
=ExceptBall;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.DrawSmallBall(withExceptBall:Boolean;isTrance:Boolean);
经典面试问题:12小球问题算法(源码)var
经典面试问题:12小球问题算法(源码)Loop:Integer;
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
forLoop:=1toBallNumberdo
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)SmallBall[Loop].Order:
=Loop;
经典面试问题:12小球问题算法(源码)SmallBall[Loop].Weight:
=BallValue;
经典面试问题:12小球问题算法(源码)SmallBall[Loop].BgColor:
=clBlue;
经典面试问题:12小球问题算法(源码)SmallBall[Loop].TextColor:
=clRed;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
ifwithExceptBallthen
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)ChooseExceptBall();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)Draw_Ball_Config(SmallBall,ImgConfig.Canvas,ClientRect,isTrance);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.RadioButton1Click(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
try
经典面试问题:12小球问题算法(源码)isTrance:
=cbTrance.Checked;
经典面试问题:12小球问题算法(源码)except
经典面试问题:12小球问题算法(源码)isTrance:
=NOTisTrance;
经典面试问题:12小球问题算法(源码)end;;
经典面试问题:12小球问题算法(源码)DrawSmallBall(
true,isTrance);
经典面试问题:12小球问题算法(源码)btnDemo.SetFocus();
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.btnDemoClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Serach_Error_Ball(SmallBall,imgMain.Canvas,ClientRect,isTrance);
经典面试问题:12小球问题算法(源码)Memo1.Lines.Text:
=strLog1;
经典面试问题:12小球问题算法(源码)Memo2.Lines.Text:
=strLog2;
经典面试问题:12小球问题算法(源码)Memo3.Lines.Text:
=strLog3;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.FormCreate(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)
//Width:=Screen.Width;
经典面试问题:12小球问题算法(源码)
//Height:=Screen.Height;
经典面试问题:12小球问题算法(源码)
Width:=800;
经典面试问题:12小球问题算法(源码)Height:
=600;
经典面试问题:12小球问题算法(源码)Caption:
=Soft_Name;
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.ClearCanvas(aCanvas:TCanvas);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)aCanvas.Brush.Style:
=bsSolid;
经典面试问题:12小球问题算法(源码)aCanvas.Brush.Color:
=clWhite;
经典面试问题:12小球问题算法(源码)aCanvas.FillRect(ClientRect);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.btnSetNumberClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Application.MessageBox(strSetNumber,Soft_Name,MB_ICONINFORMATION);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.btnAutoClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Application.MessageBox(strAutoAnswer,Soft_Name,MB_ICONINFORMATION);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)procedureTfrmMain.btnAboutClick(Sender:TObject);
经典面试问题:12小球问题算法(源码)begin
经典面试问题:12小球问题算法(源码)Application.MessageBox(About_Soft_Info,Soft_Name,MB_ICONINFORMATION);
经典面试问题:12小球问题算法(源码)end;
经典面试问题:12小球问题算法(源码)
经典面试问题:12小球问题算法(源码)end.
经典面试问题:12小球问题算法(源码)

相关文章: