vfp程序设计基础

上传人:沈*** 文档编号:224312653 上传时间:2023-07-29 格式:PPT 页数:96 大小:786.50KB
收藏 版权申诉 举报 下载
vfp程序设计基础_第1页
第1页 / 共96页
vfp程序设计基础_第2页
第2页 / 共96页
vfp程序设计基础_第3页
第3页 / 共96页
资源描述:

《vfp程序设计基础》由会员分享,可在线阅读,更多相关《vfp程序设计基础(96页珍藏版)》请在装配图网上搜索。

1、n当今世界上两大计算机程序设计的方法当今世界上两大计算机程序设计的方法面向过程的结构化程序设计、面向过程的结构化程序设计、面向对象程序设计面向对象程序设计n本章节为本章节为VFP的重点与难点部分的重点与难点部分注重理解,掌握结构,灵活运用注重理解,掌握结构,灵活运用1目录目录7.1 创建、修改和运行应用程序创建、修改和运行应用程序7.2 VFP基本语法结构基本语法结构7.3 数组数组7.4 过程和用户自定义函数过程和用户自定义函数7.5 变量的作用域变量的作用域7.6 综合应用综合应用27.1 创建、修改和运行应用程序创建、修改和运行应用程序7.1.1 创建应用程序创建应用程序(3种方式种方式

2、)一、一、VFP系统菜单创建系统菜单创建文件文件|新建新建|程序程序|创建新文件创建新文件注注 创建的文件不在项目中创建的文件不在项目中二、项目管理器创建二、项目管理器创建代码代码|程序程序|新建新建注注 创建的文件在项目中创建的文件在项目中三、命令窗口直接输入方式三、命令窗口直接输入方式Modify command 程序名程序名注注 创建的文件在默认位置创建的文件在默认位置注注程序的扩展名为:程序的扩展名为:.PRG37.1.2 修改程序修改程序(4种方式种方式)一、一、VFP系统菜单系统菜单文件文件|打开打开|选择程序选择程序 二、项目管理器二、项目管理器代码代码|选择程序选择程序|修改修

3、改注注 该程序应在项目中该程序应在项目中三、命令窗口输入三、命令窗口输入Modify command 程序名程序名注注 该程序应在默认位置该程序应在默认位置四、命令窗口输入四、命令窗口输入Modify command?显示对话框显示对话框47.1.3 运行程序运行程序(3种方式种方式)一、一、VFP系统菜单系统菜单程序程序|运行运行|显示对话框,选择程序显示对话框,选择程序 二、项目管理器二、项目管理器代码代码|选择程序选择程序|运行运行注注 该程序应在项目中该程序应在项目中三、命令窗口输入三、命令窗口输入 DO 文件名文件名 注注 如果不指明文件的位置,则执行默认位置的程序;如果程如果不指明

4、文件的位置,则执行默认位置的程序;如果程序不在默认位置,必须加路径。例如:序不在默认位置,必须加路径。例如:Do d:项目项目 p2.prg57.2 VFP基本语法结构基本语法结构 在程序设计语言中,程序控制是程在程序设计语言中,程序控制是程序设计语言的精髓所在,在结构化程序序设计语言的精髓所在,在结构化程序设计中,程序一般采用设计中,程序一般采用3种结构组成:种结构组成:顺序结构顺序结构 条件分支结构条件分支结构 循环结构循环结构67.2.1 程序中常用的命令程序中常用的命令 1、最常用的屏幕输出命令:?、最常用的屏幕输出命令:??数据数据1,数据,数据2,&输出前先换行输出前先换行?数据数

5、据1,数据,数据2,&接着上一行数据输出接着上一行数据输出2、清除屏幕命令、清除屏幕命令命令格式命令格式:CLEAR ALL命令功能:命令功能:清除屏幕清除屏幕注:注:使用使用ALL将不清除屏幕,而是释放所有内存变量、将不清除屏幕,而是释放所有内存变量、数组、用户定义的菜单和窗口、关闭所有打开数组、用户定义的菜单和窗口、关闭所有打开的表、索引等文件;的表、索引等文件;73、注释命令、注释命令命令格式一命令格式一:NOTE 命令格式二命令格式二:*命令格式三命令格式三:&命令功能:命令功能:注解注解,系统不对其作语法检查系统不对其作语法检查注:注:nNOTE 和和*必须必须写在每一行的开头写在每

6、一行的开头n&可以写在每一行的开头可以写在每一行的开头,也可以写在命令的后面也可以写在命令的后面84、运行中断和结束命令、运行中断和结束命令n命令格式一命令格式一:QUIT功能功能:关闭所有文件关闭所有文件,并结束并结束VFP系统的运行系统的运行,返回返回到到Windows桌面。桌面。n命令格式二命令格式二:CANCEL功能功能:终止程序的执行,返回到命令窗口。终止程序的执行,返回到命令窗口。n命令格式三命令格式三:RETURN功能:功能:结束所在程序的执行结束所在程序的执行5、赋值命令、赋值命令命令格式:命令格式:STORETO 变量变量1,变量变量2功能功能:将数据存入变量、数组、数组元素

7、中。将数据存入变量、数组、数组元素中。9程序交互命令程序交互命令1、等待命令、等待命令WAIT格式格式:WAIT提示信息提示信息 TO WINDOWAT,TIMEOUT 功能功能:程序执行到该命令时程序执行到该命令时,显示显示提示信息提示信息,然后等待用户从键盘上输然后等待用户从键盘上输入一个字符入一个字符,并将该字符输入到指定的内存变量中。并将该字符输入到指定的内存变量中。例:例:wait“按任意键继续按任意键继续”timeout 6&超过超过6秒系统终止该命令的执行,执行下面的命令。秒系统终止该命令的执行,执行下面的命令。wait“按任意键继续按任意键继续“&按任意键终止该命令的执行,执行

8、下面的命令。按任意键终止该命令的执行,执行下面的命令。wait“按任意键继续按任意键继续”window&显示一个窗口,其中有提示信息。显示一个窗口,其中有提示信息。wait“按任意键继续按任意键继续”window at 5,10&指定窗口的位置指定窗口的位置112、输入命令、输入命令INPUT格式:格式:input 提示信息提示信息 TO功能:暂停程序运行,等待键盘输入数据,当键入回车功能:暂停程序运行,等待键盘输入数据,当键入回车符后,继续执行下面的命令。符后,继续执行下面的命令。可以输入数值型数据,也可以输入字符型数据,字符可以输入数值型数据,也可以输入字符型数据,字符型数据必须加引号。型

9、数据必须加引号。例:例:input 输入数据:输入数据:to vname、接受命令、接受命令ACCEPTACCEPT提示信息提示信息 TO 只能接受字符型数据,输入时不需要加引号。只能接受字符型数据,输入时不需要加引号。127.2.2 顺序结构程序设计顺序结构程序设计按语句排列的先后顺序,依次逐条执行。按语句排列的先后顺序,依次逐条执行。例例7-1,显示学生表中任意一个学生的姓名和系名,显示学生表中任意一个学生的姓名和系名ClearUse xsInput 输入记录号:输入记录号:to rGo r?xh,xmusereturn13例例7-2 程序运行结果?程序运行结果?input enter a

10、:to ainput enter b:to b?a=+ltrim(str(a),b=+ltrim(str(b)c=aa=bb=c?a=+ltrim(str(a),b=+ltrim(str(b)输入给输入给a,输入给输入给b显示:显示:a=3 b=4 a=4 b=3147.2.3 分支结构程序设计分支结构程序设计条件分支根据条件的测试结果执行不同的操作。条件分支根据条件的测试结果执行不同的操作。2种命令:种命令:IFELSEENDIFDO CASEENDCASE一、一、IFELSEENDIF格式:格式:IF 条件表达式条件表达式命令组命令组ENDIFIF 条件表达式条件表达式命令组命令组1ELS

11、E 命令组命令组2ENDIF当条件表达式结果为当条件表达式结果为.T.时,执行命令时,执行命令组组1。当条件表达式结果为当条件表达式结果为.F.时,执行命令时,执行命令组组2。执行完执行完组组1或或组组2后,执行后,执行ENDIF后面命令。后面命令。通常,使用于只有两个分支的情况。通常,使用于只有两个分支的情况。当条件表达式结果为当条件表达式结果为.T.时,执行命令时,执行命令组。组。执行完,执行执行完,执行ENDIF后面命令。后面命令。当条件为当条件为.F.时,执行时,执行ENDIF后面命令后面命令。15例例7-if:输出:输出2个数中大的数个数中大的数input enter a:to ai

12、nput enter b:to bif ab?大的数是:大的数是:,aelse?大的数是:大的数是:,bendif16 If嵌套嵌套IF 条件表达式条件表达式命令组命令组1ELSE 命令组命令组2ENDIF这里的命令组还可这里的命令组还可以是以是if语句语句f(x)=1 x00 x=0-1 x0 y=1else if x=0 y=0 else y=-1 endifendif?y17二、二、DO CASEENDCASE格式:格式:DO CASECASE 条件表达式条件表达式1命令序列命令序列1CASE 条件表达式条件表达式2命令序列命令序列2 OTHERWISE其他命令序列其他命令序列 ENDC

13、ASE 从第一个从第一个CASE开始,判断条开始,判断条件表达式的值是否为件表达式的值是否为.T.当遇到第一个结果为当遇到第一个结果为.T.的的CASE表达式,就执行它后面的表达式,就执行它后面的命令序列命令序列 然后执行然后执行ENDCASE后面的后面的命令。命令。若所有若所有CASE表达式都为表达式都为.F.,则执行,则执行OTHERWISE后面的后面的命令序列。命令序列。通常,用于多于两个分支的通常,用于多于两个分支的情况情况18DO CASEENDCASE条件1命令组1条件2命令组2条件 n命令组n其他命令组19例例7-case,根据分数输出等级。,根据分数输出等级。cj=90 输出输

14、出“优优”75=cj90 输出输出“良良”60=cj75 输出输出“合格合格”cj=90?优优 case cj=75.and.cj=60.and.cj=0 x1=(-b+sqrt(d)/2/a x2=(-b-sqrt(d)/2/a?该方程的解为:该方程的解为:?x1=,x1,x2=,x2Else?该方程无实数解。该方程无实数解。Endif ax 2+bx+c=0判别式 d=b2-4ac=0 x1=x2=227.2.4 循环结构程序设计循环结构程序设计循环是重复执行一组语句若干次,其中被循环循环是重复执行一组语句若干次,其中被循环执行的一组语句称为循环体。执行的一组语句称为循环体。在在VFP中,

15、实现循环的语句主要有三种:中,实现循环的语句主要有三种:FORENDFORDO WHILEENDDO SCANENDSCAN23一、一、FORENDFOR语句格式:语句格式:FOR 循环变量循环变量=初值初值 TO 终值终值 STEP 步长值步长值循环体循环体ENDFORFOR循环的执行过程如下:循环的执行过程如下:将初值赋给循环变量;将初值赋给循环变量;判断循环变量的值是否超出终值;判断循环变量的值是否超出终值;若超出终值,结束循环,执行若超出终值,结束循环,执行ENDFOR后命令;后命令;若未超出终值,执行语句组;若未超出终值,执行语句组;循环变量循环变量=循环变量循环变量+步长值;步长值

16、;转到转到重复上述重复上述 步骤。步骤。24例例 计算计算1100之间所有的自然数和。之间所有的自然数和。1+2+3+100s=0for i=1 to 100 step 1 s=s+iendfor?s说明:说明:n该语句主要使用于给定次数的循环。该语句主要使用于给定次数的循环。n循环开始语句为循环开始语句为FOR,结束语句为,结束语句为ENDFOR。n若若“step 步长步长”不写,默认步长为不写,默认步长为1;25n多项式求和是基本算法多项式求和是基本算法n例例:1+3+5+99 1!+2!+10!1+1/2+1/3+1/100 2/1+3/2+5/3+8/5+前前20项的和项的和 sum=

17、sum+?26例例:计算一个字符串中包括多少个汉字。计算一个字符串中包括多少个汉字。基本算法:从字符串中依次取一个字符,如果其基本算法:从字符串中依次取一个字符,如果其ASCII码值大于码值大于127,则为一个汉字内码的第一个,则为一个汉字内码的第一个字节。字节。clearcstring=学习学习 Visual FoxPro数据库管理系统数据库管理系统ncount=0for i=1 to len(cstring)if asc(substr(cstring,i,1)127 ncount=ncount+1 i=i+1 endifendfor?汉字个数为:汉字个数为:,ncount 27二、二、DO

18、 WHILEENDDO 语句格式:语句格式:DO WHILE 循环体循环体ENDDO执行过程如下:执行过程如下:先判断先判断,值为,值为.T.则执行循环体,否则出循则执行循环体,否则出循环,执行环,执行ENDDO下面语句下面语句说明:说明:q 当循环次数未知,需根据某一条件决定是否循环时使用。当循环次数未知,需根据某一条件决定是否循环时使用。q 循环体中一般须存在能改变循环条件的语句,用于能正循环体中一般须存在能改变循环条件的语句,用于能正常退出循环。常退出循环。28例例 计算计算10的阶乘。的阶乘。S=1N=1Do while n=10 s=s*n n=n+1Enddo?s用用for循环完成

19、:循环完成:s=1 for n=1 to 10 step 1 s=s*n endfor?s29例例 计算计算1100的偶数和与奇数和的偶数和与奇数和cleareven=0odd=0i=1do while i80dispinkey(0.6)endscan37下列两段程序结果是否一致下列两段程序结果是否一致?Use xs n=0Scan all n=n+1 skip 1Endscan?n use xs n=0 Do while not eof()n=n+1 skip 1 Enddo?n不同,不同,Scan 命令会自动将记录指针后移,命令会自动将记录指针后移,Do while not eof()不会

20、移记录指针不会移记录指针如果如果xs有有16个记录,前者输出个记录,前者输出8,后者输出,后者输出1639四、四、循环结构中的循环结构中的LOOP命令与命令与EXIT命令命令1、如果在循环体中,执行到、如果在循环体中,执行到LOOP语句,将跳过语句,将跳过LOOP语句与循语句与循环出口之间的所有语句,返回到循环入口的语句,进行下一次环出口之间的所有语句,返回到循环入口的语句,进行下一次循环。循环。2、如果在循环体中,执行到、如果在循环体中,执行到EXIT语句,则跳出循环语句,则跳出循环。比较比较2个程序:个程序:for k=1 to 10if k%2=0 loopendif?kendfor f

21、or k=1 to 10if k%2=0 exitendif?kendfor 显示显示1 3 5 7 9显示显示140例例:信用卡身份密码安全检测,允许最多出错信用卡身份密码安全检测,允许最多出错3次次,否则吞卡。否则吞卡。ma=12345&预留密码预留密码n=0&密码输入次数密码输入次数do while .t.Input please input your password:to x If x=ma?welcome!exit&完成业务完成业务,退出退出 else n=n+1 if n3 loop&允许继续输入密码允许继续输入密码 else?warn!吞卡吞卡 exit&不允许继续输入密码不允

22、许继续输入密码 endif endifenddo417.3 数组数组数组由若干元素组成,属于内存变量。数组由若干元素组成,属于内存变量。数组必须先定义,后使用。数组必须先定义,后使用。一、数组的声明一、数组的声明1、DIMENSION 数组名数组名行,列行,列&私有数组私有数组2、DECLARE 数组名数组名行,列行,列&私有数组私有数组3、PUBLIC 数组名数组名行,列行,列&全局数组全局数组4、LOCAL 数组名数组名行,列行,列&局部数组局部数组42例:例:DIMENSION DIMENSION a a5,b2,3&也可以用圆括号也可以用圆括号DIMENSIONDIMENSION a(

23、5),b(2,3)a数组有数组有5个元素,个元素,b数组有数组有6个元素,个元素,系统给系统给a数组和数组和b数组连续的存储空间。数组连续的存储空间。43数组的逻辑结构:数组的逻辑结构:A1A2A3A4A5数组的存储结构:数组的存储结构:B1,1B1,2B1,3B2,1B2,2B2,344二、为数组元素赋值二、为数组元素赋值DIMENSION a2,4 a1,2=2&或或 a(1,2)=2 a=5&给给a数组所有元素赋值数组所有元素赋值5 a2,3=.t.a2,1=:a5=100&即即a2,1=100注意:注意:q数组在声明后,每个元素默认地赋予数组在声明后,每个元素默认地赋予.F.qlist

24、 memory like a 显示显示a数组所有元素值数组所有元素值 45例分析程序运行结果分析程序运行结果 dime a10 for i=1 to 10 ai=i*i endfor for i=1 to 10?ai endfor46例:产生例:产生10个个10,90之间的随机整数,找出最大的数之间的随机整数,找出最大的数cleardime a10 for i=1 to 10 ai=int(rand()*81)+10?ai endfor nmax=a1 for i=2 to 10 if nmaxa(j)k=j endif endfor t=a(i)a(i)=a(k)a(k)=tendforfo

25、r i=1 to 10?aiEndfor 在在a ia10中找最小的中找最小的,下标放在下标放在k中中a i与与ak交交换数据换数据58例:例:冒泡法排序冒泡法排序,10个数按从小到大顺序排个数按从小到大顺序排clear dime a10for i=1 to 10 ai=int(rand()*90)+10?aiendfor?for k=9 to 1 step-1 for i=1 to k if a(i)a(i+1)t=a(i)a(i)=a(i+1)a(i+1)=t endif endforendforfor i=1 to 10?aiendfor 算法说明算法说明:相邻两个数比较相邻两个数比较,

26、小小的数放到前面的数放到前面,大的数放到后大的数放到后面。面。i=1 to k (k=9,8,7,.1)If a iai+1 t=a i,a i=ai+1,ai+1=t597.4 过程和用户自定义函数过程和用户自定义函数n把多次重复使用的、具有某种功能的一段代码把多次重复使用的、具有某种功能的一段代码独立出来,创建一个过程或自定义函数,供其独立出来,创建一个过程或自定义函数,供其它程序调用,该程序段称为子程序。它程序调用,该程序段称为子程序。nVFP中的过程或用户自定义函数属于子程序。中的过程或用户自定义函数属于子程序。n子程序是结构化程序设计的主要特点,一个应子程序是结构化程序设计的主要特点

27、,一个应用程序的许多功能可以编写成一个个独立的程用程序的许多功能可以编写成一个个独立的程序段,供其它程序调用。序段,供其它程序调用。60n用户自定义函数的存储用户自定义函数的存储q存储于独立的程序文件中或主程序的底部存储于独立的程序文件中或主程序的底部,但不但不能把可执行的主程序代码放在过程和函数之后。能把可执行的主程序代码放在过程和函数之后。q*存储于过程文件中存储于过程文件中q*如果创建的过程或函数是用来处理数据库中如果创建的过程或函数是用来处理数据库中的表,可以将过程存储于数据库的存储过程中。的表,可以将过程存储于数据库的存储过程中。61n过程和用户自定义函数的创建与调用过程和用户自定义

28、函数的创建与调用1、过程的定义、过程的定义PROCEDURE PARAMETER&形式参数形式参数 ENDPROC2、函数的定义、函数的定义FUNCTION PARAMETER&形式参数形式参数 ENDFUNC62n调用过程或函数调用过程或函数q过程方式调用过程方式调用DO 过程名过程名 with 参数参数&实际参数实际参数q函数方式调用函数方式调用函数名函数名(参数参数)&实际参数实际参数n注注 过程方式和函数方式都可以调用过程及过程方式和函数方式都可以调用过程及函数函数63显示显示clear?调用函数调用函数f1()&调用函数调用函数*定义函数定义函数function f1?运行函数运行函

29、数 endfunc64例:定义一个函数例:定义一个函数ntoc(),当传递给一个,当传递给一个09之间的阿拉伯数字时,返回之间的阿拉伯数字时,返回“AJ”中对应一中对应一个英文字母。个英文字母。function ntoc parameter x source=ABCDEFGHIJ result=substr(source,x+1,1)return resultEndfunc要求写主程序调用要求写主程序调用65n参数传递参数传递1、向过程或函数传递参数、向过程或函数传递参数n定义时参数写法定义时参数写法(形参形参)在在PROCEDURE或或FUNCTION命令后的第一个可执行语命令后的第一个可执

30、行语句必须是句必须是PARAMETERS语句。语句。格式:格式:PARAMETERS&形参,用逗号隔开形参,用逗号隔开n调用时参数写法调用时参数写法(实参实参)用用WITH子句传参数子句传参数DO WITH&实参,用逗号隔开实参,用逗号隔开 函数调用方式函数调用方式(参数表)(参数表)66用自定义函数完成用自定义函数完成clear?Area(3,5)m=4n=5?Area(m,n)Function area Parameters x,yS=x*yReturn sendfunc用过程完成用过程完成clearDo Area with 3,5m=4n=5Do Area with m,nProcedu

31、re areaParameters x,yS=x*y?SEndproc例例:求求矩矩形形面面积积67n函数的返回值函数的返回值用用RETURNRETURN命令将值返回,一次只能返回一个数据。命令将值返回,一次只能返回一个数据。命令格式:命令格式:RETURNRETURN表达式表达式|TO MASTER|TO|TO MASTER|TO 过程名过程名 功能:功能:qRETURN RETURN 表达式表达式&返回一个值给调用程序;返回一个值给调用程序;qRETURN TO MASTER&RETURN TO MASTER&直接返回到主程序。直接返回到主程序。qRETURN TO RETURN TO 过

32、程名过程名&返回到指定的过程。返回到指定的过程。q省略省略RETURNRETURN,其缺省的返回值为真(,其缺省的返回值为真(.T.T.)73子程序调用的流程子程序调用的流程主程序主程序子程序子程序f1子程序子程序f2调用调用f1调用调用f274 注注 substr(cString,p*2+1,2)substr(cString,p*2+1,2)在在cStringcString中,中,从第从第p*2+1p*2+1位置开始,取位置开始,取2 2个个FUNCTION ntoc PARAMETERS p cString=零一二三四五六七八九零一二三四五六七八九 RETURN substr(cStrin

33、g,p*2+1,2)ENDFUNC例例7-20输入一个输入一个09的数字的数字返回一个中文的零返回一个中文的零九九Cleardo while.t.Input please input 09:to t if t9 return&返回到上级程序中返回到上级程序中 endif?ntoc(t)enddo75注:子程序注:子程序q子程序是结构化程序设计的主要特点子程序是结构化程序设计的主要特点q一个应用软件由一个主程序多个子程序组成一个应用软件由一个主程序多个子程序组成q主程序可以调用子程序主程序可以调用子程序q子程序还可以调用子程序,子程序还可以调用子程序,VFP允许嵌套的允许嵌套的DO调用层数为调用

34、层数为128层层767.5 变量的作用域变量的作用域一个应用程序一般包含多个程序模块,在各程序一个应用程序一般包含多个程序模块,在各程序模块中要使用变量和数组。根据变量和数组在模块中要使用变量和数组。根据变量和数组在程序模块中作用范围不同,可将变量和数组分程序模块中作用范围不同,可将变量和数组分为三类:全局、局部和私有。为三类:全局、局部和私有。类型类型 作用域作用域全局变量和数组全局变量和数组 任何程序模块任何程序模块局部变量和数组局部变量和数组 只限于其创建模块中只限于其创建模块中私有变量和数组私有变量和数组 只限于其声明模块及下层模块中只限于其声明模块及下层模块中77变量的声明变量的声明

35、全局全局 PUBLIC 局部局部 LOCAL私有私有 PRIVATE例如例如:PUBLIC a,b注注1、在程序中未用上述命令指定的变量默认为、在程序中未用上述命令指定的变量默认为私有变量。私有变量。2、在命令窗口中创建的变量或数组被自动赋、在命令窗口中创建的变量或数组被自动赋予全局属性。予全局属性。78clearpublic a,ca=篮球篮球b=足球足球c=排球排球 f()?a?b function f local b a=网球网球 b=a+c?b endfun网球排球网球排球网球网球足球足球结果结果例如例如797.6 综合应用综合应用例例7-21 输入一个数字输入一个数字(06),用,用

36、中英文显示星期几中英文显示星期几ClearInput 输入数字输入数字(06):to n do case case n=1 m=星期一星期一(Monday)case n=2 m=星期二星期二(Tuesday)case n=3 m=星期三星期三(Wednesday)“case n=4 m=星期四星期四(Thursday)case n=5 m=星期五星期五(Friday)case n=6 m=星期六星期六(Saturday)case n=0 m=星期日星期日(Sunday)OTHERWISE m=重新输入重新输入!endcase?数字数字+ltrim(str(n)+是是:+m80例例7-23 30

37、个人在饭店用餐,其中有男人、女人和小孩。个人在饭店用餐,其中有男人、女人和小孩。每个男人花了每个男人花了3个先令,每个女人花了个先令,每个女人花了2个先令,每个小个先令,每个小孩花了孩花了1个先令,一共花去个先令,一共花去50个先令,问男人、女人和个先令,问男人、女人和小孩各有多少人?小孩各有多少人?clear for x=1 to 16 for y=1 to 24 z=30-x-y if 3*x+2*y+z=50?x,y,z endif endfor endfor假设假设男人有男人有x个个女人有女人有y个个小孩有小孩有z个个则则x+y+z=303x+2y+z=5081例例7-24 一个班有一

38、个班有50个同学,要随机地抽出个同学,要随机地抽出10个同学组成个同学组成“计算计算机兴趣小组机兴趣小组”,编制程序如下:,编制程序如下:ClearDime student10For i=1 to 10 x=int(rand()*50)+1 k=0 for j=1 to i-1 if x=studentj i=i-1 k=1 exit endif endfor If k=1 loopendifstudenti=xendfor?计算机兴趣小组:计算机兴趣小组:For i=1 to 10?studentiEndforreturn产生随机数产生随机数去掉相同数去掉相同数82例例7-25,打印杨辉三角

39、形的前,打印杨辉三角形的前8行行 clear dime a(8,8)for i=1 to 8 a(i,i)=1 a(i,1)=1 endfor for i=3 to 8 for j=2 to i-1 a(i,j)=a(i-1,j)+a(i-1,j-1)endfor endfor 1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 1 7 21 35 35 21 7 1for i=1 to 8 for j=1 to i?Substr(str(a(i,j),6)endfor?endfor83例例:设计一个设计一个8进制变进制变10进制转换

40、器进制转换器input to nC=alltrim(str(n)x=0for i=1 to len(c)x=x*8+val(substr(c,i,1)endfor?x 85VFPVFP二级考试笔试二级考试笔试题题n20022002年(秋)年(秋)VFPVFP二级考试笔试二级考试笔试28.28.执行下列程序段后,显示的结果是:执行下列程序段后,显示的结果是:_。SET TALK OFF&SET TALK OFF&关闭人机对话关闭人机对话CLEARCLEARX=“18”X=“18”Y=“2E3”Y=“2E3”Z=“ABC”Z=“ABC”?VALVAL(X X)+VAL+VAL(Y Y)+VAL+V

41、AL(Z Z)&求值求值;A.2018.00 B.18.00A.2018.00 B.18.00 C.20.00 C.20.00 D.D.错误信息错误信息86n9.运行下面的程序段后,运行结果是:运行下面的程序段后,运行结果是:_。SET TALK OFFSTORE 4 TO N?S(N)FUNCTION S PARAMETERS X Y=1 P=0 FOR I=1 TO X Y=Y*I P=P+Y ENDFOR RETURN PENDFUNC 答案:答案:331+1*2+1*2*3+1*2*3*4=3388n21.执行下列程序后,显示的结果是执行下列程序后,显示的结果是 。C=江苏省高等学校计

42、算机等级考试江苏省高等学校计算机等级考试DO SUB1?LEFT(&X,6)+SUBSTR(C,15)+RIGHT(T,3)PROCEDURE SUB1 PUBLIC X,T X=C T=数据库数据库VFP RETURNendproc 答案:江苏省计算机等级考试答案:江苏省计算机等级考试VFP注注LEFT(&X,6)即即LEFT(c,6)=江苏省江苏省SUBSTR(C,15)=计算机等级考试计算机等级考试RIGHT(T,3)=VFP90n24.下面程序段的功能是根据数值型变量下面程序段的功能是根据数值型变量X的取的取值范围不同,给变量值范围不同,给变量Y赋不同的值。该程序段赋不同的值。该程序段

43、中的多条命令可以简化为一条命令,这条命令中的多条命令可以简化为一条命令,这条命令是:是:Y=IIF(X0,1,_)。)。IF X0 Y=1ELSE IF X=0 Y=0 ELSE Y=-1 ENDIFENDIF 答案:答案:IIF(X=0,0,-1)91n(02秋秋改改错错vfp01)要要求求:不不允允许许修修改改程程序序的的总总体体框框架架和和算算法法,不允许增加或减少语句数目。不允许增加或减少语句数目。水水 仙仙 花花 数数 是是 各各 位位 数数 字字 的的 立立 方方 等等 于于 该该 数数 本本 身身,例例 如如153=13+53+33nCount=1for n=100 to 999

44、 n1=val(subs(str(n,3),3,1)n2=val(subs(str(n,3),2,1)n3=val(subs(str(n,3),1,1)if n=n13+n23+n33?n nCount=nCount+1 endif endfor wait windows“水仙花数水仙花数”的个数为的个数为+nCount 153370371407nCount=0wait windows“水仙花数水仙花数”的个数为的个数为+str(nCount)改正:92(vfp02)统计一个字符串中包多少个汉字)统计一个字符串中包多少个汉字,其基本算法是从字其基本算法是从字符串中依次取一个字符符串中依次取一个

45、字符,如其如其ASC码值大于码值大于127,则为一个汉字内则为一个汉字内码的一个字节码的一个字节.cString=微软微软(Microsoft)公司的公司的(Windows)操作系统操作系统nCount=0do while len(cString)=0 if asc(left(cString,1)127 nCount=nCount+1 cString=substr(cString,3)else cString=substr(cString,1)endifenddowait windows 汉字个数为汉字个数为+str(nCount)改正:改正:do while len(cString)0cSt

46、ring=substr(cString,2)9303年春年春VFP02计算计算1/1!+1/2!+1/3!+1/n!当某当某一数列项的值小于一数列项的值小于0.01时停止。时停止。Set decimals to 2&设置显示小数位数设置显示小数位数2位位 n=1 nm=1 nsum=0Do while .t.nm=nm/n if nm0.01 loop endif nsum=nsum+nm nm=nm+1EnddoWait windows“该数列之和为该数列之和为”+str(nsum,10,2)改正:改正:exitn=n+194编程序编程序找找2100之之间的素数间的素数clearfor n=2 to 100 k=.t.m=2 do while k and mn if n%m=0 k=.f.endif m=m+1 enddo if k?n endif endfor 95找找2100之间之间的素数的素数调用子程序调用子程序Function ss Parameter x k=.t.m=2 do while k and mx if x%m=0 k=.f.endif m=m+1 enddo return kendfunc clearfor n=2 to 100 if ss(n)?n endifendfor96

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!