第 6 章 面向过程程序设计
DESCRIPTION
第 6 章 面向过程程序设计. 6.1 应用程序基本操作. 6.2 应用程序中的常用命令. 6.3 顺序结构程序设计. 6.4 分支结构程序设计. 6.5 循环结构程序设计. 6.6 过程结构程序设计. 6.7 数组变量的应用. 6.8 结构化程序设计举例. 退出. 6.1 应用程序基本操作. 6.1.1 应用程序的建立. 6.1.2 应用程序的运行. 6.1.3 应用程序的修改. 退出. 1 )应用程序:为完成某项任务所需执行的命令序列,这些命令按照一定的结构有机地组合在一起,并以文件的形式存储在磁盘上,又称为命令文件。 - PowerPoint PPT PresentationTRANSCRIPT
-
6 6.1 6.2 6.4 6.3 6.5 6.6 6.7 6.8
-
6.1 6.1.3 6.1.2 6.1.1
-
12 SET
-
6.1.1 12MODIFY COMMAND .PRG L1.PRG\VFP\ .DBFMODI COMM VFP\L1.PRG*L1.PRG SET TALK OFF USE VFP\ZGDA.DBF ACCEPT TO XM LOCATE FOR =XM ?,,, USE SET TALK OFF RETURN
-
6.1.2 1. 2. DO WITH 1CANCELQUITRETURN2ESCESC6.1.3 12 MODIFY COMMAND
-
6.2 6.2.2 6.2.1
-
6.2.1 1. ACCEPT TO 123ACCEPT TO BMUSE &BM
-
2. WAIT TO 1ACCEPTPRESS ANY KEY TO CONTINUE2TO VFP*L2.PRGSET TALK OFFCLEAR
-
WAIT TO DHXH=DH+DHUSE &XHACCEPT TO XMLOCATE FOR =XM?+?+?+STR(,2)WAIT?+?+?+WAITSET TALK ONRETURN2.
-
3. INPUT [] TO 1ACCEPT2M345INPUT TO XMINPUT TO BJINPUT TO XB
-
6.2.2 INOTE II*III&&1 2(;) 1NOTE USE .DBF 2 SET CONSOLE OFF && 1.
-
SET TALK ON/offSET CONSOLE ON/off SET PRINTER on/OFFSET SAFETY ON/offVFPSET HEADING ON/off LISTDISPLAYSET STATUS ON/offSET DEFAULT TOSET DEVICE TO SCREENVFP/PRINTER2.
-
ICLEARIICLEAR ALLIIICLEAR TYPEAHEAD3. 4. ICLOSE ALLIICLOSE DATABASEINDEXFORMAT PROCEDURE ALTERNATE
-
5. IQUITVFPIICANCELIIIRETURN [TO MASTER]6. TEXT ENDTEXT7. @ SAY
-
6.3 123
-
6.3 451 *L3.PRG SET TALK OFF CLEAR USE .DBF LOCATE FOR = DISPLAY USE SET TALK ON2 SET TALK OFF CLEAR INPUT TO R L=2*3.1416*R @10,10 SAY +STR(L,6,3) SET TALK ON
-
6.4 6.4.2 6.4.1
-
6.4.1 1 IF ENDIFIFENDIF1. SET TALK OFF CLEAR USE LOCATE FOR =
-
IF FOUND() DISPENDIF USE SET TALK ON2. IF ELSE ENDIF
-
1AX2+BX+C=0ABC SET TALK OFF CLEAR INPUT A= TO A INPUT B= TO B INPUT C= TO C D=B*B-4*A*C IF D>=0 X1=(-B+SQRT(D))/(2*A) X2=(-B-SQRT(D))/(2*A) ?+STR(X1,2)+SPACE(4)+STR(X2,2) ELSE ? ENDIF SET TALK ON RETURN
-
2.DBF9902020360*L6.PRGSET TALK OFFUSE .DBFCLEARLOCATE FOR =99020203 IF >=60 ?+ ?+ ?+STR(,6,2) ELSE ?+++ENDIF USESET TALK ON
-
3. IF IF ELSE IF ELSE IF ELSE ENDIF3 ENDIF2 ENDIF1 1IFELSE()ENDIF 2 3
-
XSET TALK OFFCLEARINPUT X= TO XIF X>0 IF X>10 Y=X*X+1 ELSE Y=3*X*X-2*X+1 ENDIFELSE Y=X*X+4*X-1ENDIF?+STR(Y,10,2)SET TALK ONRETURN
-
6.4.2 DO CASE CASE CASE [OTHERWISE ENDCASE[]
-
DO CASESET TALK OFFCLEARINPUT X= TO XDO CASE CASE X0.AND.X10 Y=X*X+1ENDCASE?+STR(Y,10,2)SET TALK ONRETURN
-
6.5 6.5.2 6.5.1 6.5.4 6.5.3
-
6.5.1 DO WHILE [LOOP] [EXIT] ENDDO
- X=1 S=0 DO WHILE X>=1 S=S+X X=X+1 ENDDO1S=1+2+3++100 SET TALK OFF CLEAR STORE 0 TO N,S DO WHILE N
-
2 SET TALK OFF CLEAR USE INDEX ON TO _ SEEK DO WHILE = DISP SKIP ENDDO USE SET TALK ON RETURN
-
30250250 SET TALK OFF CLEAR STORE 0 TO X,Y DO WHILE .T. X=X+1 DO CASE CASE INT(X/2)=X/2 LOOP CASE X+Y>250 EXIT OTHERWISE Y=X+Y ?Y=,Y ENDCASE SET TALK ON ENDDO RETURN
-
4 SET TALK OFF CLEAR ACCEPT TO XM USE DO WHILE .NOT.EOF() IF =XM DISP EXIT ELSE SKIP ENDIF ENDDO USE SET TALK ON
-
6.5.2 FOR = TO [STEP ] [LOOP] [EXIT] ENDFOR/NEXT1S=1+2+3++100SET TALK OFFCLEARS=0FOR N=1 TO 100 ?S=,S S=S+N SET TALK ONENDFOR RETURN
-
221e *L10.PRGSET TALK OFFSTORE 1 TO E,TFOR X=1 TO 20 T=T*X E=E+1/TENDFOR?21+STR(E,7,5)SET TALK ONRETURN
-
6.5.3 SCAN [] [FOR ] [WHILE ] [LOOP] [EXIT] ENDSCAN
-
1SET TALK OFFCLEARN=0USE SCAN FOR =WHILE = N=N+1ENDSCAN?,NUSESET TALK ONRETURN
-
2.DBF*L1.PRGSET TALK OFFSTORE 0 TO A,BCLEARUSE .DBFSCAN DO CASE CASE = A=A+1 CASE = B=B+1 ENDCASEENDSCAN?+STR(A,3)?+STR(B,3)USESET TALK ON
-
6.5.4 DO WHILE 1 11 DO WHILE 2 21 DO WHILE 3 31 ENDDO3 22 ENDDO2 12 ENDDO1
-
1SET TALK OFFCLEARFOR Y=1 TO 9FOR X=1 TO 9 Z= Y * X ??STR(Y,1)+*+STR(X,1)+=+STR(Z,2)+ ENDFOR ?ENDFOR SET TALK ONRETURN
- 2 ******** ******** ******** ******** ******** ******** ******** SET TALK OFF CLEAR A=1 DO WHILE A
- 3 * *** ***** ******* ********* *********** ************* SET TALK OFF CLEAR A=1 DO WHILE A
-
6.6 6.6.2 6.6.1 6.6.4 6.6.3
-
6.6.1 1 MODIFY COMMAND 2 DO 3 RETURN [TO MASETR]4
-
1 *AA.PRGBB *BBSET TALK OFF M=3S=1 N=5P=1 S=M+NDO BB P=S*N?S=,S RETURN?P=,PSET TALK ONRETURN
-
2W=X!+Y!+Z!XYZ *MAIN_1.PRG *SUB_1.PRGSET TALK OFF T=1 INPUT X= TO X FOR I=1 TO NINPUT Y= TO Y T=T*INPUT Z= TO Z ENDFORN=X RETURNDO SUB_1A=TN=YDO SUB_1B=TN=ZDOU SUB_1W=T+A+B?W=+STR(W,7) SET TALK ON
-
3SCORE(C,5),(C,8),(N,3),(N,3),(N,3),(N,3),(N,6,2)*CLASS.PRG SET TALK OFF *JSZF.PRGUSE SCORE GO TOPKCM= DO WHILE .NOT.EOF()T=0 T=T+&KCMDO JSZF SKIPT1=T ENDDOKCM= RETURNT=0DO JSZFT2=T KCM= T=0 ?,T1,T2,T3DO JSZF USET3=T SET TALK ON
-
6.6.2 12 MODIFY COMMAND 3 PROCEDURE RETURN PROCEDURE RETURN PROCEDURE RETURN
-
4 SET PROCEDURE TO 5 ISET PROCEDURE TO IICLOSE PROCEDURE1 PROC.PRGPROCEDURE PROC1?I am from proc1.?* 10 11 12 13 14 15? 100 121 144 169 196 225RETURNPROCEDURE PROC2?I am from proc2.?** 10 11 12 13 14 15? 1000 1331 1728 2179 2774 3375DO PROC3RETURN
-
PROCEDURE PROC3?------------------------------------------------?I am from proc3.RETURNMAIN.PRGCLEARSET PROCEDURE TO PROCDO PROC1?========================DO PROC2?========================CLOSE PROCEDURERETURN23~100 M3MMM
-
*MAIN_2.PRG *SUB_2.PRGSET TALK OFF PROCEDURE JCSET PROCEDURE TO SUB_2FOR M=3 TO 100 STEP 2 RETURN I=3 PROCEDURE QS N=INT(SQRT(M)) FOR I=3 TO N STEP 2 DO QS IF INT(M/I)=M/IENDFOR RETURNSET PROCEDURE ENDIF ENDFOR??M RETURN
-
6.6.3 112PUBLIC : *MAIN_3.PRG *SUB_3.PRG SET TALK OFF PUBLIC B,C CLEAR B=2 PUBLIC A D=3 A=1 ?ABCD=,A,B,C,D DO SUB_3 RETURN ?ABCD=,A,B,C,DSET TALK ON
-
21PUBLIC2PRIVATE [ALL [LIKE/EXCEPT ]] [] *MAIN_4.PRG SET TALK OFF A=1 B=2 ?A=,A,B=,B DO SUB_4 ?A=,A,B=,B, C=,C,D=,D SET TALK ON
-
*SUB_4.PRG PRIVATE B PUBLIC C A=10 B=11 C=12 D=13 ?A=,A,B=,B,C=,C,D=,D RETURN21PUBLIC2PRIVATE [ALL [LIKE/EXCEPT ]] []
-
*MAIN_4.PRG SET TALK OFF A=1 B=2 ?A=,A,B=,B DO SUB_4 ?A=,A,B=,B,C=,C,D=,D SET TALK ON *SUB_4.PRG PRIVATE B PUBLIC C A=10 B=11 C=12 D=13 ?A=,A,B=,B,C=,C,D=,D RETURN
-
6.6.4 1 DO WITH 2 PARAMETERS
-
1 *MAIN_5.PRG SET TALK OFF INPUT TO A INPUT TO B INPUT TO H STORE 0 TO S DO SUB_5.PRG WITH A+B,H,S ?,S SET TALK ON RETURN *SUB_5.PRG PARAMETERS P,Q,T T=P*Q/2 RETURN
-
6.7 6.7.2 6.7.1 6.7.4 6.7.3 6.7.5
-
6.7.1 12DIMENSION/DECLARE ([,])[,([,])]DIMENSION AB(3),C[2,3]6.7.2 STORE=1XYDIMENSION X(3,4),Y(3)STORE 5 TO XY(1)=325Y(2)=ABCY(3)=.T.
-
2SET TALK OFFCLEARDIMENSION A[10]FOR I=1 TO 10 A[I]=I ?A[I]NEXTSET TALK ONRETURN6.7.3 1DECLAREDIMENSION211
-
2331CLEARSET TALK OFFDIMENSION B[2,3] DIMENSION B[8]FOR I=1 TO 2 FOR I=1 TO 8 FOR J=1 TO 3 ?B(+STR(I,1)+)=,B[I] B[I,J]=(I-1)*3+J NEXT NEXT SET TALK ONNEXT RETURN
-
6.7.4 1SCATTER [FIELDS /FIELDS LIKE /FIELDS EXCEPT ][MEMO] TO BLANK/MEMVAR/MEMVAR BLANKUSE GO 2 SCATTER TO A MEMO SCATTER FIELDS TO B GO 5 SCATTER MEMO MEMVAR DISP MEMORY
-
2GATHER FROM /MEMVAR [FIELDS /FIELDS LIKE /FIELDS EXCEPT ][MEMO]USE APPEND BLANK GATHER FROM B FIELDS DISP APPEND BLANK GATHER MEMVAR DISP1CLEAR ALL2CLEAR MEMEORY3RELEASE ALL [LIKE /EXCEPT ]6.7.5