程序的3种基本结构:顺序结构、选择(或分支)结构、循环结构,它们构成了实现一个算法的基本单元.
1.顺序结构
顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。
2.分支(选择)结构
分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。
常见的分支结构有:
1)I F语句:
语句格式:
<命令组1>
[else
<命令组2>]
Endif
例:CLEAR
INPUT "请输入年份:" to y
IF y/4=int(y/4) and y/100<>int(y/100) or y/400=int(y/400)
str(y,4)+"年是闰年"
ELSE
str(y,4)+"年不是闰年"
ENDIF
RETURN
2)多分支语句:表达分支、循环的每种语句都不允许在一个命令行中输完,必须按格式一行一行地键入,因此,不能出现在命令窗口中。
语句格式:
do case
case<条件1>
<命令组1>
case<条件2>
<命令组2>
………………..
[otherwise
<命令组N>]
endcase
例:yue=month(date())
do case
case inlist(yue,3,4,5) &&第一个表达式的值是其余表达式值之一就返回.T.
jj= "春"
case inlist(yue,6,7,8)
jj= "夏"
case inlist(yue,9,10,11)
jj= "秋"
case inlist(yue,12,1,2)
jj= "冬"
endcase
MESSAGEBOX("当前季节为:"+jj+"季")
return
3:循环结构,循环结构能够使某些语句或程序段重复执行若干次。
1)条件循环(do while循环)
语句结构:里面镶嵌if函数。
do while<条件>
<命令组>
[exit]
[loop]
Enddo
例:下列程序的功能是输出能被7整除的3位自然数。请填空完成。
CLEAR
N=100
DO WHILE N>=100 AND N<1000
IF MOD(N,7)=0
N
ENDIF
n=n+1
ENDDO
RETURN
2)步长循环(for…endfor计数循环)
语句结构:
For<循环变量>=<初值> to <终值>[step<步长值>]
<命令组>
Endfor︳next
例:计算s=1+2+3+…+100
clear
s=0
for i=1 to 100
s=s+i
endfor
"1+2+3+...+100=",s
Return
3)扫描循环(scan…endscan循环)
语句格式:
Scan[<范围>][for<条件>][while <条件>
<命令组>
Endscan
例:clear
use 学生
vs=0
do whil not eof()
if 性别=“男” scan
skip if 性别=“男”
loop loop
else else
disp disp
vs=vs+1 vs=vs+1
skip endi
endi ends
endd
”女生人数为:”,vs
retu
4:多重循环(掌握双重循环)
clear
for i=1 to 5 &&控制行数
for j=1 to 2*i-1 &&控制每行字符个数
'*'
endfor
endfor
return
1、公共变量public <内存变量表>
上下级各级程序都有效的内存变量表。命令窗口中定义的变量是公共变量,但不能在程序中使用
2、本地变量 local <内存变量表>
命令屏蔽掉主模块或上级模块中同名的变量,使得这些变量在子模块中暂时无效。只要返回主模块或上级模块,原来同名变量会重新出现,并且其值保持不变。
3﹑私有变量 private <内存变量表> | all [like|except <通配符>]
在程序中定义的变量,并且没有经过任何声明,均为私有变量.此命令只对本级程序及以下各级程序有效,并不影响上级程序中与之同名的内存变量的值。
1.过程的格式
clea
area=0
input “输入半径:” to r
do sub3 with r,area
”圆的面积为:”,area
retu
procedure sub3
parameter a,b
b=pi()*a^2
retu