博文
例题:奇数阶的幻方阵(2006-06-28 14:56:00)
摘要: 如果整数方阵的每行各数之和、每列各数之各以及两个对角线上各数之和全都相等,则称之为幻方阵。此时,每行(每列或对角线)各数之和1/2 n(n2+1),称之为方阵常数。由自然数1~n2构成的n(n为>=3的奇数)阶幻方阵是最简单的一种。 幻方阵有以下规律: 1、数1放在第一行的正中一列 2、从数2起每数所在的行数比前一数所在的行数减1,所在的列数比前一数所在的列数加1。若行数超出下界(即I=0),则改为上界(令I=N),若列数超出上界(即J=N+1),则改为下界(令J=1)。若某数为N的倍数,则其后之数所在的位置为列数不变,行数加1。 首先在表单的Load事件代码中定义全局变量n用来存放所选择的幻方阵的阶数,定义全局变量数组Lab[1,1]用来存放显示幻方阵各个元素的标签组。 public lab(1,1),n 在表单的destroy事件代码中释放全局变量及数组: lab=0 release lab,n在表单的Activate事件代码中调用“布阵”按扭的click事件代码:thisform.command1.click容器container1的init事件代码:n=thisform.spinner1.valuedd=230/ndd=int(dd+.5)dime lab[n,n]for i =1 to n*n k=allt(str(i)) this.addobject('label&k','label') lab[i]=this.label&kendforfor i=1 to n for j=1 to n with lab[i,j] .left=dd*(j-1)+2 &nb......
用“筛法”找1~100之间的全部素数(2006-06-22 10:58:00)
摘要:编写表单的Destroy事件代码:lab=0编写容器container1的init事件代码:public lab[10,10]for i = 1 to 100 k=allt(str(i)) this.addobject('lab&k','label') lab[i]=this.lab&kendforfor i = 1 to 10 for j=1 to 10 with lab[i,j] .left=25*(j-1)+2 .top =20*(i-1)+2 .height=20 .width=25 .visible=.t. .caption=allt(str((i-1)*10+j)) .alignment=2 .fontbold=.t. .fontname='garamond' endwith endfor endfor 编写“开始”按钮command1的click事件代码:n = 100lab(1).enabled=.f.for i = 2 to sqrt(n) if la......
后面的check1的属性究竟是什么?(2006-06-06 10:33:00)
摘要:使用数组作为组合框的数据源编写表单的事件代码:load事件:public a(9,3)a(1,1)="曹植"a(1,2)="三国"a(1,3)="七步诗"+chr(13)+chr(13)+"煮豆燃豆萁,"+chr(13)+"豆在釜中泣:"+chr(13)+"'本是同根生,"+chr(13)+"相煎何太急!'"a(2,1)="李白"a(2,2)="唐代"a(2,3)="望庐山瀑布"+chr(13)+chr(13)+"日照香炉生紫烟,"+chr(13)+"遥看瀑布挂前川。"+chr(13)+"飞流直下三千尺,"+chr(13)+"疑是银河落九天。"a(3,1)="杜甫"a(3,2)="唐代"a(3,3)="绝句"+chr(13)+chr(13)+"两个黄鹂鸣翠柳,"+chr(13)+"一行白鹭上青天。"+chr(13)+"窗含西岭千秋雪,"+chr(13)+"站泊东吴万里船。"a(4,1)="苏轼"a(4,2)="宋代"a(4,3)="题西林壁"+chr(13)+chr(13)+"横看成岭侧成峰,"+chr(13)+"远近高低各不同。"+chr(13)+"不识庐山真面目"+chr(13)+"只缘身在此山中。"a(5,1)="李清照"a(5,2)="宋代"a(5,3)="绝句"+chr(13)+chr(13)+"生当作人杰,"+chr(13)+"死亦为鬼雄。"+chr(13)+"至今思项羽,"+chr(13)+"不肯过江东。"a(6,1)="林升"a(6,2)="林升"a(6,3)="南宋"a(6,2)="题临安邸"+chr(13)+chr(13)+"山外青山楼外楼,"+chr(13)+"西湖歌舞几时休?"+chr(13)+"暖风吹得游人醉"+chr(13)+"直把杭州当汴州。"a(7,1)="马致远"a(7,2)="元代"a(7,3)="天净沙-秋思"+chr(13)+chr(13)+"枯藤老树昏鸦,"+chr(13)+"小桥流水人家,"+chr(13)+"古道西风瘦马。"+chr(13)+"夕阳西下,"+chr(13)+"断肠人在天涯。"a(8,1)="于谦"a(8,2)="明代"a(8,3)="石灰咏"+chr(13)+chr(13)+"千锤万凿出深山,"+chr(13)+"烈火焚烧若等闲。"+chr(13)+"粉身碎骨浑不怕,"+chr(13)+"要留清白在人间。......
例题:(关于排序)(2006-05-18 16:17:00)
摘要:由计算机随机生成10个互不相同的数,然后将这些数按从小到大的顺序显示出来。表单的load事件代码中声明数组:public a(10)随机整数的生成由表单的activate事件代码完成:p=""for i=1 to 10 yes=1 do while yes=1 x=int(rand()*100) yes=0 for j=1 to i-1 if x=val(a(j)) yes=1 exit endif endfor enddo a(i)=str(x,2) p=p+a(i)+"," endfor thisform.label2.caption=left(p,len(p)-2) thisform.label4.caption=""排序command1的事件代码:asort(a)p=""for i=1 to 10 p=p+a(i)+"," endfor thisform.label4.caption=left(p,len(p)-2)重置按钮command2的click事件代码:thisform.activate......
数组数据的处理(2006-05-17 16:29:00)
摘要:1、处理数组元素的函数 数组提供了一种快速排序数据的方法。如果数据保存在数组中,就可以很方便地对其进行检索、排序或其他各种操作。可以使用如下函数来处理数组元素。 (1) 数组元素的排序-asort() (2)数组元素的搜索-ascan() (3)数组元素的删除-adel() (4)数组元素的插入-ains() (5)数组元素的个数-alen()2、与数组表记录进行数据交换的命令用于数组与数据表记录之间进行数据交换的命令有(1)scatter-将数据从当前记录复制到数组中去。(2)gather-用来自数组的数据替换当前表中的数据。(3) copy to array-从当前表向一个数组复制数据。(4)append from array-用来自数组的数据给当前表追加记录。......
一道例题(2006-05-17 09:01:00)
摘要:设有一个5*5的方阵,其中元素是由计算机随机生成的小于100的整数。求出:(1)主对角线上的元素之和;(2)方阵中最大的元素。编写代码:首先在表单的load事件代码中声明数组:public a(5,5)方阵的生成由表单的active事件代码完成:for i=1 to 25 yes=1 do while yes=1 x=int(rand()*100) yes=0 for j=1 to i-1 if x=val(a(j)) yes=1 exit endif endfor enddo a(i)=str(x,3) endfor thisform.list1.numberofelements=5 thisform.text1.value="" thisform.text2.value=""在表单的unload事件代码中释放全局变量数组a(): release a计算功能由“计算”按钮command1的click事件代码完成:s=0for i=1 to 5 s=s + val(a(i,i))endforthisform.text1.value=smax=0for i=1 to 5 for j= 1 to 5 if max< val(a(i,j)) max......
