VFP结构化程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Messagebox("输入的不是三位数或重排后不是三位数,请重新输入!")
Else
A1=int(a/100)
A2=int(mod(a,100)/10)
A3=mod(a,10)
?a1+10*a2+100*a3
ENDIF
SET TALK ON
RETURN
方法三
clear
accept"请输入一个三位整数:" to x
********
********
********
SET TALK OFF
CLEAR
A=1
DO WHILE A<=7
B=1
DO WHILE B<=8
@A,B+A SAY “*”
B=B+1
ENDDO
A=A+1
ENDDO
SET TALK ON
RETURN
return
05、用循环输出下列图形。
*
* * *
* * * * *
* * * * * * *
方法一:
SET TALK OFF
CLEAR
r=1
cc=10
DO WHILE r<=4
s=1
DO WHILE s<=2*r-1
@r,cc SAY“*”
cc=cc+1
s=s+1
ENDDO
cc=10-r
r=r+1
?a1+10*a2+100*a3
Else
Messagebox("输入的不是三位数,请重新输入!")
ENDIF
SET TALK ON
RETURN
方法二
若要求输出的数必须是三位整数,则程序如下:
SET TALK OFF
CLEAR
INPUT "请输入一个三位数:" TO A
If a<100 or a>=1000 or mod(a,100)=0
Clear
E=1
t=1
i=1
Do while .t.
T=1
For k=1 to i
T=t*k
Endfor(Next k)
i=i+1
If 1/t<0.000001
Exit
Endif
E=e+1/t
Enddo
?”e=”,e
Set talk on
Return
方法二
Set talk off
clear
e=0 &&累加和
store a to max, min
forI=2 to 10
input“请从键盘输入一个数:”to a
if max<a
max=a
endif
if min>a
min=a
endif
endfor
?”最大值为:”, max
?”最小值为:”,min
set talk on
return
11、求1000以内的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153=13+53+33,故153是水仙花数。
endfor
FOR i=1 TO 10
?s(i)
endfor
Set talk on
Return
08、从键盘输入任意两个数,然后按从大到小顺序输出。
clear
input“X=”to X
input“X=”to y
if X>Y
T=X
X=Y
Y=T
Endif
?“X=”,X
?“Y=”,Y
09、编程求和S=1+2+3+…+100。
a=a+1
?
enddo
方法二:
*用for—endfor语句打印九九乘法表
SET TALK OFF
CLEAR
FOR Y=1 TO 9
FOR X=1 TOy
Z= Y * X
??STR(Y,1)+“*”+STR(X,1)+“=”+STR(Z,2)+“ ”
ENDFOR
?
ENDFOR
SET TALK ON
RETURN
ENDDO
RETURN
方法二:
clear
input "请输入层数:"to n
for i=1 to n &&控制行数
??space(40-i) &&设置每一行起始列位
for j=1 to 2*i-1 &&控制每一行星号个数
??"*"
endfor
? &&换行
endfor
06、输出乘法口诀表(下三角形的形式输出)。
SET TALK OFF
CLEAR
STORE 0 TOK,S
DO WHILEk<=100
S=K+S
K=K+1
ENDDO
?”累加和S=”,S
SET TALK ON
RETURN
10、从键盘输入10个数,编程找出其中的最大值和最小值
set talk off
clear
input“请从键盘输入一个数:”to a
IFi%2=0
s=s-1/i
ELSE
s=s+1/i
endif
ENDFOR
?s
Set talk on
Return
方法二
Set talk off
clear
s=0 &&累加和赋除值
f=1 &&符号变量
for i=1 to 100
s=s+f*1/i
f=-1*f &&改变符号
endfor
?"s=",s
Set talk on
试用固定次数循环的嵌套格式编写一个打印九九乘法口诀表的程序。
方法一:
*用do while-enddo语句打印九九乘法表
clear
a=1
do while a<=9
b=1
do while b<=a
c=a*b
??str(a,1)+”*”+str(b,1)+”=”+str(c,2)+“”
b=b+1
enddo
For i=2 to n-1
If n/i=int(n/i)
P=0
Exit
Endif
Endfor
If p<>0
?"数"+ltrim(str(n))+"是素数"
Else
?"数"+ltrim(str(n))+"不是素数"
Endif
Set talk on
Return
输入10个数,让它们按降序的顺序输出。(提示:使用一维数组)
07、输入一个数n,判断其是否是素数。(提示:素数又称质数,只能够被1和它本身整除。如果要判断n是否是素数,就用2~n-1之间的数逐个去除,若全部都除不尽,则n为素数,否则不是素数。为减少除的次数,提高运行效率,除到即可。)
Set talk off
Clear
P=1
Input "请输入一个数N:" to n
01、从键盘任意输入一个3位整数,若输入的数据不是一个3位整数则给出提示信息,编程实现3位整数的逆序输出。
方法一
SET TALK OFF
CLEAR
INPUT "请输入一个三位数:" TO A
If a>100 and a<1000
A1=int(a/100)
A2=int(mod(a,100)/10)
A3=mod(a,10)
n=len(x)
s=""
for i=3 to 1 step -1
s=s+substr(x,i,1)
endfor
?"逆序输出为:",s
return
02、键盘输入n,求N!
方法一
Set talk off
Clear
P=1
Input“请输入N:”to n
For i=1 to n
p=p*i
Endfor
?“N!=”,p
方法来自百度文库:
Clear
?“打印1000以内的水仙花数:”
for x=100 to 999
x1=x%10 &&取出个位数
x2=int(x/10)%10 &&取出十位数
x3=int(x/100) &&取出百位数
if x=x1^3+x2^3+x3^3
?x
endif
endfor
方法二:
set talk off
clea
Set talk on
Return
方法二
clear
input"n="to n
s=1
do whilen>0
s=s*n
n=n-1
enddo
?"n!=",s
return
03、计算e的近似值。其公式为:e=1+1/1!+1/2!+1/3!+…+1/n!,直到1/n!<0.000001为止。
方法一
Set talk off
Set talk off
Clear
dime s(10)
for i=1 to 10
input '请输入第'+STR(i)+'个数:' to s(i)
endfor
for i=1 to 9
for j=i+1 to 10
if s(i)<s(j)
a=s(i)
s(i)=s(j)
s(j)=a
endif
endfor
forI=1 to 9
for j=0 to 9
for k=0 to 9
ifI^3+j^3+k^3=100*I+10*j+k
? 100*I+10*j+k
endif
endfor
endfor
endfor
return
12、求出0~300之间能被3整除的数的和?
SET TALK OFF
I=1
S=0
DO WHILEI<=300
f=1 &&存放阶乘
k=1 &&累积项
do while 1/f>=0.000001
e=e+1/f
f=f*k
k=k+1
enddo
?"e=",e
Set talk on
return
04、编程:求S=1-1/2+1/3-1/4+1/5-……-1/100。
方法一
set talk off
CLEAR
s=0
i=0
FORi=1TO100STEP 1
IF mod(I,3)=0
S=S+I
ENDIF
I=i+1
ENDDO
??S
RETURN
13、求1到100中偶数的和
AA=0
FOR II=2 TO 100 STEP 2
AA=AA+II
ENDFOR
? AA
屏幕显示为:2550
14、编写程序打印如下的图形
********
********
********
********
Else
A1=int(a/100)
A2=int(mod(a,100)/10)
A3=mod(a,10)
?a1+10*a2+100*a3
ENDIF
SET TALK ON
RETURN
方法三
clear
accept"请输入一个三位整数:" to x
********
********
********
SET TALK OFF
CLEAR
A=1
DO WHILE A<=7
B=1
DO WHILE B<=8
@A,B+A SAY “*”
B=B+1
ENDDO
A=A+1
ENDDO
SET TALK ON
RETURN
return
05、用循环输出下列图形。
*
* * *
* * * * *
* * * * * * *
方法一:
SET TALK OFF
CLEAR
r=1
cc=10
DO WHILE r<=4
s=1
DO WHILE s<=2*r-1
@r,cc SAY“*”
cc=cc+1
s=s+1
ENDDO
cc=10-r
r=r+1
?a1+10*a2+100*a3
Else
Messagebox("输入的不是三位数,请重新输入!")
ENDIF
SET TALK ON
RETURN
方法二
若要求输出的数必须是三位整数,则程序如下:
SET TALK OFF
CLEAR
INPUT "请输入一个三位数:" TO A
If a<100 or a>=1000 or mod(a,100)=0
Clear
E=1
t=1
i=1
Do while .t.
T=1
For k=1 to i
T=t*k
Endfor(Next k)
i=i+1
If 1/t<0.000001
Exit
Endif
E=e+1/t
Enddo
?”e=”,e
Set talk on
Return
方法二
Set talk off
clear
e=0 &&累加和
store a to max, min
forI=2 to 10
input“请从键盘输入一个数:”to a
if max<a
max=a
endif
if min>a
min=a
endif
endfor
?”最大值为:”, max
?”最小值为:”,min
set talk on
return
11、求1000以内的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。例如,153=13+53+33,故153是水仙花数。
endfor
FOR i=1 TO 10
?s(i)
endfor
Set talk on
Return
08、从键盘输入任意两个数,然后按从大到小顺序输出。
clear
input“X=”to X
input“X=”to y
if X>Y
T=X
X=Y
Y=T
Endif
?“X=”,X
?“Y=”,Y
09、编程求和S=1+2+3+…+100。
a=a+1
?
enddo
方法二:
*用for—endfor语句打印九九乘法表
SET TALK OFF
CLEAR
FOR Y=1 TO 9
FOR X=1 TOy
Z= Y * X
??STR(Y,1)+“*”+STR(X,1)+“=”+STR(Z,2)+“ ”
ENDFOR
?
ENDFOR
SET TALK ON
RETURN
ENDDO
RETURN
方法二:
clear
input "请输入层数:"to n
for i=1 to n &&控制行数
??space(40-i) &&设置每一行起始列位
for j=1 to 2*i-1 &&控制每一行星号个数
??"*"
endfor
? &&换行
endfor
06、输出乘法口诀表(下三角形的形式输出)。
SET TALK OFF
CLEAR
STORE 0 TOK,S
DO WHILEk<=100
S=K+S
K=K+1
ENDDO
?”累加和S=”,S
SET TALK ON
RETURN
10、从键盘输入10个数,编程找出其中的最大值和最小值
set talk off
clear
input“请从键盘输入一个数:”to a
IFi%2=0
s=s-1/i
ELSE
s=s+1/i
endif
ENDFOR
?s
Set talk on
Return
方法二
Set talk off
clear
s=0 &&累加和赋除值
f=1 &&符号变量
for i=1 to 100
s=s+f*1/i
f=-1*f &&改变符号
endfor
?"s=",s
Set talk on
试用固定次数循环的嵌套格式编写一个打印九九乘法口诀表的程序。
方法一:
*用do while-enddo语句打印九九乘法表
clear
a=1
do while a<=9
b=1
do while b<=a
c=a*b
??str(a,1)+”*”+str(b,1)+”=”+str(c,2)+“”
b=b+1
enddo
For i=2 to n-1
If n/i=int(n/i)
P=0
Exit
Endif
Endfor
If p<>0
?"数"+ltrim(str(n))+"是素数"
Else
?"数"+ltrim(str(n))+"不是素数"
Endif
Set talk on
Return
输入10个数,让它们按降序的顺序输出。(提示:使用一维数组)
07、输入一个数n,判断其是否是素数。(提示:素数又称质数,只能够被1和它本身整除。如果要判断n是否是素数,就用2~n-1之间的数逐个去除,若全部都除不尽,则n为素数,否则不是素数。为减少除的次数,提高运行效率,除到即可。)
Set talk off
Clear
P=1
Input "请输入一个数N:" to n
01、从键盘任意输入一个3位整数,若输入的数据不是一个3位整数则给出提示信息,编程实现3位整数的逆序输出。
方法一
SET TALK OFF
CLEAR
INPUT "请输入一个三位数:" TO A
If a>100 and a<1000
A1=int(a/100)
A2=int(mod(a,100)/10)
A3=mod(a,10)
n=len(x)
s=""
for i=3 to 1 step -1
s=s+substr(x,i,1)
endfor
?"逆序输出为:",s
return
02、键盘输入n,求N!
方法一
Set talk off
Clear
P=1
Input“请输入N:”to n
For i=1 to n
p=p*i
Endfor
?“N!=”,p
方法来自百度文库:
Clear
?“打印1000以内的水仙花数:”
for x=100 to 999
x1=x%10 &&取出个位数
x2=int(x/10)%10 &&取出十位数
x3=int(x/100) &&取出百位数
if x=x1^3+x2^3+x3^3
?x
endif
endfor
方法二:
set talk off
clea
Set talk on
Return
方法二
clear
input"n="to n
s=1
do whilen>0
s=s*n
n=n-1
enddo
?"n!=",s
return
03、计算e的近似值。其公式为:e=1+1/1!+1/2!+1/3!+…+1/n!,直到1/n!<0.000001为止。
方法一
Set talk off
Set talk off
Clear
dime s(10)
for i=1 to 10
input '请输入第'+STR(i)+'个数:' to s(i)
endfor
for i=1 to 9
for j=i+1 to 10
if s(i)<s(j)
a=s(i)
s(i)=s(j)
s(j)=a
endif
endfor
forI=1 to 9
for j=0 to 9
for k=0 to 9
ifI^3+j^3+k^3=100*I+10*j+k
? 100*I+10*j+k
endif
endfor
endfor
endfor
return
12、求出0~300之间能被3整除的数的和?
SET TALK OFF
I=1
S=0
DO WHILEI<=300
f=1 &&存放阶乘
k=1 &&累积项
do while 1/f>=0.000001
e=e+1/f
f=f*k
k=k+1
enddo
?"e=",e
Set talk on
return
04、编程:求S=1-1/2+1/3-1/4+1/5-……-1/100。
方法一
set talk off
CLEAR
s=0
i=0
FORi=1TO100STEP 1
IF mod(I,3)=0
S=S+I
ENDIF
I=i+1
ENDDO
??S
RETURN
13、求1到100中偶数的和
AA=0
FOR II=2 TO 100 STEP 2
AA=AA+II
ENDFOR
? AA
屏幕显示为:2550
14、编写程序打印如下的图形
********
********
********
********