第 6 章 面向过程程序设计

61
6 6 第 第第第第第第第第 第 第第第第第第第第 6.1 6.1 第第第第第第第第 第第第第第第第第 6.2 6.2 第第第第第第第第第第 第第第第第第第第第第 6.4 6.4 第第第第第第第第 第第第第第第第第 6.3 6.3 第第第第第第第第 第第第第第第第第 6.5 6.5 第第第第第第第第 第第第第第第第第 第第 第第 6.6 6.6 第第第第第第第第 第第第第第第第第 6.7 6.7 第第第第第第第 第第第第第第第 6.8 6.8 第第第第第第第第第 第第第第第第第第第

Upload: nara

Post on 17-Mar-2016

150 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

  • 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