当前位置:首页 > VFP编程题类型总结
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 A(I,J)=I+J ENDFOR ENDFOR SUM=0 FOR I=1 TO 6 SUM=A(I,I)+A(I,7-I) ENDFOR ? “两条对角线上所有元素之和为”,SUM
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
DIME A(3,4),B(3,4),C(3,4) ENDFOR
FOR I=1 TO 3 ENDFOR
FOR J=1 TO 4 ?BIG, ROW, COL
INPUT TO A(I,J)
INPUT TO B(I,J) 3. 求两个矩阵之和,即C(3,4)=A(3,4)+B(3,4)
C(I,J)=A(I,J)+B(I,J) DIME A(3,4),B(3,4),C(3,4)
ENDFOR FOR I=1 TO 3
ENDFOR FOR J=1 TO 4
FOR I=1 TO 3 INPUT TO A(I,J)
FOR J=1 TO 4 ??STR(C(I,J),6) ENDFOR ? ENDFOR 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 \整数\IF MOD(X,2)=0 ?\这是个偶数\ ELSE
?\这是个奇数\ ENDIF
3.输入一个字符,判断是否为英文字母。 ACCEPT \请输入一个字符:\
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是完数。编程判断从键盘输入一个正整数是否为完数。
输出1000以内的所有完数: FOR I= 2 TO 1000 S=0 FOR J=1 TO I-1 IF MOD(I,J)=0 S=S+J ENDIF ENDFOR IF S=I ?I,\是完数\ENDIF ENDFOR 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
共分享92篇相关文档