¦¶¨|¿³
µù¥U®É¶¡: 2003-08-25 ¤å³¹: 661 ¨Ó¦Û: ¥x¤¤¥«¤j¨½°Ï
²Ä 1 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤Q¤ë 17, 2003 2:12 am ¤å³¹¥DÃD: [ì³Ð]»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò3-N ¶¥¤è°}¨D¸Ñ |
|
|
* ¬°¤F±Æ¦C¬üÆ[ªº»Ý¨D¡AªÅ®æ¬O¥þ§ÎªºªÅ®æ¡An¤Þ¥Îµ{¦¡½X®É¶·
* ÁÙ쬰¥b§ÎªºªÅ®æ
* »¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò3-N ¶¥¤è°}¨D¸Ñ
* -------------------------------------------------------------- *
* §@ªÌ¡G¦¶¨|¿³ YSC 2003.10.17
* 1.³o¬O¦b¼Æ¾Ç¤¤ªº¤@ÓÃD¥Ø¡G
*¡@ N ¶¥¤è°}¤¤¡A¨C¤@¾î¦CÁ`©M¡BÁa¦æÁ`©M¤Î¹ï¨¤½uÁ`©M³£¥²¶·¬Ûµ¥®É¡A
*¡@ °Ý¦³þ´X²Õ¸Ñ¡H(³oùرN¤è°}¸g¹L±ÛÂà«á¬O¬Û¦Pªº±¡ªpµø¬°¤£¦P¸Ñ)
*¡@ ¨Ò¡G¨D 3 ¶¥¤è°}¦³þ´X²Õ¸Ñ¡H
* 2.A.Y EditBox (¦Û©wÈÄæ¦ì) ¤¤¤£¶ñȮɡA´N¥H¼Æ¾Çªºªk©wÈ
*¡@¡@ ( 1 .. N*N ) ¬°·Ç¡C
*¡@ B.Y¨Ï¥ÎªÌn¦Û¦æ¶ñ¤JÈ¡AÈ»PȤ§¶¡¥²¶·¥H , ¸¹¬Û¹j¡A¥B¥²¶·µ¹
*¡@¡@ °÷ N*N Ó¼ÆÈ¡A¦Ó¥B¦U¼Æ¤§¶¡¥²¶·¨â¨â¬Û²§¡C
*¡@ C.¥»½d¨Ò¥Ø«e¨î N ³Ì¤j¨ì 27¡A¥u¬O¬°¤Fµe±Åã¥Ü¦Ó³]ªº¡F¨Æ¹ê
*¡@¡@ ¤W N ¬OÀH§A³]ªº¡A¥un§Aªº CPU @¾Þªº¸Ü¡C
* 3.¦¹½d¨Ò¬Oºî¦X§Ú¤§«eµoªíªº¡u»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò¡v¡B
*¡@ ¡u»¼°j¨ç¼ÆªºÀ³¥Î½d¨Ò2-±Æ¦C¡v¦Ó¦¨ªº¡C
* 4.¸g´ú¸Õ¡A¥ú¶] N = 3 ´N¯Ó¶O³\¦h®É¶¡¡A¬Ý¼Ë¤l¹q¸£ªº³t«×µ¥¯Å¤£¯à
*¡@ ®t¡F¦³·Q´ú¸Õªº¤H¡A¥in¦³@¤ß¡Aü¡Iµ¥¦³ªÅ¦A¨Ó§ï¨}°õ¦æ³t«×§a¡I
* -------------------------------------------------------------- *
CLEAR ALL
CLOSE ALL
M_cSetTalk¡@ = SET("TALK")
M_cSetSafety = SET("SAFETY")
M_cSetEscape = SET("ESCAPE")
SET TALK¡@ OFF
SET SAFETY OFF
SET ESCAPE OFF
__Esc¡@¡@ = .F.
__IsCalc¡@= .F.¡@&& ¬O§_¥¿¦bpºâ¤¤
M_lIsVFP7 = .F.¡@&& VFP ¬O§_¬° 7.0 ª©¥H¤W(§t)
M_nTran¡@ = "99,999,999,999,999,999,999,999,999,999"
WW_oMESSAGEBOX = CREATEOBJECT("UserForm1")
WITH WW_oMESSAGEBOX
¡@.spinNum.Value = 3
¡@.Show
ENDWITH
IF VARTYPE(WW_oMESSAGEBOX) = "O"
IF !ISNULL(WW_oMESSAGEBOX)
¡@WW_oMESSAGEBOX.Release
ENDIF
ENDIF
SET ESCAPE &M_cSetEscape
SET SAFETY &M_cSetSafety
SET TALK¡@ &M_cSetTalk
CLEAR ALL
CLOSE ALL
RETURN
* ---------- DEFINE CLASS ---------- *
DEFINE CLASS UserForm1 AS Form
¡@AutoCenter¡@¡@= .T.
¡@BackColor¡@¡@ = RGB(0,128,192)
¡@BorderStyle¡@ = 3
¡@Closable¡@¡@¡@= .F.
¡@DoCreate¡@¡@¡@= .T.
¡@FontName¡@¡@¡@= "²Ó©úÅé"
¡@FontSize¡@¡@¡@= 12
¡@ForeColor¡@¡@ = RGB(255,255,255)
¡@KeyPreview¡@¡@= .T.
¡@MaxButton¡@¡@ = .F.
¡@MinButton¡@¡@ = .F.
¡@ShowTips¡@¡@¡@= .T.
¡@ShowWindow¡@¡@= 1
¡@Top¡@¡@¡@¡@¡@ = 100
¡@WindowState¡@ = 0
¡@WindowType¡@¡@= 1
¡@Width¡@¡@¡@¡@ = 450
¡@Height¡@¡@¡@¡@= 220
¡@Caption¡@¡@¡@ = "N ¶¥¤è°}¨D¸Ñ"
¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "½Ð¿é¤J N È",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ =¡@27
ADD OBJECT spinNum¡@AS SPINNER WITH;
¡@¡@FontName¡@¡@¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@¡@¡@=¡@11,;
¡@¡@Format¡@¡@¡@¡@¡@¡@= "RK",;
¡@¡@Height¡@¡@¡@¡@¡@¡@=¡@23,;
¡@¡@InputMask¡@¡@¡@¡@ = "99",;
¡@¡@KeyboardHighValue =¡@27,;
¡@¡@KeyboardLowValue¡@=¡@ 1,;
¡@¡@Left¡@¡@¡@¡@¡@¡@¡@= 130,;
¡@¡@SpinnerHighValue¡@=¡@27,;
¡@¡@SpinnerLowValue¡@ =¡@ 1,;
¡@¡@Top¡@¡@¡@¡@¡@¡@¡@ =¡@25,;
¡@¡@Width¡@¡@¡@¡@¡@¡@ =¡@45
¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "¦Û©wÈ",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ =¡@50
ADD OBJECT ediNums¡@AS EDITBOX WITH;
¡@¡@FontName¡@¡@¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@¡@¡@=¡@11,;
¡@¡@Format¡@¡@¡@¡@¡@¡@= "K",;
¡@¡@Height¡@¡@¡@¡@¡@¡@=¡@50,;
¡@¡@Left¡@¡@¡@¡@¡@¡@¡@= 130,;
¡@¡@Top¡@¡@¡@¡@¡@¡@¡@ =¡@50,;
¡@¡@Width¡@¡@¡@¡@¡@¡@ =¡@300
¡@ADD OBJECT (SYS(2015))¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "( ªÅ¥Õ = 1,2,...,N*N )",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,255),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@12,;
¡@¡@Left¡@¡@¡@¡@¡@= 130,;
¡@¡@Top¡@¡@¡@¡@¡@ = 100
¡@ADD OBJECT lblRecL¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "°O¿ý²£¥Í¤¤...",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,0),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@10,;
¡@¡@Visible¡@¡@¡@ = .F.,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = 125
¡@ADD OBJECT lblRec¡@AS LABEL WITH;
¡@¡@AutoSize¡@¡@¡@= .T.,;
¡@¡@BackStyle¡@¡@ =¡@ 0,;
¡@¡@Caption¡@¡@¡@ = "",;
¡@¡@ForeColor¡@¡@ = RGB(255,255,0),;
¡@¡@FontName¡@¡@¡@= "²Ó©úÅé",;
¡@¡@FontSize¡@¡@¡@=¡@10,;
¡@¡@Visible¡@¡@¡@ = .F.,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = 145
¡@ADD OBJECT cmdYes¡@AS CommandButton WITH;
¡@¡@Caption¡@¡@¡@ = "°õ¦æ",;
¡@¡@Height¡@¡@¡@¡@=¡@25,;
¡@¡@Width¡@¡@¡@¡@ =¡@75,;
¡@¡@Left¡@¡@¡@¡@¡@=¡@15,;
¡@¡@Top¡@¡@¡@¡@¡@ = ThisForm.Height-36
¡@ADD OBJECT cmdCancel AS CommandButton WITH;
¡@¡@Caption¡@¡@¡@ = "Â÷¶}",;
¡@¡@Height¡@¡@¡@¡@=¡@25,;
¡@¡@Width¡@¡@¡@¡@ =¡@75,;
¡@¡@Left¡@¡@¡@¡@¡@= ThisForm.Width-90,;
¡@¡@Top¡@¡@¡@¡@¡@ = ThisForm.Height-36
¡@PROCEDURE spinNum.Valid
¡@WITH This.Parent
¡@¡@.ediNums.Valid
¡@ENDWITH
¡@ENDPROC
¡@PROCEDURE ediNums.Valid
¡@* One
¡@WITH This.Parent
¡@¡@STORE .spinNum.Value¡@¡@¡@¡@¡@TO UserForm1_nspinNum
¡@¡@STORE ALLTRIM(.ediNums.Value) TO UserForm1_cediNums
¡@ENDWITH
¡@UserForm1_lCHKOK = .T.
¡@* Two
¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@UserForm1_cAlias = ALIAS()
¡@¡@UserForm1_nRecno = RECNO()
¡@¡@* > ±N¦h¦C¨Ö¬°¤@¦C
¡@¡@UserForm1_cediNums¡@= CHRTRAN(UserForm1_cediNums,CHR(13)+CHR(10)+" ","")
¡@¡@* > ±N¼ÆȦr¦ê¥h¤p¼Æ«á¦s¤J Cursor
¡@¡@SELECT 0
¡@¡@CREATE CURSOR TMP_ediNums (NUM N(5))
¡@¡@UserForm1_nCommaCNT = OCCURS(",",UserForm1_cediNums)
¡@¡@UserForm1_cediNums1¡@= "," + UserForm1_cediNums + ","
¡@¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nCommaCNT+1
¡@¡@¡@IF M_lIsVFP7
¡@¡@¡@¡@UserForm1_nNum = VAL(STR(VAL(STREXTRA(UserForm1_cediNums1,",",",",UserForm1_SUB_A))))
¡@¡@¡@ELSE
¡@¡@¡@¡@UserForm1_nSemicolonThis = AT(",",UserForm1_cediNums1,UserForm1_SUB_A)
¡@¡@¡@¡@UserForm1_nSemicolonNext = AT(",",UserForm1_cediNums1,UserForm1_SUB_A+1)
¡@¡@¡@¡@UserForm1_nNum = VAL(STR(VAL(SUBSTR(UserForm1_cediNums1,UserForm1_nSemicolonThis+1,UserForm1_nSemicolonNext-UserForm1_nSemicolonThis-1))))
¡@¡@¡@ENDIF
¡@¡@¡@APPEND BLANK
¡@¡@¡@REPLACE NUM WITH UserForm1_nNum
¡@¡@ENDFOR
¡@¡@* > ¥h±¼«ÂÐȨë²Õ¤º©wȪº¤º®e
¡@¡@SELECT¡@DIST A.NUM FROM TMP_ediNums A ;
¡@¡@¡@GROUP BY A.NUM ;
¡@¡@¡@INTO CURSOR TMP_ediNums1
¡@¡@UserForm1_cediNums = SPACE(0)
¡@¡@SELECT TMP_ediNums1
¡@¡@SCAN ALL
¡@¡@¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + ","
¡@¡@¡@ENDIF
¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + LTRIM(STR(NUM))
¡@¡@ENDSCAN
¡@¡@* >
¡@¡@IF !RECCOUNT("TMP_ediNums1") = UserForm1_nspinNum * UserForm1_nspinNum
¡@¡@IF MESSAGEBOX("¤º©wȬO§_¥H¼Æ¾Çªk©wȨӨD¸Ñ¡H",4+32+256,This.Name) = 6
¡@¡@¡@UserForm1_cediNums = SPACE(0)
¡@¡@ELSE
¡@¡@¡@UserForm1_lCHKOK = .F.
¡@¡@¡@=MESSAGEBOX("½Ð×¥¿¤º©wÈ¡I",0+48+0,This.Name)
¡@¡@ENDIF
¡@¡@ENDIF
¡@¡@USE IN TMP_ediNums1
¡@¡@USE IN TMP_ediNums
¡@¡@IF !EMPTY(UserForm1_cAlias)
¡@¡@¡@SELECT (UserForm1_cAlias)
¡@¡@¡@GOTO (MAX(UserForm1_nRecno,1))
¡@¡@ENDIF
¡@ENDIF
¡@* Three
¡@WITH This.Parent
¡@¡@.ediNums.Value = UserForm1_cediNums
¡@ENDWITH
¡@RETURN UserForm1_lCHKOK
¡@ENDPROC
¡@PROCEDURE cmdYes.Click
¡@* One
¡@WITH This.Parent
¡@¡@STORE .spinNum.Value¡@¡@¡@¡@¡@TO UserForm1_nspinNum
¡@¡@STORE ALLTRIM(.ediNums.Value) TO UserForm1_cediNums
¡@ENDWITH
¡@* > «Ø¥ß¦s©ñ¸Ñªº¤º®e
¡@UserForm1_mSolution = SPACE(0)
¡@* > «Ø¥ß¦s©ñ¸Ñªº¤º®e¤§ÀɮצWºÙ
¡@UserForm1_cFileName = SYS(2015) + ".TXT"
¡@* > «Ø¥ß N ¶¥¤è°}ªº Cursor
¡@SELECT 0
¡@CREATE CURSOR TMP_Square ;
¡@¡@(nRow N(3),nCol N(3),Num N(4))
¡@INDEX ON TRANSFORM(nRow,"@L 999")+TRANSFORM(nCol,"@L 999") TAG TAG01
¡@* Two
¡@* > Y¤º©wȬ°±Ä¥Î¼Æ¾Çªk©wÈ
¡@IF EMPTY(UserForm1_cediNums)
¡@¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nspinNum*UserForm1_nspinNum
¡@¡@¡@IF !EMPTY(UserForm1_cediNums)
¡@¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + ","
¡@¡@¡@ENDIF
¡@¡@¡@UserForm1_cediNums = UserForm1_cediNums + LTRIM(STR(UserForm1_SUB_A))
¡@¡@ENDFOR
¡@ENDIF
¡@UserForm1_cediNums = "," + UserForm1_cediNums + ","
¡@* > pºâ¦@¦³´X²Õ¥i¯à¸Ñ¥H¨ÑÅã¥Ü¸ê°T¨Ï¥Î
¡@M_nReccount = 1
¡@FOR UserForm1_SUB_A = 1 TO UserForm1_nspinNum*UserForm1_nspinNum
¡@¡@M_nReccount = M_nReccount * UserForm1_SUB_A
¡@ENDFOR
¡@* > Åã¥Ü°O¿ý²£¥Íµ§¼Æ¸ê°T
¡@WITH This.Parent
¡@¡@.lblRecL.Caption = "°O¿ý²£¥Í¤¤...¡@ " + TRANSFORM(M_nReccount,M_nTran)
¡@¡@.lblRec.Caption¡@= ""
¡@¡@.lblRecL.Visible = .T.
¡@¡@.lblRec.Visible¡@= .T.
¡@ENDWITH
¡@* > °O¿ý²£¥Íµ§¼Æ
¡@M_nRecCNT = 0
¡@* > ¨D¸Ñ
¡@M_nSolCNT = 0
¡@__Esc¡@¡@ = .F.
¡@__IsCalc¡@= .T.
¡@=CIRCLE(UserForm1_nspinNum*UserForm1_nspinNum)
¡@__IsCalc¡@= .F.
¡@* > Åã¥Üµ²ªG
¡@IF EMPTY(UserForm1_mSolution)
¡@¡@UserForm1_mSolution = "µL¸Ñ¡I"
¡@ELSE
¡@¡@UserForm1_mSolution = "Á`¦@¦³ " + LTRIM(TRANSFORM(M_nSolCNT,"@R 999,999,999")) + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@" ²Õ¸Ñ¡G" + CHR(13) + CHR(10) + UserForm1_mSolution
¡@ENDIF
¡@=STRTOFILE(UserForm1_mSolution,UserForm1_cFileName)
¡@MODIFY FILE (UserForm1_cFileName) NOEDIT
¡@DELETE FILE (UserForm1_cFileName)
¡@USE IN TMP_Square
¡@ENDPROC
¡@PROCEDURE KeyPress
¡@LPARAMETERS nKeyCode, nShiftAltCtrl
¡@DO CASE
¡@* >> ESC
¡@CASE nKeyCode =¡@27
¡@¡@¡@ __Esc = .T.
¡@¡@¡@ IF !__IsCalc
¡@¡@¡@¡@ .cmdCancel.SetFocus
¡@¡@¡@¡@ .cmdCancel.Click
¡@¡@¡@ ENDIF
¡@ENDCASE
¡@ENDPROC
¡@PROCEDURE Destroy
¡@ThisForm.Visible = .F.
¡@RELEASE THISFORM
¡@ENDPROC
¡@PROCEDURE cmdCancel.Click
¡@THISFORM.Destroy()
¡@ENDPROC
ENDDEFINE
* ---------- ENDDEFINE CLASS ---------- *
FUNCTION CIRCLE
* »¼°j¨ç¼Æ
* ------------------------------------------ *
* L_nNum¡@¡@¡@¡@N ±q 1 ±Æ¨ì´X
* ------------------------------------------ *
* ¥H¤U¥u¨Ñ¥»¨ç¼Æ¤º³¡¨Ï¥Î
*
* L_nCircle¡@¡@ N ¥Ø«e¸Ó²Õ±Æ¦Cªº²Ä´XÓ
* L_cGroup¡@¡@¡@C ¤W¼h¶Ç¨Óªº¸Ó²Õ±Æ¦C¤º®e
* ------------------------------------------ *
LPARAMETERS L_nNum,L_nCircle,L_cGroup
LOCAL W1_SUB_A,W1_cSUB_A,W1_SUB_B,W1_SUB_C,W1_cGroup
LOCAL W1_nSemicolonThis,W1_nSemicolonNext,W1_nNum,W1_nNNum
LOCAL W1_nRow,W1_nCol,W1_cFields4SQL,W1_aSQL
LOCAL W1_nSum4Square,W1_lEqual
IF __Esc
¡@RETURN
ENDIF
*
IF PCOUNT() = 1
¡@L_nCircle = 1
¡@L_cGroup¡@= SPACE(0)
ENDIF
* ±Æ¦C²£¥Í
FOR W1_SUB_A = 1 TO L_nNum
¡@W1_cSUB_A = TRANSFORM(W1_SUB_A,"@L 99")
¡@W1_cGroup = L_cGroup¡@¡@¡@¡@¡@¡@¡@ && ©Ó±µ¤W¼h¶Ç¨Óªº±Æ¦C¤º®e
¡@IF W1_cSUB_A $ W1_cGroup¡@¡@¡@¡@¡@ && ¨C¤@²Õ±Æ¦C¤£¯à¦³«ÂЪº¼Æ¦r
¡@¡@LOOP
¡@ENDIF
¡@IF !EMPTY(W1_cGroup)¡@¡@¡@¡@¡@¡@¡@ && ¥[¤J·s¤º®e«eªº°Ê§@
¡@¡@W1_cGroup = W1_cGroup + ","
¡@ENDIF
¡@W1_cGroup = W1_cGroup + W1_cSUB_A¡@&& ¥[¤J·s¤º®e
¡@IF L_nCircle = L_nNum¡@¡@¡@¡@¡@¡@¡@&& ¦pªG¬O³Ì«á¤@¼h´N§PÂ_
¡@¡@M_nRecCNT = M_nRecCNT + 1
¡@¡@IF MOD(M_nRecCNT,10000) = 1 OR M_nRecCNT = M_nReccount
¡@¡@¡@WW_oMESSAGEBOX.lblRec.Caption = TRANSFORM(M_nRecCNT,M_nTran) + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@" («ö Esc Á䤤Â_)"
¡@¡@ENDIF
¡@¡@* > §PÂ_¬O§_¬°¥¿½T¸Ñ
¡@¡@W1_lEqual = .T.
¡@¡@W1_cGroup = "," + W1_cGroup + ","
¡@¡@SELECT TMP_Square
¡@¡@ZAP
¡@¡@* >> ¨ú±o¤@Ó N ¶¥¤è°}¹Ï
¡@¡@W1_nSum4Square = 0
¡@¡@FOR W1_SUB_B = 1 TO L_nNum
¡@¡@¡@IF M_lIsVFP7
¡@¡@¡@¡@W1_nNum¡@= VAL(STREXTRA(W1_cGroup,",",",",W1_SUB_B))
¡@¡@¡@¡@W1_nNNum = VAL(STREXTRA(UserForm1_cediNums,",",",",W1_nNum))
¡@¡@¡@ELSE
¡@¡@¡@¡@W1_nSemicolonThis = AT(",",W1_cGroup,W1_SUB_B)
¡@¡@¡@¡@W1_nSemicolonNext = AT(",",W1_cGroup,W1_SUB_B+1)
¡@¡@¡@¡@W1_nNum = VAL(SUBSTR(W1_cGroup,W1_nSemicolonThis+1,W1_nSemicolonNext-W1_nSemicolonThis-1))
¡@¡@¡@¡@W1_nSemicolonThis = AT(",",UserForm1_cediNums,W1_nNum)
¡@¡@¡@¡@W1_nSemicolonNext = AT(",",UserForm1_cediNums,W1_nNum+1)
¡@¡@¡@¡@W1_nNNum = VAL(SUBSTR(UserForm1_cediNums,W1_nSemicolonThis+1,W1_nSemicolonNext-W1_nSemicolonThis-1))
¡@¡@¡@ENDIF
¡@¡@¡@W1_nRow = INT(W1_SUB_B/UserForm1_nspinNum) + 1
¡@¡@¡@W1_nCol = MOD(W1_SUB_B,UserForm1_nspinNum)
¡@¡@¡@IF W1_nCol = 0
¡@¡@¡@¡@W1_nRow = W1_nRow - 1
¡@¡@¡@¡@W1_nCol = UserForm1_nspinNum
¡@¡@¡@ENDIF
¡@¡@¡@APPEND BLANK
¡@¡@¡@REPLACE nRow WITH W1_nRow
¡@¡@¡@REPLACE nCol WITH W1_nCol
¡@¡@¡@REPLACE Num¡@WITH W1_nNNum
¡@¡@¡@W1_nSum4Square = W1_nSum4Square + W1_nNNum
¡@¡@ENDFOR
¡@¡@W1_nSum4Square = W1_nSum4Square / UserForm1_nspinNum
¡@¡@* >> ¨C¤@¾î¦CÁ`©M¡BÁa¦æÁ`©M¤Î¹ï¨¤½uÁ`©M³£¥²¶·¬Ûµ¥
¡@¡@FOR W1_SUB_B = 1 TO 3
¡@¡@¡@W1_cFields4SQL = SPACE(0)
¡@¡@¡@DO CASE
¡@¡@¡@CASE W1_SUB_B = 1¡@&& ¾î¦C
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,UserForm1_nspinNum)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow=] + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@LTRIM(STR(W1_SUB_C)) + [,A.Num,0))]
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@CASE W1_SUB_B = 2¡@&& Áa¦æ
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,UserForm1_nspinNum)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nCol=] + ;
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@LTRIM(STR(W1_SUB_C)) + [,A.Num,0))]
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@CASE W1_SUB_B = 3¡@&& ¹ï¨¤½u
¡@¡@¡@¡@¡@ DIMENSION W1_aSQL(1,2)
¡@¡@¡@¡@¡@ STORE 0 TO W1_aSQL
¡@¡@¡@¡@¡@ FOR W1_SUB_C = 1 TO 2
¡@¡@¡@¡@¡@¡@ IF !EMPTY(W1_cFields4SQL)
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + ","
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@¡@ IF W1_SUB_C = 1¡@&& ¥ª¤W¥k¤U
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow=A.nCol,A.Num,0))]
¡@¡@¡@¡@¡@¡@ ELSE¡@¡@¡@¡@¡@¡@ && ¥k¤W¥ª¤U
¡@¡@¡@¡@¡@¡@¡@ W1_cFields4SQL = W1_cFields4SQL + [SUM(IIF(A.nRow+A.nCol=UserForm1_nspinNum+1,A.Num,0))]
¡@¡@¡@¡@¡@¡@ ENDIF
¡@¡@¡@¡@¡@ ENDFOR
¡@¡@¡@ENDCASE
¡@¡@¡@* >>
¡@¡@¡@SELECT &W1_cFields4SQL FROM TMP_Square A ;
¡@¡@¡@¡@INTO ARRAY W1_aSQL
¡@¡@¡@FOR W1_SUB_C = 1 TO ALEN(W1_aSQL,2)
¡@¡@¡@¡@IF !W1_nSum4Square = W1_aSQL(1,W1_SUB_C)
¡@¡@¡@¡@¡@W1_lEqual = .F.
¡@¡@¡@¡@¡@EXIT
¡@¡@¡@¡@ENDIF
¡@¡@¡@ENDFOR
¡@¡@¡@IF !W1_lEqual
¡@¡@¡@¡@EXIT
¡@¡@¡@ENDIF
¡@¡@ENDFOR
¡@¡@IF W1_lEqual
¡@¡@¡@M_nSolCNT = M_nSolCNT + 1
¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + CHR(13) + CHR(10)
¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + TRANSFORM(M_nSolCNT,"@L 999") + "."
¡@¡@¡@FOR W1_SUB_B = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + CHR(13) + CHR(10)
¡@¡@¡@¡@FOR W1_SUB_C = 1 TO UserForm1_nspinNum
¡@¡@¡@¡@¡@SEEK TRANSFORM(W1_SUB_B,"@L 999")+TRANSFORM(W1_SUB_C,"@L 999")
¡@¡@¡@¡@¡@UserForm1_mSolution = UserForm1_mSolution + TRANSFORM(Num,"999999")
¡@¡@¡@¡@ENDFOR
¡@¡@¡@ENDFOR
¡@¡@ENDIF
¡@ELSE¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ && §_«h°õ¦æ¤U¤@¼h»¼°j¨ç¼Æ
¡@¡@IF !__Esc
¡@¡@¡@__Esc = INKEY() = 27
¡@¡@ENDIF
¡@¡@IF __Esc
¡@¡@¡@RETURN
¡@¡@ENDIF
¡@¡@=CIRCLE(L_nNum,L_nCircle+1,W1_cGroup)
¡@ENDIF
ENDFOR
RETURN |
|