①求和类: http://shop61920697.taobao.com/
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.求
SUM=0
FOR I=1 TO 21 STEP 2
SUM=SUM+I^3
ENDFOR
?”SUM=”,SUM
3.有一分数序列,求前20项之和
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. 求ex的台劳级数展开式的前n项之和(运行时输入x=2.0,n=4)
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的最后一个自然数
l 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=0FOR 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的值由键盘输入)
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值。
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=
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)<S
??A(I)
ENDIF
ENDFOR
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
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
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
IF X<A(I)
IF I=1
A(I+1)=A(I)
A(I)=X
ELSE
A(I+1)=A(I)
ENDIF
ELSE
A(I+1)=X
EXIT
ENDIF
ENDFOR
FOR I=1 TO 11
??A(I)
ENDFOR
?
6. 数组A中已存放了10个由小到大排列的数。现从键盘输入一个数X,要求删除数组中与其相同的数,并将后续的数依次前移,最后输出剩余的数。(7分)
考虑到有重复数的程序如下:
DIME A(10)
FOR I=1 TO 10
INPUT “按递增输入10个数” TO A(I)
ENDFOR
INPUT “输入待删除的数” TO X
I=1
J=1
N=0
DO WHILE I<=10
IF A(I)<X
I=I+1
J=J+1
ELSE
IF A(I)=X
I=I+1
N=N+1
ELSE
EXIT
ENDIF
ENDIF
ENDDO
FOR K=I TO 10
A(J)=A(K)
J=J+1
ENDFOR
FOR K=1 TO 10-N
?A(K)
ENDFOR
7.输入10个数,按升序排列后输出。
dime a(10)
for i=1 to 10
input “ Enter an integer :” to a(i)
endfor
for i=1 to 9
for j=i+1 to 10
if a(i)>a(j)
temp=a(i)
a(i)=a(j)
a(j)=temp
endif
endfor
endfor
for i=1 to 10
?a(i)
endfor 以上是一维数组(数组中只有一个下标)程序举例。在VFP中,还可以建立二维数组。定义方法是:
DIME A(2,3)
第一维代表行,第二维代表列,这样就在内存中开辟了6个连续的存储单元,数组元素的名称分别为:
A(1,1) A(1,2) A(1,3)
A(2,1) A(2,2) A(2,3) 二维数组的元素赋初值及其处理通常要用二重循环,外循环代表行,内循环代表列。如:
FOR I=1 TO 2
FOR J=1 TO 3
INPUT TO A(I,J)
ENDFOR
ENDFOR
二维数组特别适合用来解决矩阵问题。矩阵中有如下几个术语要掌握:行列相等的矩阵叫方阵;方阵中有主对角线、辅对角线、下三角元素、外围元素等
1. 建立一个六行六列的方阵,求出两条对角线上所有元素之和。
dime a(6,6)for i=1 to 6
for j=1 to 6
INPUT TO A(I,J)
endfor
endfor
SUM=0
FOR I=1 TO 6
SUM=A(I,I)+A(I,7-I)
ENDFOR
? “两条对角线上所有元素之和为”,SUM
ZF=0
SF=0
for i=1 to 6
for j=1 to 6
if i=j
SZ=SZ+A(I,J)
ENDIF
IF I+J=7
SF=SF+A(I,J)
ENDIF
ENDFOR
ENDFOR
? “两条对角线上所有元素之和为”,SZ+SF
2. 一个四行五列的矩阵,求出其中最大元素的值,以及所在的行号与列号。
dime a(4,5)
for i=1 to 4
for j=1 to 5
input to a(i,j)
endfor
endfor
big=a(1,1)
row=1
col=1
for i=1 to 4
for j=1 to 5
if a(i,j)>big
big=a(i,j)
row=i
col=j
endif
endfor
endfor
?big, row, col
3. 求两个矩阵之和,即C(3,4)=A(3,4)+B(3,4)
DIME A(3,4),B(3,4),C(3,4)FOR I=1 TO 3
FOR J=1 TO 4
INPUT TO A(I,J)
ENDFOR
ENDFOR
FOR I=1 TO 3
FOR J=1 TO 4
INPUT TO B(I,J)
ENDFOR
ENDFOR
FOR I=1 TO 3
FOR J=1 TO 4
C(I,J)=A(I,J)+B(I,J)
ENDFOR
ENDFOR
FOR I=1 TO 3
FOR J=1 TO 4
??STR(C(I,J),6)
ENDFOR
?
ENDFOR
④判断类
1.键盘输入一个年份,判断是平年还是闰年?
INPUT “Enter a year:” TO Y 、
IF MOD(Y,100)<>0 AND MOD(Y,4)=0 OR MOD(Y,400)=0
?Y,“is a leap year.”
ELSE
?Y,“is a common year”
ENDIF
2.从键盘输入一个整数,判断是偶数还是奇数。
INPUT "整数" TO X
IF MOD(X,2)=0
?"这是个偶数"
ELSE
?"这是个奇数"
ENDIF
3.输入一个字符,判断是否为英文字母。
ACCEPT "请输入一个字符:" TO CH
IF ASC(CH)>=65 AND ASC(CH)<=90 OR ASC(CH)>=97 AND ASC(CH)<=122
?CH,"是英文字母"
ELSE
?CH,"不是英文字母"
ENDIF
4.一个数如果恰好等于它的因子之和,这个数就称为“完数”,如:6=1+2+3,故6是完数。编程判断从键盘输入一个正整数是否为完数。INPUT “输入一个正整数” TO N
S=0
FOR I=1 TO N-1
IF MOD(N,I)=0
S=S+I
ENDIF
ENDFOR
IF S=N
?N,“是完数”
ELSE
?N,“不是完数”
ENDIF
5. 输入一个大于等于2的整数,判断是否为素数?一个正整数,若只能被1和本身整除,则该数称为素数或质数
INPUT “请输入一个大于2的整数” TO N
FLAG=.T.
FOR I=2 TO N-1
IF MOD(N,I)=0
FLAG=.F.
EXIT
ENDIF
ENDFOR
IF FLAG=.T.
? N,“是素数”
ELSE
? N,“不是素数”
ENDIF
6.输入一个字符串,判断其中有多少个大写字母、小写字母、数字字符、空格字符以及其他特殊字符?
STORE 0 TO UPPER,LOWER,DIGIT,SPACE,SPECIAL
ACCEPT “输入一个字符串” TO ST
L=LEN(ST)
FOR I=1 TO L
CH=SUBST(ST,I,1)
DO CASE
CASE ASC(CH)>=65 AND ASC(CH)<=90
UPPER=UPPER+1
CASE ASC(CH)>=48 AND ASC(CH)<=57
DIGIT=DIGIT+1
CASE ASC(CH)>=97 AND ASC(CH)<=122
LOWER=LOWER+1
CASE ASC(CH) =32
SPACE=SPACE+1
OTHERWISE
SPECIAL=SPECIAL+1
ENDCASE
ENDFOR
? “字符串中大写字母的个数是”, UPPER
? “字符串中小写字母的个数是”, LOWER
? “字符串中数字字符的个数是”, DIGIT
? “字符串中空格字符的个数是”, SPACE
? “字符串中其他字符的个数是”, SPECIAL
⑤转换类
1. 输入个大写字母,要求输出它的ASCII码及其对应的小写字母。
ACCEPT “输入一个大写字母:” TO CH
?CH, “的ASCII码为”, ASC(CH)
?CH, “对应的小写字母为”, CHR(ASC(CH)+32)
2.从键盘输入一个八进制数,将其转换成等值的十进制数。
SET TALK OFF
CLEAR
s=0
accept "Enter aN OCTAL number:" to n
L=len(n)
for i=1 to L
s=s+val(substr(n,i,1))*8**(L-i)
endfor
?"s=",s
SET TALK ON
CANCEL
3.从键盘输入一个十进制数,将其转换成等值的八进制数。
SET TALK OFF
CLEAR
input "Enter a DECIMAL number:" to n
oct=""
if n=0
oct="0"
endif
do while n>0
R=mod(n,8)
oct= str(R,1)+oct
n=int(n/8)
enddo
?oct
SET TALK ON
CANCEL
4.从键盘输入一个二进制数,将其转换成等值的十进制数。
s=0
ACCEPT “Enter a binary number:” to n
L=len(n)
for i=1 to L
s=s+val(substr(n,i,1))*2**(L-i)
endfor
?“等值的十进制数为”,s
从键盘输入一个十进制数,将其转换成等值的二进制数。
input "Enter a decimal number:" to n
bin=“”
if n=0
bin=“0”
endif
do while n>0
R=mod(n,2)
bin= str(R,1)+bin
n=int(n/2)
enddo
? “等值的二进制数为”,bin
⑥真实情况类
1.输入乘车的公里数,输出乘车费(计费标准:2.5公里之内是6元,2.5公里以外,每超过1公里增加1元2角)
INPUT "输入公里数" TO X
IF X>2.5
PAY=(X-2.5)*1.2+6
ELSE
PAY=6
ENDIF
?"应付费",PAY,"元"
2. 6) 设交纳所得税的规定如下: DO CASE 语句
收入<=1500元 免交所得税
1500元 < 收入 <=3000元 所得税为5%
3000元 < 收入 <=6000元所得税为 8%
6000元 < 收入 <=10000元所得税为 10%
10000元 < 收入 <=50000元所得税为 15%
收入>50000元所得税为 20%
请编程,从键盘输入一个数,计算应交纳的所得税。
INPUT “income=” to x
do case
case x<=1500⑦
tax=0
case x<=3000
tax=(X-1500)*0.05
case x<=6000
tax=(X-3000)*0.08+(3000-1500)*0.05
case x<=10000
tax=(X-6000)*0.1+(6000-3000)*0.08+(3000-1500)*0.05
CASE X<=50000
TAX=(X-10000)*0.15+(10000-6000)*0.1+(6000-3000)*0.08+(3000-1500)*0.05
otherwise
tax=(X-50000)*0.2+(50000-10000)*0.15+(10000-6000)*0.1&
+(6000-3000)*0.08+(3000-1500)*0.05
endcase
?“INCOME TAX IS”,TAX,“元”
3.键盘输入学生的成绩,若95-100则输出优秀,85-94是很好,70-84则输出好,60-69 是一般60分以下输出不及格。
INPUT "成绩" TO FS
DO CASE
CASE FS>=95
?"优秀"
CASE FS>=85
?"很好"
CASE FS>=70
?"好"
CASE FS>=60
?"一般"
OTHERWISE
?"不及格"
ENDCASE
4. 编写学生成绩统计程序。设有三位同学,考数学、物理、化学三门课,统计每个同学的总分和平均分
SET TALK OFF
CLEAR
dime s(3,6)
for i=1 to 3
for j=1 to 4
input "input STUDENT-NO AND SCORE:" to s(i,j)
endfor
endfor
for i=1 to 3
s(i,5)=s(i,2)+s(i,3)+s(i,4)
s(i,6)=round(s(i,5)/3,1)
endfor
?space(5),"stuno",space(4),"math",space(4),"phy",space(5),"che",space(4),
"total",space(5),"aver"
?
for i=1 to 3
for j=1 to 6
??s(i,j)
endfor
?
endfor
SET TALK ON
CANCEL
5.某班有45名参加考试的同学,现在要求从键盘输入全班一门课的成绩,输出该课程的平均分,以及及格人数和半分比。
SUM=0
N=1
FOR I= 1 TO 45
INPUT"全班一门课的成绩" TO X
SUM=SUM+X
IF X>=60
N=N+1
ENDIF
ENDFOR
?"平均分" ,SUM/45
?"几个人数",N
?"合格率",N/45*100,"%"
⑦矩阵类
1.建立一个五行五列的矩阵,求出外围所有元素之和。
DIMENSION A(5,5)
S=0
S1=0
FOR I=1 TO 5
FOR J=1 TO 5
INPUT TO A(I,J)
S=S+A(I,J)
ENDFOR
ENDFOR
FOR I=2 TO 4
FOR J=2 TO 4
S1=S1+A(I,J)
ENDFOR
ENDFOR
?S-S1
⑧打印图形类
1.打印如下图形:
*****
*****
*****
*****
CLEAR
FOR I=1 TO 5
?SPACE(I)
FOR J=1 TO 5
??”*”
ENDFOR
ENDFOR
附:打印如下图形:
*****
****
***
**
*
**
***
****
*****
FOR I=5 TO 1 STEP -1
??SPACE(5-I)
FOR J=1 TO I
??”*”
ENDFOR
?
ENDFOR
FOR I=2 TO 5
??SPACE(5-I)
FOR J=1 TO I
??”*”
ENDFOR
?
ENDFOR
2. 打印如下所示的九九乘法表
①clear
for N=1 TO 9
for M=1 TO N
?? alltrim(str(N))+"×"+alltrim(str(M))+"="+ alltrim(str(N*M))+space(5)
endfor
?
Endfor
②clear
N=1
DO WHILE N<=9
M=1
DO WHILE M<=N
?? alltrim(str(N))+"×"+alltrim(str(M))+"="+ alltrim(str(N*M))+space(5)
M=M+1
ENDDO
?
N=N+1
ENDDO
⑨其他类
1. 输入两个数和一个运算符(加、减、乘、除),求其值。例如,输入3和5以及*,则输出15
INPUT “输入一个数:” TO A
INPUT “输入另一个数:” TO B
ACCEPT “输入运算符:” TO CH
DO CASE
CASE CH=“+”
? “两数之和为:”,A+B
CASE CH=”-“
? “两数之差为:”,A-B
CASE CH=”*”
? “两数之积为:”,A*B
CASE CH=“/”
? “两数之商为:”,A/B
OTHERWISE
? “运算符有错!”
ENDCASE
2.输入一个正整数,分解出所有因子。如18=1*2*3*3,23=1*23
INPUT "输入一个正整数" TO N
?? N,"=1"
I=2
DO WHILE I<=N
IF MOD(N,I)=0
??"*"+ALLTRIM(STR(I))
N=N/I
ELSE
I=I+1
ENDIF
ENDDO
?
3.直接求最小公倍数参考程序如下:
input "输入一个正整数" to m
input "输入另一个正整数" to n
for i=m to m*n
if mod(i,n)=0 and mod(i,m)=0
?"最小公倍数为",i
exit
endif
endfor
4.求Fibonacci数列1,1,2,3,5,8……的第8项与第18项。
DIMENSION F(18)
F(1)=1
F(2)=1
FOR I=3 TO 18
F(I)=F(I-1)+F(I-2)
ENDFOR
? “第8项是:”,F(8)
? “第18项是:”,F(18)
⑩次序类
1.从键盘输入3个数,分别赋予A,B,C三个变量,编程使得A中存放最大数,C存放最小数,并按ABC得次序输出。
INPUT TO A
INPUT TO B
INPUT TO C
BIG=MAX(A,B,C)
SMALL=MIN(A,B,C)
SUM=A+B+C
A=BIG
C=SMALL
B=SUM-BIG-SMALL
?A,B,C
2. 输入一个字符串,按其倒序输出。
ACCEPT "Enter a string:" to st
l=len(st)
for i=l to 1 step -1
??substr(st,i,1)
endfor
?
3. 输入10个数,按输入的相反次序输出
DIME A(10)
FOR I=1 TO 10
INPUT TO A(I)
ENDFOR
FOR I=10 TO 1 STEP –1
?A(I)
ENDFOR
班级电气20xx1学号20xx0210010119VFP程序设计课设总结为期几周的VFP数据库设计的课设就快过去了在这做课设的这段…
目录一需求分析3功能需求3数据需求3二建库结果3数据关系ER图4数据表结构4三系统开发设计4开发流程4功能介绍6四关键和难点问题及…
VFP课程上机操作报告一目的关系数据库管理系统课程的学习不仅需要理论上的深入探讨而且需要通过实践上机自己开发一个数据库管理信息系统…
课程设计题目1房产管理信息系统2娱乐休闲型酒店管理信息系统3银行信贷管理系统4帐务处理与报表管理信息系统5人力资源管理系统6图书管…
求和类1计算S1234NS0K1INPUTquotNquotTONFORi1TONKKiSSKEndforS2求135721SUM…
VFP课程上机操作报告一目的关系数据库管理系统课程的学习不仅需要理论上的深入探讨而且需要通过实践上机自己开发一个数据库管理信息系统…
目录一需求分析3功能需求3数据需求3二建库结果3数据关系ER图4数据表结构4三系统开发设计4开发流程4功能介绍6四关键和难点问题及…
班级电气20xx1学号20xx0210010119VFP程序设计课设总结为期几周的VFP数据库设计的课设就快过去了在这做课设的这段…
课程设计题目1房产管理信息系统2娱乐休闲型酒店管理信息系统3银行信贷管理系统4帐务处理与报表管理信息系统5人力资源管理系统6图书管…
江苏师范大学数据库原理及应用实验报告实验名称班级情况数据库班级姓名学号实验日期20xx年1月9日指导教师吴庆忠江苏师范大学测绘学院…