有没有算24点的VFP源程序?
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 12:40:23
有没有算24点的VFP源程序?
有没有算24点的VFP源程序?
有没有算24点的VFP源程序?
算法按钮代码如下:
THISFORM.LOCKSCREEN = .T.
THISFORM.Grdtemp2.RECORDSOURCE = ""
&&运算符号排列
CLOSE ALL
CLEAR
USE ss1
DELETE ALL
PACK
a90='+-*/'
FOR i1=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a90,i1,1)),s2 WITH ALLTRIM(SUBSTR(a90,i1,1)),;
s3 WITH ALLTRIM(SUBSTR(a90,i1,1))
FOR i2=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a90,i1,1)),s2 WITH ALLTRIM(SUBSTR(a90,i2,1)),;
s3 WITH ALLTRIM(SUBSTR(a90,i1,1))
FOR i3=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a90,i1,1)),s2 WITH ALLTRIM(SUBSTR(a90,i2,1)),;
s3 WITH ALLTRIM(SUBSTR(a90,i3,1))
ENDFOR
ENDFOR
ENDFOR
SELECT DISTINCT s1,s2,s3 FROM ss1 INTO DBF temp4
&&值排列
USE _24res
DELETE ALL
PACK
a91='abcd'
FOR i1=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a91,i1,1)),s2 WITH ALLTRIM(SUBSTR(a91,i1,1)),;
s3 WITH ALLTRIM(SUBSTR(a91,i1,1)),s4 WITH ALLTRIM(SUBSTR(a91,i1,1))
FOR i2=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a91,i1,1)),s2 WITH ALLTRIM(SUBSTR(a91,i2,1)),;
s3 WITH ALLTRIM(SUBSTR(a91,i1,1)),s4 WITH ALLTRIM(SUBSTR(a91,i1,1))
FOR i3=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a91,i1,1)),s2 WITH ALLTRIM(SUBSTR(a91,i2,1)),;
s3 WITH ALLTRIM(SUBSTR(a91,i3,1)),s4 WITH ALLTRIM(SUBSTR(a91,i1,1))
FOR i4=1 TO 4
APPEND BLANK
REPLACE s1 WITH ALLTRIM(SUBSTR(a91,i1,1)),s2 WITH ALLTRIM(SUBSTR(a91,i2,1)),;
s3 WITH ALLTRIM(SUBSTR(a91,i3,1)),s4 WITH ALLTRIM(SUBSTR(a91,i4,1))
ENDFOR
ENDFOR
ENDFOR
ENDFOR
SELECT DISTINCT s1,s2,s3,s4 FROM _24res INTO DBF temp3
SELECT temp3
SCAN
IF s1=s2 OR s1=s3 OR s1=s4 OR s2=s3 OR s2=s4 OR s3=s4
DELETE &&去掉相同项
ENDIF
ENDSCAN
PACK
&&清空运算结果
USE _24点
DELETE ALL
PACK
CLOSE ALL
&&置数
USE temp3 IN 1
SELECT temp3
PRIVATE m1,m2,m3,m4
m1=ALLTRIM(STR(a))
m2=ALLTRIM(STR(b))
m3=ALLTRIM(STR(c))
m4=ALLTRIM(STR(d))
SCAN
DO CASE
CASE ALLTRIM(s1)='a'
REPLACE s1 WITH m1
CASE ALLTRIM(s1)='b'
REPLACE s1 WITH m2
CASE ALLTRIM(s1)='c'
REPLACE s1 WITH m3
CASE ALLTRIM(s1)='d'
REPLACE s1 WITH m4
ENDCASE
ENDSCAN
SCAN
DO CASE
CASE ALLTRIM(s2)='a'
REPLACE s2 WITH m1
CASE ALLTRIM(s2)='b'
REPLACE s2 WITH m2
CASE ALLTRIM(s2)='c'
REPLACE s2 WITH m3
CASE ALLTRIM(s2)='d'
REPLACE s2 WITH m4
ENDCASE
ENDSCAN
SCAN
DO CASE
CASE ALLTRIM(s3)='a'
REPLACE s3 WITH m1
CASE ALLTRIM(s3)='b'
REPLACE s3 WITH m2
CASE ALLTRIM(s3)='c'
REPLACE s3 WITH m3
CASE ALLTRIM(s3)='d'
REPLACE s3 WITH m4
ENDCASE
ENDSCAN
SCAN
DO CASE
CASE ALLTRIM(s4)='a'
REPLACE s4 WITH m1
CASE ALLTRIM(s4)='b'
REPLACE s4 WITH m2
CASE ALLTRIM(s4)='c'
REPLACE s4 WITH m3
CASE ALLTRIM(s4)='d'
REPLACE s4 WITH m4
ENDCASE
ENDSCAN
USE temp4 IN 2
USE _24点 IN 3
SELECT temp3
&& 运算
SCAN
SELECT temp4
SCAN
e1=temp3.s1+temp4.s1+temp3.s2+temp4.s2+temp3.s3+temp4.s3+temp3.s4
e2='('+temp3.s1+temp4.s1+temp3.s2+temp4.s2+temp3.s3+')'+temp4.s3+temp3.s4
e3='('+temp3.s1+temp4.s1+temp3.s2+')'+temp4.s2+'('+temp3.s3+temp4.s3+temp3.s4+')'
e4=temp3.s1+temp4.s1+'('+temp3.s2+temp4.s2+temp3.s3+temp4.s3+temp3.s4+')'
e5='('+temp3.s1+temp4.s1+temp3.s2+')'+temp4.s2+temp3.s3+temp4.s3+temp3.s4
e6='('+'('+temp3.s1+temp4.s1+temp3.s2+')'+temp4.s2+temp3.s3+')'+temp4.s3+temp3.s4
e7='('+temp3.s1+temp4.s1+'('+temp3.s2+temp4.s2+temp3.s3+')'+')'+temp4.s3+temp3.s4
SELECT _24点
DO CASE
CASE &e1=24
APPEND BLANK
REPLACE 算式 WITH e1+'=24'
CASE &e2=24
APPEND BLANK
REPLACE 算式 WITH e2+'=24'
CASE &e3=24
APPEND BLANK
REPLACE 算式 WITH e3+'=24'
CASE &e4=24
APPEND BLANK
REPLACE 算式 WITH e4+'=24'
CASE &e5=24
APPEND BLANK
REPLACE 算式 WITH e5+'=24'
CASE &e6=24
APPEND BLANK
REPLACE 算式 WITH e6+'=24'
CASE &e7=24
APPEND BLANK
REPLACE 算式 WITH e7+'=24'
ENDCASE
SELECT temp4
ENDSCAN
SELECT temp3
ENDSCAN
SELECT DISTINCT * FROM _24点 INTO DBF temp2
CLOSE ALL
USE temp2
THISFORM.LOCKSCREEN = .F.
THISFORM.Grdtemp2.RECORDSOURCE = 'temp2.dbf'
THISFORM.REFRESH
THISFORM.grdTemp2.column1.header1.CAPTION='运算方法枚举'
THISFORM.grdTemp2.column1.header1.FONTBOLD=.T.
THISFORM.grdTemp2.column1.header1.FORECOLOR=RGB(0,0,255)
THISFORM.grdTemp2.column1.header1.ALIGNMENT=2