1、VFP编程的题目类型地总结编程题类型总结(VFP)求和类:1. 求 N的阶乘。(N的值由键盘输入,应小于20 )INPUT “输入N的值” TO NP=1FOR I=1 TO NP=P*IENDFOR?N,“!=”,P计算S=1!+2!+3!+4!+。+N! S=0K=1INPUT N= TO NFOR i=1 TO N K=K*i S=S+KEndfor?S2.求 SUM=0FOR I=1 TO 21 STEP 2SUM=SUM+I3ENDFOR?”SUM=”,SUM3.有一分数序列,求前20项之和M=1N=2SUM=0FOR I=1 TO 20TERM=N/MSUM=SUM+TERMX=N
2、N=M+NM=XTERM=N/MENDFOR?”SUM=”,SUM4.求Sn=a+aa+aaa+aaaa,其中,a是一个数字,a的个数为n,a和n由键盘输入INPUT 输入 a 的值: TO AINPUT 输入项数n: TO NSN=0B=AFOR I=1 TO NSN=SN+AA=A*10+BENDFOR?数列之和为:,SN5. 求ex的台劳级数展开式的前n项之和(运行时输入x=2.0,n=4)INPUT “X=” TO XINPUT “N=” TO NSUM=1P=1FOR I=1 TO N-1P=P*IT=XI/PSUM=SUM+TENDFOR?”SUM=”,SUM6.求1*2+3*4+
3、5*6+21*22SUM=0FOR I=1 TO 21 STEP 2 SUM=SUM+I*(I+1)ENDFOR?和为=,SUM (1892)7.通过键盘输入n,求下列级数的和:1-1/2+1/3-1/4+1/nINPUT TO NS=0F=1FOR I=1 TO NS=S+F*(-1)(I-1)/IENDFOR?S8.计算连续自然数之和,并且显示和刚大于1000的最后一个自然数 Sn=1+2+3+4+NSTORE 0 TO S,NDO WHILE S=1000 N=N+1 S=S+NENDDO? N9.求12+42+72+一直加到超过1000为止,输出和数与项数。I=1S=0N=0DO WH
4、ILE S0 Y=X*XELSE IF X=0 Y=0 ELSE Y=-(X*X) ENDIFENDIF?Y2.现有一元2次方程 AX2+BX+C=0 其中A B C 是整数且A不等于0 若存在实根,则输出“在实数范围内有解” 若不存在实根 则输出“在实数范围内无解”/求解INPUT TO AINPUT TO BINPUT TO CD=B*B-4*A*CIF D=0?在实数范围内有解ELSE?在实数范围内无解ENDIF/ INPUT TO AINPUT TO BINPUT TO CD=B*B-4*A*CIF D0X1=(-B+SQRT(D)/(2*A)X2=(-B-SQRT(D)/(2*A)?
5、X1?X2ELSE IF D0 X=-B/(2*A) ?X1=X2=,X ELSE ?无解ENDIFENDIF3.输入一个X的值,求Y的值。Y= INPUT TO XDO CASE CASE X1 Y=X CASE X=10 Y=3*X-11ENDCASE ?Y数组类1. 输入10个数,输出其中小于平均值S的数。DIME A(10)S=0FOR I=1 TO 10INPUT TO A(I)S=S+A(I)ENDFORS=S/10FOR I=1 TO 10IF A(I)bigbig=a(i)ENDIFif a(i)bigbig=a(i)BP=IENDIFif a(i)10 ? NOENDIF5.
6、已有按从小到大的顺序排列的10 个数,现输入一个数,要求插入到数列中。插入后数列仍然按从小到大顺序排列。DIMENSION A(11)FOR I=1 TO 10INPUT “递增输入10个整数” TO A(I)ENDFORINPUT “任意输入一个整数” TO XFOR I=10 TO 1 STEP -1 IF XA(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 ENDIFENDFORFOR I=1 TO 11?A(I)ENDFOR?6. 数组A中已存放了10个由小到大排列的数。现从键盘输入一个数X
7、,要求删除数组中与其相同的数,并将后续的数依次前移,最后输出剩余的数。(7分)考虑到有重复数的程序如下:DIME A(10)FOR I=1 TO 10 INPUT “按递增输入10个数” TO A(I)ENDFORINPUT “输入待删除的数” TO XI=1J=1N=0DO WHILE I=10 IF A(I)a(j)temp=a(i)a(i)=a(j)a(j)=tempendifendforendforfor i=1 to 10?a(i)endfor 以上是一维数组(数组中只有一个下标)程序举例。在VFP中,还可以建立二维数组。定义方法是:DIME A(2,3)第一维代表行,第二维代表列,
8、这样就在内存中开辟了6个连续的存储单元,数组元素的名称分别为:A(1,1) A(1,2) A(1,3)A(2,1) A(2,2) A(2,3) 二维数组的元素赋初值及其处理通常要用二重循环,外循环代表行,内循环代表列。如:FOR I=1 TO 2FOR J=1 TO 3 INPUT TO A(I,J)ENDFORENDFOR二维数组特别适合用来解决矩阵问题。矩阵中有如下几个术语要掌握:行列相等的矩阵叫方阵;方阵中有主对角线、辅对角线、下三角元素、外围元素等1. 建立一个六行六列的方阵,求出两条对角线上所有元素之和。DIME A(6,6)FOR I=1 TO 6FOR J=1 TO 6A(I,J
9、)=I+JENDFORENDFORSUM=0FOR I=1 TO 6SUM=A(I,I)+A(I,7-I)ENDFOR? “两条对角线上所有元素之和为”,SUM2. 一个四行五列的矩阵,求出其中最大元素的值,以及所在的行号与列号。dime a(4,5)for i=1 to 4for j=1 to 5input to a(i,j)endforendforbig=a(1,1)row=1col=1for i=1 to 4for j=1 to 5if a(i,j)bigbig=a(i,j)row=icol=jDIME A(3,4),B(3,4),C(3,4)FOR I=1 TO 3FOR J=1 TO
10、 4INPUT TO A(I,J)INPUT TO B(I,J)C(I,J)=A(I,J)+B(I,J)ENDFORENDFORFOR I=1 TO 3FOR J=1 TO 4?STR(C(I,J),6)ENDFOR?ENDFORendifendforendfor?big, row, col3. 求两个矩阵之和,即C(3,4)=A(3,4)+B(3,4)DIME A(3,4),B(3,4),C(3,4)FOR I=1 TO 3FOR J=1 TO 4INPUT TO A(I,J)ENDFORENDFORFOR I=1 TO 3FOR J=1 TO 4INPUT TO B(I,J)ENDFORE
11、NDFORFOR I=1 TO 3FOR J=1 TO 4C(I,J)=A(I,J)+B(I,J)ENDFORENDFORFOR I=1 TO 3FOR 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”ENDIF2.从键盘输入一个整数,判断是偶数还是奇数。INPUT 整数 TO XIF M
12、OD(X,2)=0 ?这是个偶数 ELSE ?这是个奇数 ENDIF 3.输入一个字符,判断是否为英文字母。ACCEPT 请输入一个字符: TO CHIF ASC(CH)=65 AND ASC(CH)=97 AND ASC(CH)=65 AND ASC(CH)=48 AND ASC(CH)=97 AND ASC(CH)0R=mod(n,8)oct= str(R,1)+octn=int(n/8)enddo?octSET TALK ONCANCEL4.从键盘输入一个二进制数,将其转换成等值的十进制数。s=0ACCEPT “Enter a binary number:” to nL=len(n)fo
13、r i=1 to Ls=s+val(substr(n,i,1)*2*(L-i)endfor?“等值的十进制数为”,s从键盘输入一个十进制数,将其转换成等值的二进制数。input Enter a decimal number: to nbin=“”if n=0bin=“0”endifdo while n0R=mod(n,2)bin= str(R,1)+binn=int(n/2)enddo? “等值的二进制数为”,bin真实情况类1.输入乘车的公里数,输出乘车费(计费标准:2.5公里之内是6元,2.5公里以外,每超过1公里增加1元2角)INPUT 输入公里数 TO XIF X2.5 PAY=(X-
14、2.5)*1.2+6 ELSE PAY=6ENDIF?应付费,PAY,元 2.设交纳所得税的规定如下: DO CASE 语句 收入=1500元 免交所得税 1500元 收入 =3000元 所得税为5% 3000元 收入 =6000元所得税为 8%6000元 收入 =10000元所得税为 10%10000元 收入 50000元所得税为 20%请编程,从键盘输入一个数,计算应交纳的所得税。INPUT “income=” to xdo case case x=1500 tax=0 case x=3000 tax=(X-1500)*0.05 case x=6000 tax=(X-3000)*0.08+
15、(3000-1500)*0.05 case x=10000 tax=(X-6000)*0.1+(6000-3000)*0.08+(3000-1500)*0.05 CASE X=95 ?优秀 CASE FS=85 ?很好 CASE FS=70 ?好 CASE FS=60 ?一般 OTHERWISE ?不及格ENDCASE 4. 编写学生成绩统计程序。设有三位同学,考数学、物理、化学三门课,统计每个同学的总分和平均分SET TALK OFFCLEARdime s(3,6)for i=1 to 3for j=1 to 4input input STUDENT-NO AND SCORE: to s(i
16、,j)endforendforfor i=1 to 3s(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 3for j=1 to 6?s(i,j)endfor?endforSET TALK ONCANCEL5.某班有45名参加考试的同学,现在要求从键盘输入全班一门课的成绩,输出该课程的平均分,以及及格人数和半分比。SUM=0N=1FOR I=
17、1 TO 45INPUT全班一门课的成绩 TO X SUM=SUM+X IF X=60 N=N+1 ENDIFENDFOR ?平均分 ,SUM/45?几个人数,N?合格率,N/45*100,%矩阵类1.建立一个五行五列的矩阵,求出外围所有元素之和。DIMENSION A(5,5)S=0S1=0FOR I=1 TO 5FOR J=1 TO 5INPUT TO A(I,J)S=S+A(I,J)ENDFORENDFORFOR I=2 TO 4FOR J=2 TO 4S1=S1+A(I,J)ENDFORENDFOR?S-S1打印图形类1.打印如下图形:* * * *CLEARFOR I=1 TO 5?SPACE(I)FOR J=1 TO 5?”*”ENDFORENDFOR附:打印如下图形:* * * *
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1