编程题类型总结(VFP)
①求和类:
1. 计算S=1!+2!+3!+4!+。。。。。。+N! S=0 K=1
INPUT "N=" TO N FOR i=1 TO N K=K*i S=S+K Endfor ?S
2.求 3
3
3
3
3
217531+??????++++ SUM=0
FOR I=1 TO 21 STEP 2 SUM=SUM+I^3 ENDFOR
?”SUM=”,SUM
3.有一分数序列,求前20项之和
(813583)
52
31
2++
+
+
M=1
N=2 SUM=0
FOR I=1 TO 20 TERM=N/M SUM=SUM+TERM X=N N=M+N M=X
TERM=N/M ENDFOR
?”SUM=”,SUM
4.求Sn=a+aa+aaa+aaaa ……,其中,a 是一个数字,a 的个数为n ,a 和n 由键盘输入 INPUT "输入 a 的值:" TO A INPUT "输入项数n:" TO N SN=0 B=A
FOR I=1 TO N SN=SN+A
A=A*10+B ENDFOR
?"数列之和为:",SN
5. 求e x
的台劳级数展开式的前n 项之和(运行时输入x=2.0,n=4)
)!1(!3!21132-+
??????++++=-n x
x x x e n x
INPUT “X=” TO X
INPUT “N=” TO N SUM=1 P=1
FOR I=1 TO N-1 P=P*I T=X^I/P SUM=SUM+T ENDFOR
?”SUM=”,SUM
6.求1*2+3*4+5*6+……21*22 SUM=0
FOR I=1 TO 21 STEP 2 SUM=SUM+I*(I+1) ENDFOR
?"和为=",SUM (1892)
7.通过键盘输入n ,求下列级数的 和:
?1-1/2+1/3-1/4+…+1/n INPUT TO N S=0 F=1
FOR I=1 TO N
S=S+F*(-1)^(I-1)/I ENDFOR ?S
8.计算连续自然数之和,并且显示和刚大于1000的最后一个自然数
Sn=1+2+3+4+…+N STORE 0 TO S,N
DO WHILE S<=1000
N=N+1 S=S+N
ENDDO ? N
9.求1^2+4^2+7^2+…一直加到超过1000为止,输出和数与项数。
I=1
S=0
N=0
DO WHILE S<=1000
S=S+I^2
I=I+3
N=N+1
ENDDO
?N
?S
10.求1-100之间所有奇数之和
SUM=0
FOR I=1 TO 100 STEP 2
SUM=SUM+I
ENDFOR
? “SUM=”,SUM
10.输出100到200之间所有能被5或7整除的整数,并输出他们的和。
SUM=0
FOR I=100 TO 200
IF MOD(I,10)=5 AND MOD(I,7)=0
SUM=SUM+I
?I
ENDIF
ENDFOR
?“SUM=”,SUM
11.编程输出100~500之间能被7整除的奇数的个数。
N=0
FOR I=100 TO 500
IF I%7=0 AND I%2=1
N=N+1
ENDIF
ENDFOR
? “N=”,N
12. 求1/(1*2)+1/(3*4)+1/(5*6)+……+1/(99*100) SUM=0
FOR I=1 TO 99 STEP 2
SUM=SUM+1/(I*(I+1))
ENDFOR
?"SUM=",SUM
13.
求如下级数前N项之和(X和N的值由键盘输入
)
n
x x x x x n
+
??????+++++4321432
S=1
INPUT TO X INPUT TO N FOR I=1 TO N S=S+X^I/I ENDFOR
?“SUM=”,S
14.输出3-100之间的所有素数,并求其和。 SUM=0
FOR J=3 TO 100 FLAG=.T.
FOR I=2 TO SQRT(J) IF MOD(J,I)=0 FLAG=.F. EXIT ENDIF ENDFOR IF FLAG=.T. ?J
SUM=SUM+J ENDIF ENDFOR
?"奇数之和是:",SUM
②方程类
1.完成下面分段函数的计算,程序运行时用户从键盘输入一个数值X ,在屏幕上输出Y 值。
??
???<-=>=0
00022
x if
x x if x if x Y
INPUT "请输入X 值:" TO X IF X>0 Y=X*X ELSE
IF X=0 Y=0 ELSE
Y=-(X*X)
ENDIF
ENDIF
?Y
2.现有一元2次方程 AX^2+BX+C=0 其中A B C 是整数且A不等于0 若存在实根,则输出“在实数范围内有解”若不存在实根则输出“在实数范围内无解”/求解
INPUT TO A
INPUT TO B
INPUT TO C
D=B*B-4*A*C
IF D>=0
?"在实数范围内有解"
ELSE
?"在实数范围内无解"
ENDIF
/
INPUT TO A
INPUT TO B
INPUT TO C
D=B*B-4*A*C
IF D>0
X1=(-B+SQRT(D))/(2*A)
X2=(-B-SQRT(D))/(2*A)
?X1
?X2
ELSE
IF D>0
X=-B/(2*A)
?"X1=X2=",X
ELSE
?"无解"
ENDIF
ENDIF
3.输入一个X 的值,求Y 的值。Y= ??
?
??>=-<=<-<10
113101121X if X X if
X X if X
INPUT TO X DO CASE CASE X<1 Y=X CASE X<10 Y=2*X-1 CASE X>=10 Y=3*X-11 ENDCASE ?Y
③数组类
1. 输入10个数,输出其中小于平均值S 的数。 DIME A(10) S=0
FOR I=1 TO 10 INPUT TO A(I) S=S+A(I) ENDFOR S=S/10
FOR I=1 TO 10 IF A(I)
2.输入10个数,求其中最大数和最小数。 DIME A(10) FOR I=1 TO 10
INPUT “ ENTER A NUMBER:”TO A(I) ENDFOR BIG=A(1) SMALL=A(1) FOR I=2 TO 10
IF A(I)>BIG
BIG=A(I)
ENDIF
IF A(I)
SMALL=A(I)
ENDIF
ENDFOR
?“THE SMALLEST NUMBER IS”,SMALL
?“THE BIGGEST NUMBER IS”,BIG
3.输入10个数,求其中最大数和最小数,并确定它们的位置。
DIME A(10)
FOR I=1 TO 10
INPUT “ ENTER A NUMBER:”TO A(I)
ENDFOR
BIG=A(1)
BP=1
SMALL=A(1)
SP=1
FOR I=2 TO 10
IF A(I)>BIG
BIG=A(I)
BP=I
ENDIF
IF A(I)
SMALL=A(I)
SP=I
ENDIF
ENDFOR
?“THE PLACE OF THE SMALLEST NUMBER IS”,SP
?“THE SMALLEST NUMBER IS”,SMALL
?“THE PLACE OF THE BIGGEST NUMBER IS”,BP
?“THE BIGGEST NUMBER IS”,BIG
4.从键盘输入10 个整数,现从中查找某个数,若查到,输出“YES”,否则输出“NO”。
DIMENSION A(10)
FOR I=1 TO 10
INPUT "输入10个整数" TO A(I)
ENDFOR
INPUT "输入待查找的整数" TO X
FOR I=1 TO 10
IF X=A(I)
? "YES"
EXIT
ENDIF
ENDFOR
IF I>10
? "NO"
ENDIF
5.已有按从小到大的顺序排列的10 个数,现输入一个数,要求插入到数列中。插入后数列仍然按从小到大顺序排列。
DIMENSION A(11)
FOR I=1 TO 10
INPUT “递增输入10个整数” TO A(I)
ENDFOR
INPUT “任意输入一个整数” TO X
FOR I=10 TO 1 STEP -1