VFP编程实例2.docx

上传人:b****9 文档编号:26389813 上传时间:2023-06-18 格式:DOCX 页数:13 大小:20.12KB
下载 相关 举报
VFP编程实例2.docx_第1页
第1页 / 共13页
VFP编程实例2.docx_第2页
第2页 / 共13页
VFP编程实例2.docx_第3页
第3页 / 共13页
VFP编程实例2.docx_第4页
第4页 / 共13页
VFP编程实例2.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

VFP编程实例2.docx

《VFP编程实例2.docx》由会员分享,可在线阅读,更多相关《VFP编程实例2.docx(13页珍藏版)》请在冰豆网上搜索。

VFP编程实例2.docx

VFP编程实例2

VFP常见编程实例

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

31、验证密码程序:

settalkoff

clear

accept"请输入密码:

"toaaa

ifaaa="abc"

clear

wait"欢迎使用本系统!

"

else

wait"密码错误,程序将在5秒钟退出!

"windowstimeout5

endif

settalkon

return

32、编程求税金

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

33、用三角形列出乘法口诀表:

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

34、将变量A、B值互换:

a=1

b=2

a=a+b

b=a-b

a=a-b

?

a,b

35、找出已知三个数的中间数:

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

36、调用子程序:

*MAIN.PRG

SETTALKOFF

?

”正在执行主程序”

DOSUB1

SETTALKON

ProcedureSUB1

?

”正在执行SUB1”

RETURN

37、用参数传递计算圆的面积:

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

38、我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百

鸡问题:

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买

百鸡,问鸡翁,母,雏各几何?

**依题列出方程:

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  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1