之和。 clear s=0
? ―能被3整除但不能被7整除的数有:‖
for i=1 to 10
input ― m= ― to m
if m %3 = 0 .and. m % 7 <> 0
??m &&或写 m
/7 # int(m/7) s=s + m endif endfor
? ― 它们的和是:‖ , s return
《P157 例4-83 显示100以内素数,并求和》 S=0
for i=3 to 100 flag =.t.
for j= 2 to i -1
if i/j=int( i/j )
flag = .f. exit endif endfor if flag=.t. ? i s=s+i endif endfor
? ―素数的和是:‖ , s
《字符处理问题》
利用askii码或字符函数: subs(),len(),asc()...
《例:》输入一个字符串,统计其中大写字母的个数 a=0
Accept ―输入字符串:‖ to S
for k=1 to len(S) && len(S)是字符个数
b= subster (S,k , 1) && b是第k个字符
if b>=65 .and. b<=90 &&比较b的ascii码 ?? b
a=a+1 &&统计字符个数 endif endfor ? a
字符程序练习1:
输入一个字符串,统计其中小写字母t的个数 ____
k=len(a) s=0
for I=1 to k
if _____ s=s+1 endif
endfor ?s
《例1》 输入“记事本”,倒序输出。 M=‖ 记事本”
accept ―输入一个字符串:‖ to a
substr(a,I,1)=’t’
For I=5 ??
endfor
to 1 step -2
substr(m, I, 2)
(三). 数据库的循环操作 (P98)
每次循环处理一条记录,用记录指针控制循环次数,直到库底为止。
1) do while .not.eof( ) 循环 《辅导教材p296-3》统计xsk中,男女生的人数 use xsk a = 1 b = 1
do while .not. eof( )
if 性别= ―男‖ && 性别 是字段名
a=a+1 else
b=b+1 endif
skip &&指针移动到下一条记录
enndo
?‖ 男生人数:‖, a , ― 女生人数:‖ , b
例2 程序填空,求xsk.dbf中最高的总分
(辅导教材p.131例4-54,)
clear **
use xsk
a= 总分 &&将首记录的总分赋给内存变量a
do while .not.eof( ) if a<总分 总分 a =总分 a 500 1 500 endif 2 600 skip 3 400 enddo 4 700 ? ―最高总分为: ― , a … … use &&以此类推,可以求最小值
例3在循环中查找并显示计算机专业