VFP常见编程实例1、1-100的累加**求1到100的累加值CLEARs=0i=1DOWHILEi=100s=s+ii=i+1&&一定记住先累加后循环ENDDO?sRETURN2、阶乘**求5的阶乘CLEARj=1i=1DOWHILEi=5j=j*ii=i+1ENDDO?jRETURN3、求阶乘和**求1至5的阶乘和CLEARs=0i=1j=1DOWHILEi=5j=j*is=s+ji=i+1ENDDO?sRETURN4、条件定位**查询定位记录指针在赵伟上CLEARUSE学生LOCATEFOR姓名=赵伟IFFOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位**用scan语句查询定位记录在赵伟上CLEARSCANFOR姓名=赵伟DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来**把年龄小于30岁的人显示出来CLEARSCANFOR年龄30DISPLAYENDSCANRETURN7、查找男性职工**查找男性职工CLEARLOCATEFOR性别=男DOWHILEFOUND()DISPLAYCONTINUEENDDORETURN**查找男性职工CLEARLOCATEFOR性别=男DOWHILENOTEOF()DISPLAYCONTINUEENDDORETURN**查找男性职工CLEARUSE职员基本信息表LOCATEFOR性别=男DOWHILE.t.IFFOUND()thenDISPLAYELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCELENDIFCONTINUEENDDO**查找男性职工settalkoffclearopendatabase家庭成员管理.dbcusestu.dbfscanfornoteof()ifxb=女skipelsedisplayskipendifendscanclosedatabaseusesettalkonreturn8、新值换旧值**有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore1toa,bi=3dowhilei=12c=a+ba=bb=ci=i+1enddo?一年共出生兔子:,creturn9、多位整数各个位数相加**求多位整数各个位数之和CLEARs=0input请输入一个多位整数:toaDOWHILEa0s=s+MOD(a,10)&&将a取余正好是个位上的数a=INT(a/10)&&将a除10取整正好是除个位之后的数ENDDO?这个整数的各个位数之和是:,sRETURN10、找100-999之间的“水仙花数”CLEARFORi=100TO999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IFi=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput请输入一个数(=3):tosf=0i=2DOWHILEi=INT(SQRT(s))IFMOD(s,i)0i=i+1LOOPELSEf=1EXITENDIFENDDOIFf=0?str(s,3)+是素数ELSEf=1&&这个表达式可有可无,为了省事完全省略也可以。一般最后一个ELSE语句后面不需要表达式?str(s,3)+不是素数ENDIFRETURN12、求一个班级每个学生的平均成绩**计算一个班级共三十名学生,每位学生5门功课的平均成绩CLEAR&&清屏DIMENSIONx(30,5)&&定义一个数组变量,r为学生数,i为功课数r=1&&给30个学生的计数变量r赋初值1DOWHILEr=30&&循环30次,以计算出30个学生的平均成绩s=0&&为学生一门功课成绩赋初值0i=1&&为五门功课计数变量赋初值1DOWHILEi=5&&为一个学生的五门功课成绩累加5次input请输入学生的成绩tox(r,i)s=s+x(r,i)&&成绩累加i=i+1&&功课累加ENDDO&&返回内循环?这名学生的平均成绩是:,s/5&&显示平均成绩r=r+1&&学生累加ENDDO&&返回外循环13、计算圆的面积*计算圆的面积程序CLEARinput请输入半径的值torinput请输入pi的值topis=pi*r^2?圆的面积是,sRETURN14、将小写字母转换为大写字母NOTE请将任意输入的一个小写字母转换成大写字母,也就是upper()函数的程序实现CLEAR&&请屏WAIT请输入一个小写字母tox&&交互式输入一个小写字母k=ASC(x)&&将小写字母的ASC码赋值给变量KIFk=97ANDk=122then&&97是小写字母a的ASC码值,122是小写字母z的ASC码值?x,的大写字母是,CHR(k-32)&&输出大写字母.chr函数是ASC码所对应的字符ELSEWAIT您输入的不是小写字母WINDOWTIMEOUT5cancelENDIFRETURN&&返回到调用程序15、找出最大数和最小数CLEARinput请输入一个数:toxSTORExTOma,miFORi=2TO10&&因为已经输入一个数X,所以循环次数只有9次input请输入一个数:toxIFmax&&ma是变量中存的数,x是刚输入的数ma=xENDIFIFmixmi=xENDIFENDFOR?最大数是:,ma?最小数是:,miRETURN16、绝对值函数的实现**绝对值函数的实现CLEARinput请输入一个数值tonIFn=0?nELSE?-nENDIFCANCEL17、绝对值函数实现的另一种方法**绝对值函数和另一种实现方法CLEARinput请输入一个数值ton?IIF(n=0,n,-n)CANCEL18、输出成绩等级**用DOCASE语句实现:CLEARinput请输入一个成绩tocjDOcaseCASEcj=90dj=优秀CASEcj=80dj=良好CASEcj=60dj=合格OTHERWISEdj=不合格ENDCASE?djRETURN**用IF语句实现:settalkoffclearinput请输入一个成绩:tosifs=90grade=优秀elseifs=80grade=良好elseifs=60grade=及格elsegrade=不及格endifendifendif?ltrim(str(s))+分对应的等级是:+gradesettalkonreturn19、求一名学生的平均成绩**求一个学生5门功课的平均成绩CLEARs=0i=1DOWHILEi=5input请输入各门功课的成绩toxs=s+xi=i+1ENDDO?s/520、用数组的方法,计算一个学生的平均成绩**用数组保存一个学生五门功课的成绩,然后再计算机其平均成绩CLEARDIMENSIONx(5)s=0i=1DOWHILEi=5input请输入各门功课的成绩tox(i)s=s+x(i)i=i+1ENDDO?s/5RETURN21、用docase语句实现符号函数的功能**请输入一个数,当这个数是负数,就返回-1,当这个数是零,就返回零,当这个数是正数,就返回1CLEARinput请输入一个数tonDOCASECASEn0s=1CASEn=0s=0CASEn0s=-1ENDCASE?sRETURN22、用一般选择语句实现符号函数的功能**符号函数的实现CLEARinput请输入一个数tonIFn0s=1ELSEIFn=0s=0ELSEIFn0s=-1ENDIFENDIFENDIF?s23、用简单选择语句实现符号函数功能**符号函数的实现CLEARinput请输入一个数tonIFn=0s=0ENDIFIFn0s=1ENDIFIFn0s=-1ENDIF?s24、打开数据库和数据表SETtalkoffCLEARaccept请输入数据库名toxOPENDATABASE&xaccept请输入数据表名toyUSE&yLISTuseSETtalkoffreturn25、显示表中指定信息SETTALKOFFCLEAROPENDATABASE时代超越总公司职员信息数据库USE职员基本信息表WAIT请输入待查职工的编号(1-3)TOnIFVAL(n)1.or.VAL(n)3WAIT输入无效,结束程序运行!WINDOWtimeout5RETURNELSESTORE0+nTOaLISTfor职员编号=aENDIFCLOSEDATABASESSETTALKONreturn26、询问后再由用户按(Y/N)键执行的程序实现**求任意一个数的阶乘CLEARDOWHILE.t.input请输入一个数tonp=1s=0FORi=1TOnp=p*is=s+pENDFOR?sWAIT是否继续计算(Y/N)TOynwindowIFUPPER(yn)=YTHENLOOPELSEEXITENDIFENDDORETURN27、根据exact的设置进行字符串匹配比较**exact设置的变化对取值结果的影响SETexactON&&exact为打开状态,字符精确匹配s=in+SPACE(2)IFs==inIFs=in?aELSE?bENDIFELSEIFs=in?cELSE?dENDIFENDIFRETURN28、使一个多位正整数逆序排列CLEARinput请输入一个整数:toxDOWHILEx0y=x%10??yx=INT(x/10)ENDDORETURN29、按编号查找并列出一条记录settalkoffclearaccept请输入数据库名:家庭成员管理:toaopendatabaseaccept请输入数据表名:stu:tobuselistwait请输入一个编号:tocwindowstimeout5ifval(c)=0orval(c)4wait输入的数字不合法,请重新输入一个合法的数字:tocwindowstimeout5elsestore0+ctoaaalistforbh=aaaendifclosedatabasesettalkonreturn30、打开一个数据库,并显示其中的表内容settalkoffclearaccept请输入一个数据库名:家庭成员管理.dbctoxopendatabaseaccept请输入一个数据表名:stu.dbftoyuselistusesettalkonreturn30、验证密码程序:settalkoffclearaccept请输入密码:toaaaifaaa=abcclearwait欢迎使用本系统!elsewait密码错误,程序将在5秒钟退出!windowstimeout5endifsettalkonreturn31、编程求税金settalkoffclearinput请输入营业收入:topdocasecasep800r=0casep=2000r=0.05casep5000r=0.08casep=5000r=0.1endcasex=p*r?应纳税金为:,xsettalkonreturn32、用三角形列出乘法口诀表:settalkoffclearX=1DOWHILEX=9Y=1DOWHILEY=XS=X*Y??STR(Y,1)+*+STR(X,1)+=+STR(S,2)+Y=Y+1ENDDO?X=X+1ENDDOSETTALKONRETURN33、将变量A、B值互换:a=1b=2a=a+bb=a-ba=a-b?a,b34、找出已知三个数的中间数:INPUT请输入a的值:TOaINPUT请输入b的值:TObINPUT请输入c的值:TOcIFMAX(a,b)c?MAX(a,b)ELSEIFMIN(a,b)c?cELSE?MIN(a,b)ENDIFENDIF35、调用子程序:*MAIN.PRGSETTALKOFF?”正在执行主程序”DOSUB1SETTALKONProcedureSUB1?”正在执行SUB1”RETURN36、用参数传递计算圆的面积:settalkoffclear