1、1-100的累加
2、阶乘
3、求阶乘和
4、条件定位
5、用scan语句查询定位
6、用scan语句扫描符合条件的记录,并显示出来
7、查找男性职工
** 查找男性职工**
查找男性职工
8、新值换旧值
9、多位整数各个位数相加
10、找100-999之间的“水仙花数”
11、判断一个大于3的数是否为素数
12、求一个班级每个学生的平均成绩
13、计算圆的面积
14、将小写字母转换为大写字母
15、找出最大数和最小数
16、绝对值函数的实现
17、绝对值函数实现的另一种方法
18、输出成绩等级
19、求一名学生的平均成绩
20、用数组的方法,计算一个学生的平均成绩
21、用do case语句实现符号函数的功能
22、用一般选择语句实现符号函数的功能
23、用简单选择语句实现符号函数功能
24、打开数据库和数据表
25、显示表中指定信息
26、询问后再由用户按(Y/N)键执行的程序实现
27、根据exact的设置进行字符串匹配比较
28、使一个多位正整数逆序排列
29、按编号查找并列出一条记录
30、验证密码程序:
31、编程求税金
32、用三角形列出乘法口诀表:
33、将变量A、B值互换:
34、找出已知三个数的中间数:
35、调用子程序:
36、用参数传递计算圆的面积:
37、我国古代数学家张丘建
VFP常见编程实例
1、1-100的累加
** 求1到100的累加值
CLEAR
s=0
i=1
DO WHILE i<=100
s=s+i
i=i+1 &&一定记住先累加后循环ENDDO
?s
RETURN
2、阶乘
** 求5的阶乘
CLEAR
j=1
i=1
DO WHILE i<=5
j=j*i
i=i+1
ENDDO
?j
RETURN
3、求阶乘和
** 求1至5的阶乘和CLEAR
s=0
i=1
j=1
DO WHILE i<=5 j=j*i
s=s+j
i=i+1
ENDDO
?s
RETURN
4、条件定位
** 查询定位记录指针在赵伟上
CLEAR
USE 学生
LOCATE FOR 姓名="赵伟"
IF FOUND()
DISPLAY
ELSE
CANCEL
ENDIF
CONTINUE
5、用scan语句查询定位
** 用scan语句查询定位记录在赵伟上
CLEAR
SCAN FOR 姓名="赵伟"
DISPLAY
ENDSCAN
RETURN
6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来
SCAN FOR 年龄<30 DISPLAY
ENDSCAN
RETURN
7、查找男性职工
** 查找男性职工
CLEAR
LOCATE FOR 性别="男" DO WHILE FOUND() DISPLAY CONTINUE
ENDDO
RETURN
** 查找男性职工
CLEAR
LOCATE FOR 性别="男" DO WHILE NOT EOF() DISPLAY
CONTINUE
RETURN
** 查找男性职工
CLEAR
USE 职员基本信息表
LOCATE FOR 性别="男"
DO WHILE .t.
IF FOUND() then
DISPLAY
ELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCEL
ENDIF
CONTINUE
ENDDO
** 查找男性职工
set talk off
clear
open database 家庭成员管理.dbc
use stu.dbf
scan for not eof()
if xb="女"
skip
else
display
skip
endif
endscan
close database
use
set talk on
return
8、新值换旧值
** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?
clear
store 1 to a,b
i=3
do while i<=12
c=a+b
a=b
b=c
i=i+1
enddo
?"一年共出生兔子:",c
return
9、多位整数各个位数相加
** 求多位整数各个位数之和
CLEAR
s=0
input "请输入一个多位整数:" to a
DO WHILE a<>0
s=s+MOD(a,10) &&将a取余正好是个位上的数
a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO
?"这个整数的各个位数之和是:",s
RETURN
10、找100-999之间的“水仙花数”
CLEAR
FOR i=100 TO 999
a=INT(i/100)
b=INT((i-100*a)/10)
c=i-INT(i/10)*10
IF i=a^3+b^3+c^3
?i
ENDIF
ENDFOR
RETURN
11、判断一个大于3的数是否为素数CLEAR
input "请输入一个数(>=3):" to s
f=0
i=2
DO WHILE i<=INT(SQRT(s))
IF MOD(s,i)<>0
i=i+1
LOOP
ELSE
f=1
EXIT
ENDIF
ENDDO
IF f=0
?str(s,3)+"是素数"
ELSE f=1&&这个表达式可有可无,为了省事完全省略也可以。一般最后一个ELSE语句后面不需要表达式
?str(s,3)+"不是素数"
ENDIF
RETURN
12、求一个班级每个学生的平均成绩
** 计算一个班级共三十名学生,每位学生5门功课的平均成绩CLEAR && 清屏
DIMENSION x(30,5) && 定义一个数组变量,r为学生数,i 为功课数
r=1 && 给30个学生的计数变量r赋初值1
DO WHILE r<=30 && 循环30次,以计算出30个学生的平均成绩
s=0 && 为学生一门功课成绩赋初值0
i=1 && 为五门功课计数变量赋初值1
DO WHILE i<=5 && 为一个学生的五门功课成绩累加5次
input "请输入学生的成绩" to x(r,i)
s=s+x(r,i) && 成绩累加
i=i+1 && 功课累加
ENDDO && 返回内循环
?"这名学生的平均成绩是:",s/5 && 显示平均成绩r=r+1 && 学生累加
ENDDO && 返回外循环
13、计算圆的面积
* 计算圆的面积程序
CLEAR
input "请输入半径的值" to r
input "请输入pi的值" to pi
s=pi*r^2
?"圆的面积是",s
RETURN
14、将小写字母转换为大写字母
NOTE 请将任意输入的一个小写字母转换成大写字母,也就是upper()函数的程序实现
CLEAR && 请屏
WAIT "请输入一个小写字母" to x && 交互式输入一个小写字母
k=ASC(x) && 将小写字母的ASC码赋值给变量K
IF k>=97 AND k<=122 then && 97是小写字母a的ASC码
值,122是小写字母z的ASC码值
?x,"的大写字母是",CHR(k-32) && 输出大写字母.chr函数是ASC码所对应的字符
ELSE
WAIT "您输入的不是小写字母" WINDOW TIMEOUT 5 cancel
ENDIF
RETURN && 返回到调用程序
15、找出最大数和最小数
CLEAR
input "请输入一个数:" to x
STORE x TO ma,mi
FOR i=2 TO 10 &&因为已经输入一个数X,所以循环次数只有9次
input "请输入一个数:" to x
IF ma ENDIF IF mi>x mi=x ENDIF ENDFOR ?"最大数是:",ma ?"最小数是:",mi RETURN 16、绝对值函数的实现 ** 绝对值函数的实现 CLEAR input "请输入一个数值" to n IF n>=0 ?n ELSE ?-n ENDIF CANCEL 17、绝对值函数实现的另一种方法** 绝对值函数和另一种实现方法CLEAR input " 请输入一个数值" to n ?IIF(n>=0,n,-n) CANCEL 18、输出成绩等级 ** 用DO CASE语句实现:CLEAR input "请输入一个成绩" to cj DO case CASE cj>=90 dj="优秀" CASE cj>=80 dj="良好" CASE cj>=60 dj="合格" OTHERWISE dj="不合格" ENDCASE ?dj RETURN **用IF语句实现: set talk off clear input "请输入一个成绩:" to s if s>=90 grade="优秀" else if s>=80 grade="良好" else if s>=60 grade="及格" else grade="不及格" endif endif endif ?ltrim(str(s))+"分对应的等级是:"+grade set talk on return 19、求一名学生的平均成绩 ** 求一个学生5门功课的平均成绩CLEAR s=0 i=1 DO WHILE i<=5 input "请输入各门功课的成绩" to x s=s+x i=i+1 ENDDO ?s/5 20、用数组的方法,计算一个学生的平均成绩 ** 用数组保存一个学生五门功课的成绩,然后再计算机其平均成绩 CLEAR DIMENSION x(5) s=0 i=1 DO WHILE i<=5 input "请输入各门功课的成绩" to x(i) s=s+x(i) i=i+1 ENDDO ?s/5 RETURN 21、用do case语句实现符号函数的功能 ** 请输入一个数,当这个数是负数,就返回-1,当这个数是零,就返回零,当这个数是正数,就返回1 CLEAR input "请输入一个数" to n DO CASE CASE n>0 s=1 CASE n=0 s=0 CASE n<0 s=-1 ENDCASE ?s RETURN 22、用一般选择语句实现符号函数的功能 ** 符号函数的实现 CLEAR input "请输入一个数" to n IF n>0 s=1 ELSE IF n=0 s=0 ELSE IF n<0 s=-1 ENDIF ENDIF ENDIF ?s 23、用简单选择语句实现符号函数功能** 符号函数的实现 CLEAR input "请输入一个数" to n IF n=0 s=0 ENDIF IF n>0 s=1 ENDIF IF n<0 s=-1 ENDIF ?s 24、打开数据库和数据表 SET talk off CLEAR accept "请输入数据库名" to x OPEN DATABASE &x accept "请输入数据表名" to y USE &y LIST use SET talk off return 25、显示表中指定信息 SET TALK OFF CLEAR OPEN DATABASE 时代超越总公司职员信息数据库USE 职员基本信息表 WAIT "请输入待查职工的编号(1-3)" TO n IF VAL(n)<1 .or. VAL(n)>3 WAIT "输入无效,结束程序运行!" WINDOW timeout 5 RETURN ELSE STORE "0"+n TO a LIST for "职员编号"=a ENDIF CLOSE DATABASES SET TALK ON return 26、询问后再由用户按(Y/N)键执行的程序实现 ** 求任意一个数的阶乘 CLEAR DO WHILE .t. input "请输入一个数" to n p=1 s=0 FOR i=1 TO n p=p*i s=s+p ENDFOR ?s