资源描述:
《几个有用vb程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、自编VB函数库-函数-编程2010-12-2912:58自编VB函数库-函数-编程最后更新于2011.1.3常见常用编程函数,大部分都是自己写的,以后将不断完善,如有错误,请读者及时指出。(本人菜鸟^_^)☆itianda☆目录1.打印三角形2.判断素数(质数)3.交换变量4.冒泡排序(查看详细)5.延迟函数6.Eval函数-在VB中使用Eval7.文字三角形(由第一个函数“打印三角形”改造)8.RGB颜色的分解9.文字三角形(更新版)正文1.打印三角形函数说明:打印三角形,成功返回1,失败返回0参数说明:maxLength是底边中的字符个数,direction指明三角形的方
2、向(上或下)FunctionPrintTriangle(ByValmaxLengthAsLong,ByValdirectionAsBoolean)AsLongIfmaxLengthMod2<>0ThenConstdir_Up=TrueConstdir_Down=FalseDims,s1,s2,s3AsStringprintline=(maxLength+1)/2Fori=1Toprintlines1=String(printline-i,"")s2=String((2*i-1),"*")s3=s1Ifdirection=dir_UpThenIfLen(s)=0Thens=s+
3、s1+s2+s3Elses=s+vbNewLine+s1+s2+s3EndIfElseIfLen(s)=0Thens=s1+s2+s3+sElses=s1+s2+s3+vbNewLine+sEndIfEndIfNextMe.PrintsPrintTriangle=1ElsePrintTriangle=0EndIfEndFunction2.判断素数(质数)说明:2既不是质数,也不是合数FunctionIsSushu(ByValNumAsInteger)DimSushuAsBooleanSushu=TrueIfNum>=2ThenFori=2ToNum-1If(NumModi)=
4、0ThenSushu=FalseExitForEndIfNextIsSushu=SushuElseIsSushu=FalseEndIfEndFunction3.交换变量说明:注意是ByRef,不是ByValSubSwap(ByRefa,ByRefb)'交换变量c=aa=bb=cEndSub4.冒泡排序(查看详细)SubSwap(ByRefa,ByRefb)'交换两数c=aa=bb=cEndSubSubSmallFirst(ByRefa,ByRefb)'交换两数使较小的数字在前Ifa>bThenSwapa,bEndSubSubSort(ByRefNumbers())'冒泡排序c
5、=UBound(Numbers,1)Fori=1Toc-1Forj=0Toc-2SmallFirstNumbers(j),Numbers(j+1)NextjNextiEndSub5.延迟函数说明:不会“假死”的延迟函数,好像也叫异步延迟,用来代替API函数“Sleep”,参数的单位是毫秒下面是两个延迟函数,第二个误差比第一个小,后面有误差比较图第一个延迟函数(简记为Delay1)SubDelay(ByValMillisecondsAsLong)time1=GetTickCountDoDoEventstime2=GetTickCountSleep1 '这句是在网友AppConf
6、ig的建议下添加的,降低了CPU占用率,不过增加了误差。。。LoopUntiltime2-time1>=Milliseconds'第一次写的时候忘了加等号"=",现在加上了EndSub第二个延迟函数(简记为Delay2)SubDelay(ByValMillisecondsAsLong)time1=GetTickCountDoDoEventstime2=GetTickCountIfMilliseconds-(time2-time1)>=2ThenSleep1EndIfLoopUntiltime2-time1>=MillisecondsEndSub两函数误差比较比较结果很显然,D
7、elay2的误差更小。生成比较图的代码:PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Print"Begin","单位:ms"PrintPrint"理想延迟","Delay1延迟","Delay2延迟","Delay1误差","Delay2误差"Forms=0To100Step5t1=GetTickCountDelay1mst2=GetTickCountd1=(t2-t1)'实际延迟c1=d1-ms