说明: 说明:
此部分仅仅是对 VFP 程序
设计部分的整理,大部分程序都是本人编写,已进过调试,欢 迎大家找错。
课堂例题 课堂例题
例 1:求 1/2+2/3+3/5+……前 20 项和 : 前
程序: clear s=0 p=1 q=2 for i=1 to 20 s=s+p/q t=p p=q q=t+q endfor ?'s='+str(s,10,6) ?'i='+str(i)
例 2:判断某书是否为素数 :
程序: clear input "输入一个输:" to n for i=2 to int(sqrt(n)+1) if n%i=0 exit endif endfor if i>int(sqrt(n)+1) ?alltrim(str(n))+'是一个素数' else ?alltrim(str(n))+'不是一个素数' endif
例 3:scan 语句对比 :
程序: clear use xs goto 1 scan for xb='女' and xdh='01' ?xh,xm,xb,xdh endscan
第二种程序: clear sele xs go 1 do while eof ()=.f.
if xb='女' and xdh='01' ?xh,xm,xb,xdh endif skip enddo
日一二三四五六”。 例 4:将星期输出为 日一二三四五六 。 :将星期输出为“日一二三四五六
程序: clear datt(date()) datt({^2009-5-5}) function datt parameters dat da='日一二三四五六' i=dow(dat) ?'星期'+substr(da,i*2-1,2) endfunc
例 5:计算所给英语句子中的单词数。 :计算所给英语句子中的单词数。
程序: clear input "输入一个英语句子:" to str i=1 count=0 word=0 for i=1 to len(str) ch=substr(str,i,1) if ch=' ' word=0 else if
word=0 count=count+1 word=1 endif endif endfor ?'单词的个数:'+alltrim(str(count))
例 6:字符串中每个字幕出现的次数 :
程序: clear
input "输入英语句子:" to str for i=1 to 26 ch=chr(i+96) n&;ch=0 endfor other=0 for i=1 to len(str) ch=substr(str,i,1) if between(ch,'a','z') and between(ch,'A','Z') n&;ch=n&;ch+1 else other=other+1 endif endfor for i=1 to 26 ch=chr(i+96) if n&;ch!=0 ?ch+'出现过'+alltrim(str(n&;ch))+'次' endif endfor ?'other'+'出现过'+alltrim(str(other))+'次'
各种函数的实现
1、ABS 、
程序: clear input '一个数:'to a if a>0 ?a else ?-a endif
2、MAX 和 MIN 由于牵扯到数组应该不会考,下面写一个三个数比较的代码, 、 由于牵扯到数组应该不会考,下面写一个三个数比较的代码, 函数为例。 以 MAX 函数为例。
程序: clear input to a input to b input to c max=a if max
max=b endif if max 3、MOD 、
程序: clear input '被除数:'to a input '除数:'to b t=a-b do while t>=0 t=t-b enddo t=t+b ?alltrim(str(a))+'除以'+alltrim(str(b))+'的余数为:'+alltrim(str(t))
4、ALLTRIM、LTRIM、RTRIM 、 、 、 ALLTRIM 可以由 LTRIM 和 RTRIM 组成,所以下面我写的是 LTRIM 和 RTRIM 组成, 的代码, 的代码。 的代码,组合后就是 ALLTRIM 的代码。
LTRIM 程序: clear input '输入一个英语句子:' to str ch=left(str,1) l=len(str) do while ch=' ' l=l-1 str=right(str,l) ch=left(str,1) enddo ?str RTRIM 程序: clear input '输入一个英语句子:' to str ch=right(str,1) l=len(str) do while ch=' ' l=l-1 str=left(str,l) ch=
right(str,1) enddo
?str
联想: 联想:去除字符串中所有空格
程序: input '输入一个字符串:' to str p=space(0) for i=1 to len(str) ch=substr(str,i,1) if ch!=' ' p=p+ch endif endfor ?str+'去掉所有空格后为'+p
5、LEN 、
程序: clear input '输入一个字符串:' to str p=space(0) len=0 do while p!=str len=len+1 p=p+substr(str,len,1) enddo ?'字符串长度为:'+alltrim(str(len))
6、SPACE 、
程序: input '输入一个数字:' to a for i=1 to a ??' ' endfor
补充部分
的值。 题目 1:变量值的交换,如交换 a,b 的值。 :变量值的交换,
程序: clear input "一个数 a:" to a input "一个数 b:" to b c=a a=b b=c
?'a,b 交换后为'+alltrim(str(a))+','+alltrim(str(b))
题目 2:根据学生的成绩给予相应的等低,对应关系如下: :根据学生的成绩给予相应