VFP常见编程37例.docx
- 文档编号:5403635
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:15
- 大小:19.45KB
VFP常见编程37例.docx
《VFP常见编程37例.docx》由会员分享,可在线阅读,更多相关《VFP常见编程37例.docx(15页珍藏版)》请在冰豆网上搜索。
VFP常见编程37例
VFP常见编程37例
1、1-100的累加
**求1到100的累加值
CLEAR
s=0
i=1
DOWHILEi<=100
s=s+i
i=i+1 &&一定记住先累加后循环
ENDDO
?
s
RETURN
2、阶乘
**求5的阶乘
CLEAR
j=1
i=1
DOWHILEi<=5
j=j*i
i=i+1
ENDDO
?
j
RETURN
3、求阶乘和
**求1至5的阶乘和
CLEAR
s=0
i=1
j=1
DOWHILEi<=5
j=j*i
s=s+j
i=i+1
ENDDO
?
s
RETURN
4、条件定位
**查询定位记录指针在赵伟上
CLEAR
USE学生
LOCATEFOR姓名="赵伟"
IFFOUND()
DISPLAY
ELSE
CANCEL
ENDIF
CONTINUE
5、用scan语句查询定位
**用scan语句查询定位记录在赵伟上
CLEAR
SCANFOR姓名="赵伟"
DISPLAY
ENDSCAN
RETURN
6、用scan语句扫描符合条件的记录,并显示出来
**把年龄小于30岁的人显示出来
CLEAR
SCANFOR年龄<30
DISPLAY
ENDSCAN
RETURN
7、查找男性职工
**查找男性职工
CLEAR
LOCATEFOR性别="男"
DOWHILEFOUND()
DISPLAY
CONTINUE
ENDDO
RETURN
**查找男性职工
CLEAR
LOCATEFOR性别="男"
DOWHILENOTEOF()
DISPLAY
CONTINUE
ENDDO
RETURN
**查找男性职工
CLEAR
USE职员基本信息表
LOCATEFOR性别="男"
DOWHILE.t.
IFFOUND()then
DISPLAY
ELSE &&记住最后一个ELSE语句后面不需要条件表达式
CANCEL
ENDIF
CONTINUE
ENDDO
**查找男性职工
settalkoff
clear
opendatabase家庭成员管理.dbc
usestu.dbf
scanfornoteof()
ifxb="女"
skip
else
display
skip
endif
endscan
closedatabase
use
settalkon
return
8、新值换旧值
**有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?
clear
store1toa,b
i=3
dowhilei<=12
c=a+b
a=b
b=c
i=i+1
enddo
?
"一年共出生兔子:
",c
return
9、多位整数各个位数相加
**求多位整数各个位数之和
CLEAR
s=0
input"请输入一个多位整数:
"toa
DOWHILEa<>0
s=s+MOD(a,10) &&将a取余正好是个位上的数
a=INT(a/10) &&将a除10取整正好是除个位之后的数
ENDDO
?
"这个整数的各个位数之和是:
",s
RETURN
10、找100-999之间的“水仙花数”
CLEAR
FORi=100TO999
a=INT(i/100)
b=INT((i-100*a)/10)
c=i-INT(i/10)*10
IFi=a^3+b^3+c^3
?
i
ENDIF
ENDFOR
RETURN
11、判断一个大于3的数是否为素数
CLEAR
input"请输入一个数(>=3):
"tos
f=0
i=2
DOWHILEi<=INT(SQRT(s))
IFMOD(s,i)<>0
i=i+1
LOOP
ELSE
f=1
EXIT
ENDIF
ENDDO
IFf=0
?
str(s,3)+"是素数"
ELSEf=1 &&这个表达式可有可无,为了省事完全省略也可以。
一般最后一个ELSE语句后面不需要表达式
?
str(s,3)+"不是素数"
ENDIF
RETURN
12、求一个班级每个学生的平均成绩
**计算一个班级共三十名学生,每位学生5门功课的平均成绩
CLEAR &&清屏
DIMENSIONx(30,5) &&定义一个数组变量,r为学生数,i为功课数
r=1 &&给30个学生的计数变量r赋初值1
DOWHILEr<=30 &&循环30次,以计算出30个学生的平均成绩
s=0 &&为学生一门功课成绩赋初值0
i=1 &&为五门功课计数变量赋初值1
DOWHILEi<=5&&为一个学生的五门功课成绩累加5次
input"请输入学生的成绩"tox(r,i)
s=s+x(r,i) &&成绩累加
i=i+1 &&功课累加
ENDDO &&返回内循环
?
"这名学生的平均成绩是:
",s/5 &&显示平均成绩
r=r+1 &&学生累加
ENDDO &&返回外循环
13、计算圆的面积
*计算圆的面积程序
CLEAR
input"请输入半径的值"tor
input"请输入pi的值"to pi
s=pi*r^2
?
"圆的面积是",s
RETURN
14、将小写字母转换为大写字母
NOTE请将任意输入的一个小写字母转换成大写字母,也就是upper()函数的程序实现
CLEAR &&请屏
WAIT"请输入一个小写字母"tox &&交互式输入一个小写字母
k=ASC(x) &&将小写字母的ASC码赋值给变量K
IFk>=97ANDk<=122then &&97是小写字母a的ASC码值,122是小写字母z的ASC码值
?
x,"的大写字母是",CHR(k-32) &&输出大写字母.chr函数是ASC码所对应的字符
ELSE
WAIT"您输入的不是小写字母"WINDOWTIMEOUT5
cancel
ENDIF
RETURN &&返回到调用程序
15、找出最大数和最小数
CLEAR
input"请输入一个数:
"tox
STORExTOma,mi
FORi=2TO10 &&因为已经输入一个数X,所以循环次数只有9次
input"请输入一个数:
"tox
IFma ma=x ENDIF IFmi>x mi=x ENDIF ENDFOR ? "最大数是: ",ma ? "最小数是: ",mi RETURN 16、绝对值函数的实现 **绝对值函数的实现 CLEAR input"请输入一个数值"ton IFn>=0 ? n ELSE ? -n ENDIF CANCEL 17、绝对值函数实现的另一种方法 **绝对值函数和另一种实现方法 CLEAR input"请输入一个数值"ton ? IIF(n>=0,n,-n) CANCEL 18、输出成绩等级 **用DOCASE语句实现: CLEAR input"请输入一个成绩"tocj DOcase CASEcj>=90 dj="优秀" CASEcj>=80 dj="良好" CASEcj>=60 dj="合格" OTHERWISE dj="不合格" ENDCASE ? dj RETURN **用IF语句实现: settalkoff clear input"请输入一个成绩: "tos ifs>=90 grade="优秀" else ifs>=80 grade="良好" else ifs>=60 grade="及格" else grade="不及格" endif endif endif ? ltrim(str(s))+"分对应的等级是: "+grade settalkon return 19、求一名学生的平均成绩 **求一个学生5门功课的平均成绩 CLEAR s=0 i=1 DOWHILEi<=5 input"请输入各门功课的成绩"tox s=s+x i=i+1 ENDDO ? s/5 20、用数组的方法,计算一个学生的平均成绩 **用数组保存一个学生五门功课的成绩,然后再计算机其平均成绩 CLEAR DIMENSIONx(5) s=0 i=1 DOWHILEi<=5 input"请输入各门功课的成绩"tox(i) s=s+x(i) i=i+1 ENDDO ? s/5 RETURN 21、用docase语句实现符号函数的功能 **请输入一个数,当这个数是负数,就返回-1,当这个数是零,就返回零,当这个数是正数,就返回1 CLEAR input"请输入一个数"ton DOCASE CASEn>0 s=1 CASEn=0 s=0 CASEn<0 s=-1 ENDCASE ? s RETURN 22、用一般选择语句实现符号函数的功能 **符号函数的实现 CLEAR input"请输入一个数"ton IFn>0 s=1 ELSE IFn=0 s=0 ELSE IFn<0 s=-1 ENDIF ENDIF ENDIF ? s 23、用简单选择语句实现符号函数功能 **符号函数的实现 CLEAR input"请输入一个数"ton IFn=0 s=0 ENDIF IFn>0 s=1 ENDIF IFn<0 s=-1 ENDIF ? s 24、打开数据库和数据表 SETtalkoff CLEAR accept"请输入数据库名"tox OPENDATABASE&x accept"请输入数据表名"toy USE&y LIST use SETtalkoff return 25、显示表中指定信息 SETTALKOFF CLEAR OPENDATABASE时代超越总公司职员信息数据库 USE职员基本信息表 WAIT"请输入待查职工的编号(1-3)"TOn IFVAL(n)<1.or.VAL(n)>3 WAIT"输入无效,结束程序运行! "WINDOWtimeout5 RETURN ELSE STORE"0"+nTOa LISTfor"职员编号"=a ENDIF CLOSEDATABASES SETTALKON return 26、询问后再由用户按(Y/N)键执行的程序实现 **求任意一个数的阶乘 CLEAR DOWHILE.t. input"请输入一个数"ton p=1 s=0 FORi=1TOn p=p*i s=s+p ENDFOR ? s WAIT"是否继续计算(Y/N)"TOynwindow IFUPPER(yn)="Y"THEN LOOP ELSE EXIT ENDIF ENDDO RETURN 27、根据exact的设置进行字符串匹配比较 **exact设置的变化对取值结果的影响 SETexactON &&exact为打开状态,字符精确匹配 s="in"+SPACE (2) IFs=="in" IFs="in" ? "a" ELSE ? "b" ENDIF ELSE IFs="in" ? "c" ELSE ? "d" ENDIF ENDIF RETURN 28、使一个多位正整数逆序排列 CLEAR input"请输入一个整数: "tox DOWHILEx>0 y=x%10 ? ? y x=INT(x/10) ENDDO RETURN 29、按编号查找并列出一条记录 settalkoff clear accept"请输入数据库名: 家庭成员管理: "toa opendatabase accept"请输入数据表名: stu: "tob use list wait"请输入一个编号: "tocwindowstimeout5 ifval(c)<=0orval(c)>4 wait"输入的数字不合法,请重新输入一个合法的数字: "tocwindowstimeout5 else store"0"+ctoaaa listforbh=aaa endif closedatabase settalkon return 30、打开一个数据库,并显示其中的表内容 settalkoff clear accept"请输入一个数据库名: 家庭成员管理.dbc"tox opendatabase accept"请输入一个数据表名: stu.dbf"toy use list use settalkon return 30、验证密码程序: settalkoff clear accept"请输入密码: "toaaa ifaaa="abc" clear wait"欢迎使用本系统! " else wait"密码错误,程序将在5秒钟退出! "windowstimeout5 endif settalkon return 31、编程求税金 settalkoff clear input"请输入营业收入: "top docase casep<800 r=0 casep=<2000 r=0.05 casep<5000 r=0.08 casep>=5000 r=0.1 endcase x=p*r ? "应纳税金为: ",x settalkon return 32、用三角形列出乘法口诀表: settalkoff clear X=1 DOWHILEX<=9 Y=1 DOWHILEY<=X S=X*Y ? ? STR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+"" Y=Y+1 ENDDO ? X=X+1 ENDDO SETTALKON RETURN 33、将变量A、B值互换: a=1 b=2 a=a+b b=a-b a=a-b ? a,b 34、找出已知三个数的中间数: INPUT"请输入a的值: "TOa INPUT"请输入b的值: "TOb INPUT"请输入c的值: "TOc IFMAX(a,b) ? MAX(a,b) ELSE IFMIN(a,b) ? c ELSE ? MIN(a,b) ENDIF ENDIF 35、调用子程序: *MAIN.PRG SETTALKOFF ? ”正在执行主程序” DOSUB1 SETTALKON ProcedureSUB1 ? ”正在执行SUB1” RETURN 36、用参数传递计算圆的面积: settalkoff clear input"请输入圆的半径"tor s=0 &&用参数传递计算必须给实际参数赋初值 doarerwithr,s &&调用子程序,并指定实际参数r,s ? "圆的面积为: ",s settalkon ? procedurearer &&被调用的子程序arer parameterx,y &&指定的形式参数x,y y=3.14*x^2 return settalkon 37、我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百 鸡问题: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买 百鸡,问鸡翁,母,雏各几何? **依题列出方程: x+y+z=100 5x+3y+z/3=100 settalkoff clear forx=1to100 fory=1to100 z=100-x-y if5*x+3*y+z/3=100 ? "鸡翁: "+str(x,3) ? "鸡母: "+str(y,3) ? "鸡雏: "+str(z,3) endif endfor endfor settalkon return
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 常见 编程 37