




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、VFO程序設(shè)計復(fù)習(xí)1程序設(shè)計概述一、程序的概念概念:具有一定功能的計算機能執(zhí)行的指令的集合。例1:顯示表XSDA可編寫成如下命令序SET DEFA TO F:表USE XSDALISTCLOSE ALL例2:求a=3,b=2,c=5 求a+b-c=?程序test.prg 代碼如下:a=3b=2c=5x=a+b-c?x二、常見的程序設(shè)計方法1、 結(jié)構(gòu)化程序設(shè)計(模塊化) 結(jié)構(gòu)化程序設(shè)計是一個面向過程的概念。把一個實際問題分為兩部分,即數(shù)據(jù)和過程。通過動態(tài)的程序執(zhí)行過程來對靜態(tài)的數(shù)據(jù)進行處理,得出正確的結(jié)果。由VFP命令和程序設(shè)計命令的組合,需編制和調(diào)試; 2、 面向?qū)ο蟮某绦蛟O(shè)計 3、結(jié)構(gòu)化程序
2、設(shè)計它是面向過程程序設(shè)計的另一種描述,面向過程程序設(shè)計有如下特點:整個程序分為若干個模塊,模塊之間相銜接,且相對獨立。第個模塊只有一個入口和一個出口。第個模塊都能單獨執(zhí)行,且在有限時間內(nèi)執(zhí)行完。采用自頂向下、逐步求精的方法。 三、程序三大基本結(jié)構(gòu)1、順序結(jié)構(gòu):執(zhí)行是按命令出現(xiàn)的先后順序執(zhí)行。 2、分支結(jié)構(gòu):按給定的條件成立與否來決定程序起向,分單向選擇分支、雙向選擇分支和多路分支。有以下兩種 IF 語句 DO CASEENDIF ENDCASE3、循環(huán)結(jié)構(gòu):程序的執(zhí)行發(fā)生了自下而上的往復(fù),某一程序段將重復(fù)執(zhí)行。 有以下三種Do While For SCANENDDO ENDFOR ENDSCA
3、N四、算法和流程圖算法:解決某一問題的方法與步驟。見教材例。流程圖:算法的描述,除用自然語言描述外,計算機領(lǐng)域常用流程圖(ANSI圖和NS圖)描述。見教材例。 例如:樂山到成都怎么去?1、 解一元二次方程的算法。Ax2+bx+c=0, 求x2、 求出1-100之間的質(zhì)數(shù)。 X / = 2 到 SQRT(X )2程序的建立和執(zhí)行一、程序的擴展名:PRG 實質(zhì):文本文件(ASCII編碼)執(zhí)行時,會產(chǎn)生編譯文件FXP后讓計算機執(zhí)行。 二、程序文件的建立和編輯1、命令方式:MODI COMM 程序名.PRG (.PRG可?。?、菜單方式;文件 = 新建 = 程序 3、項目管理器中建立的方法:建立項目管
4、理器 = 新建程序 4、其他方法:其它可編輯文本的軟件: 記事本寫字板WORD其它程序編輯器 注意: 希望編寫程序之前事先設(shè)置好默認(rèn)目錄(set defa to )然后我們編寫的程序就會自動存儲在那個目錄中。例如:set defa to d:ks modi comm Test (相當(dāng)于是:modi comm D:kstest.prg) 三、 程序的執(zhí)行1、命令方式命令格式:DO 盤符路徑程序名 2、菜單方式:“程序”菜單-“運行”命令在“運行”窗口中輸入被運行的程序文件名,即可運行程序。 四、VFP程序的分類:數(shù)學(xué)類程序、涉及到表操作的程序如果本程序是涉及到表操作的程序,那么: 1、在程序開始
5、部分可以先加語句CLEAR 和 CLOSE ALL 2、程序最后可以使用命令CLOSE ALL 3、然后使用RETURN或CANCEL或QUIT 例:找出并顯示所有三好生CLEAR CLOSE ALL USE 學(xué)生 LOCATE FOR 三好生DO WHILE NOT EOF() DISPCONTINUE ENDDO CLOSE ALL RETUREN3順序程序設(shè)計與常用語句一、程序設(shè)計中的常用語句1、輸入命令(1)賦值命令命令一:STORE TO 命令二:= (2)交互式輸入命令(注意:輸入數(shù)據(jù)是在程序執(zhí)行的時候 )INPUT 提示信息 TO ACCEPT 提示信息 TO WAIT 提示信息
6、 TO TIMEOUT 說明: 提示信息是C型, 它會在屏幕上原樣輸出 .WAIT命令的功能:暫停程序執(zhí)行,顯示提示信息等待用戶按鍵。 Wait命令中 輸入的只能是一個字符(C型)。 Input 適用于全部類型內(nèi)存變量,輸入時需要加定界符 Accept只適用于C型,并且C型不加定界符注意:Input和accept在編寫程序時語句都一樣,只是執(zhí)行程序(do)時,主屏幕上要求輸入的類型和格式不同。例1:輸入a、b、c的值,對2ax+b=c 求 x的值。ClearInput “現(xiàn)在計算2ax+b=c,請輸入a的值:” to aInput “請輸入b的值:” to bInput “請輸入c的值:” t
7、o cx=(c-b)/(2*a)?x的值為:,x &比較使用? x的值為:+str(x,3)有何區(qū)別 return 例2、查找學(xué)生.dbf中的指定記錄 clearclose alluse 學(xué)生listaccept “請輸入您想查找的姓名: ” to xmLocate for 姓名=XM &或命令 SEEK XMif found() DISP else ?對不起,沒有找到此人endiflistclose allReturn思考:如果accept換成input,輸入的時候該怎么輸入? 例3、刪除學(xué)生.dbf中的指定記錄 clearclose alluse 學(xué)生listinput “請輸入您想刪除的
8、記錄號: ” to xdele reco xwait “你想徹底刪除這條記錄嗎?(y/n)” to ask if ask=Y or ask=y packendiflistclose all注意區(qū)分交換方式和程序方式:有的命令可以在兩種狀態(tài)下執(zhí)行(例如:剛才的輸入命令),但有些命令只能在程序方式下執(zhí)行(例如:循環(huán)語句和分支語句) (3)格式輸入命令格式一:行,列 say 提示信息格式二:行,列 say 提示信息 get 變量 READ 格式三:行,列 say 提示信息 get 變量 default常量 功能:在屏幕指定的坐標(biāo)位置上顯示提示信息,然后通過READ命令激活GET子句的變量值。說明:G
9、ET后的變量可以是內(nèi)存變量或當(dāng)前打開的數(shù)據(jù)文件中的字段變量,若是內(nèi)存變量,應(yīng)在執(zhí)行該命令前對內(nèi)存變量賦值,否則就必須使用default參數(shù)賦初值。輸入的值類型應(yīng)該與初值類型相同。READ命令與GET命令必須配合使用。多個GET命令可以只用一個READ命令配合。如果沒有read則表示只顯示內(nèi)容,不輸入值。例1:編寫程序完成在學(xué)生.DBF中追加記錄CLEARUSE 學(xué)生APPEND BLANK5,20 SAY “學(xué)號” GET 學(xué)號5,40 SAY “姓名” GET 姓名7,20 SAY “性別” GET 性別7,40 SAY “出生年月” GET 出生年月9,20 SAY “入??偡帧?GET
10、入校總分9,40 SAY “三好生” GET 三好生READCLEARLISTCLOSE ALLRETURN例2:編程求長方形的面積。 CLEAR X=0 &X為內(nèi)存變量,賦初值Y=0 1,5 SAY “計算長方形的面積”2,5 SAY “輸入長方形的長:” GET X &第2行5列顯示提示信息并等待輸入3,5 SAY “輸入長方形的寬:” GET Y &第3行5列顯示提示信息并等待輸入 READ &從鍵盤輸入X,Y的值 S=X*Y &計算長方形的面積 ? “長方形的面積:”,S &顯示長方形的面積 CANCEL思考題1:如將上述例1程序改為按照指定學(xué)號來修改記錄應(yīng)該怎樣做?(答案見課件后)3
11、、輸出命令:非格式輸出命令?和?:格式化輸出命令行,列 say 表達式 說明:行和列都可以是表達式,常常可以使用函數(shù)ROW( ) 和 COL( ) ROW( )表示返回當(dāng)前行的行號 COL( )表示返回當(dāng)前列的列號例1:N=1CH=“VF程序設(shè)計”N,26 SAY SPACE(60)N+1,26 SAY CH例2:循環(huán)輸入值cleardime xh(10)store 0 to xh10,10 say 請輸入數(shù)字: get xh(1) i=2do while i=10 row()+1,10 say 請輸入數(shù)字: get xh(i) i=i+1enddoreadlist memo like xh
12、4、其他程序運行命令(1)終止程序執(zhí)行命令 CANCEL 、QUIT 和 RETURNQUIT: 退出程序運行并且退出 Visual FoxproCANCEL : 退出程序運行RETURN: 返回上級程序調(diào)用點,如果是主程序就表示退出程序。主程序可缺省此命令返回(結(jié)束),即默認(rèn)使用了return 注意:上述命令執(zhí)行完后都會自動clear memory。但是如果有數(shù)據(jù)庫和表打開不會自動關(guān)閉,所以使用數(shù)據(jù)庫和表后在程序結(jié)束時我們常常需要加命令: close all(2)清屏命令CLEAR(3)注釋命令( NOTE 、* 和 &)注釋的含義:程序員對程序語句功能的說明,執(zhí)行程序的時候不執(zhí)行注釋中的內(nèi)
13、容,注釋只起到一個對語句說明的目的。一般復(fù)雜程序中應(yīng)有30%以上的注釋。(4)TEXT語句:原樣輸出(參考書143例4.15) (5)系統(tǒng)設(shè)置命令set on/off 或者是 set to 1、設(shè)置會話狀態(tài)SET TALK ON/OFF2、設(shè)置跟蹤狀態(tài)SET ECHO ON/OFF3、設(shè)置打印狀態(tài)SET PRINTER ON/OFF4、設(shè)置定向輸出狀態(tài)SET DEVICE TO SCREEN5、設(shè)置精確比較狀態(tài)SET EXACT TO ON/OFF6、設(shè)置日期格式SET DATE ANSI 7、色繪制系統(tǒng)提供的保護狀態(tài)SET SAFETY ON/OFF8、設(shè)置刪除記錄標(biāo)記狀態(tài)(掌握)SET D
14、ELETED ON/OFF功能:屏蔽或處理有刪除標(biāo)記的記錄說明:在命令格式中選擇ON時,各命令當(dāng)不對有刪除標(biāo)記的記錄進行操作,但索引除外。系統(tǒng)默認(rèn)值為OFF思考題1答案:CLEARUSE 學(xué)生ACCEPT 請輸入需修改記錄的學(xué)號: TO NUMLOCATE FOR 學(xué)號=NUM5,20 SAY 學(xué)號 GET 學(xué)號5,40 SAY 姓名 GET 姓名7,20 SAY 性別 GET 性別7,40 SAY 出生年月 GET 出生年月9,20 SAY 入??偡?GET 入校總分9,40 SAY 三好生 GET 三好生READCLEARLISTCLOSE ALLRETURN4順序結(jié)構(gòu)和分支結(jié)構(gòu)一、順序結(jié)
15、構(gòu)例1:求圓的面積(公式S=R2)CLEARINPUT “請輸入半徑R的值:” TO RS=3.1416*R*R?”圓面積為:” ,SCANCEL二、分支結(jié)構(gòu)(選擇結(jié)構(gòu))1、IF語句(1)單向選擇: 雙向選擇:IF 條件 IF 條件 執(zhí)行語句 執(zhí)行語句ENDIF ELSE執(zhí)行語句 ENDIF(2)單向選擇分支例如:求任意一個數(shù)值的絕對值CLEARSET TALK OFFINPUT “請輸入數(shù)值:” TO NIF N=a AND STR1=A AND STR1=Z ?SPACE(40)+STR1 ELSE ?您輸入的不是英文字母 ENDIFENDIF2、多向選擇DO CASE CASE CASE
16、 OTHERWISE &其它情況ENDCASE說明:OTHERWISE 可以沒有.例1:比較A、B的大小CLEARINPUT “請輸入A的值:” TO AINPUT “請輸入B的值:” TO BDO CASE CASE AB ?”A 大于B” CASE AB ?”A 小于B” CASE A=B?”A等于B”ENDCASE例2:郵局負(fù)責(zé)郵購小物品規(guī)則如下:50公里及以內(nèi)收取額外金額5元,50-100公里收取10元,100-200公里收取20元,200-500公里收取40元,其余一律收取50元。 CLEARINPUT “請輸入您想郵購物品的路程(公里數(shù)): ” TO XDO CASE CASE X
17、50 AND X100 AND X200 AND X=500 Y=40 OTHERWISE Y=50ENDCASE?對不起, 您需要付款: ,Y,元人民幣5循環(huán)程序設(shè)計1、條件循環(huán)格式一:DO WHILE 條件 命令序列 ENDDO格式二: DO WHILE 條件 語句序列 LOOP 語句序列EXIT語句序列 ENDDO 要退出循環(huán),需要條件為假的時候(條件=.F.時)說明:(1) LOOP和EXIT 命令一般放在IF條件中,也可以出現(xiàn)在循環(huán)體內(nèi)的任何位置。若執(zhí)行循環(huán)體時遇到LOOP命令,則直接返回執(zhí)行DO命令,測試條件以決定是否繼續(xù)循環(huán)。若遇到EXIT命令,則不執(zhí)行下面的命令序列,直接跳出循
18、環(huán),執(zhí)行ENDDO后面的命令。(2)條件表達式的值確定了循環(huán)是否繼續(xù),當(dāng)條件表達式的值始終為真(即永真循環(huán)),則應(yīng)使用EXIT命令來控制循環(huán)結(jié)束例1:將字符“歡迎進入樂山師范學(xué)院”從屏幕的頂部移至底部CLEARCH=“歡迎進入樂山師范學(xué)院”N=1DO WHILE N=23N,26 SAY SPACE(60)N+1,26 SAY CH T=INKEY(0.2)&等待0.2秒 N=N+1ENDDORETURN注:INKEY ()功能:等待用戶按鍵或鼠標(biāo)輸入,等待時間由數(shù)值表達式確定(單位為秒)返回由按鍵而產(chǎn)生的一個整數(shù)值.例2:實現(xiàn)顯示出全部的男生 CLEARCLOSE ALLUSE 學(xué)生DO W
19、HILE NOT EOF() IF 性別=男DISP ENDIF SKIPENDDOCLOSE ALL LOOP循環(huán)實例例1:I=0DO WHILE I0 IF Y0 EXIT QUITENDIF ENDIFENDDO ENDDO如果Y0,則退出本循環(huán) 如果Y0,則退出程序,退出VFDO WHILE .T. DO WHILE .T.IF Y0 IF Y0 RETURN CANCELENDIF ENDIFENDDO ENDDO如果Y0,則退出程序返回上層 如果Y0,則退出程序,回到VF中上述語句LOOP、EXIT、QUIT、RETURN、CANCEL等也可以在后面講的其它循環(huán)語句中使用。例1:通
20、過鍵盤輸入三角形的邊長,若邊長正確,立即在屏幕上顯示三角形的面積,若邊長不正確,重新輸入邊長,若輸入的邊長中任意一邊為0則程序立即結(jié)束。 CLEAR ?”現(xiàn)在計算三角型的面積,如果想退出程序請輸入0?!盌O WHILE .T.INPUT “請輸入邊長a:” TO AINPUT “請輸入邊長b:” TO BINPUT “請輸入邊長c:” TO CIF A=0 OR B=0 OR C=0 ?結(jié)束 RETURN ENDIF IF A+B=C OR A+C=B OR B+C=A ?錯誤的三角型,請重新輸入! LOOP ENDIFS=(A+B+C)/2AREA=SQRT(S*(S-A)*(S-B)*(S
21、-C)?該三角型的面積是:,areaENDDO 例2:有下列表:book(書名 C(20),作者 C(8),出版日期 D,內(nèi)容簡介 M)編寫程序:查詢關(guān)于 foxpro 的圖書.USE BOOKLOCATE FOR foxpro $ 書名IF ! FOUND() ?沒有關(guān)于foxpro的圖書 ELSEDO WHILE ! EOF() CLEAR ?書名,作者,出版日期 ?內(nèi)容介紹 WAIT “是否繼續(xù)查找?(Y/N)” TO M IF M$nN EXIT ENDIFCONTINUE ENDDO?”全部顯示完成”ENDIF 2、計數(shù)循環(huán)FOR 循環(huán)變量=初值 TO 終值 STEP 步長語句序列E
22、NDFOR說明: (1)當(dāng)省略步長值時,系統(tǒng)默認(rèn)步長值為1.當(dāng)初值小于終止值時,步長值為正值,當(dāng)初值大于終值時,步長值為負(fù)值.步長值不能為0,否則會造成死循環(huán). (2)可在循環(huán)體內(nèi)嵌入LOOP和EXIT命令,功能和用法與條件循環(huán)中該命令的用法相同.例1:求1100的和SUM=0FOR n=1 TO 100 SUM=SUM+nENDFOR?1100的總和為:,SUM使用DO WHILE 實現(xiàn):SUM=0n=1DO WHILE n INT(SQRT(I) ?I,是質(zhì)數(shù)ENDIF特別: 2是個質(zhì)數(shù).綜上所敘述: 完成程序為:CLEAR?2是質(zhì)數(shù)FOR I=3 TO 10 FOR J=2 TO INT
23、(SQRT(I)IF MOD(I,J)=0 EXITENDIFENDFORIF J INT(SQRT(I) ?I,是質(zhì)數(shù)ENDIFENDFOR3、庫文件掃描循環(huán)SCAN 范圍 FOR/WHILE 條件 語句序列ENDSCAN例1:查詢所有入??偡衷?70以上的人.CLEARCLOSE ALLUSE 學(xué)生SCAN FOR 入校總分570 DISPENDSCANCLOSE ALL例2:用戶可以循環(huán)輸入并查找入??偡?直到輸入的是負(fù)數(shù)就退出.CLEARCLOSE ALLUSE 學(xué)生INPUT “請輸入你要查找的入校總分,輸入負(fù)數(shù)則退出: ” TO XDO WHILE X=0SCAN FOR 入??偡?/p>
24、=X DISP ENDSCANINPUT “請輸入你要查找的入??偡? ” TO XENDDO例3:編寫程序,對于學(xué)生.dbf能夠在程序末尾循環(huán)插入新記錄 (掌握)CLEARCLOSE ALLUSE 學(xué)生DO WHILE .T. APPE BLANK 5,20 SAY 學(xué)號 GET 學(xué)號 5,40 SAY 姓名 GET 姓名 7,20 SAY 性別 GET 性別 7,30 SAY 出生年月 GET 出生年月 9,20 SAY 入??偡?GET 入校總分 READ WAIT 你想繼續(xù)插入新記錄嗎?(Y/N) : TO X IF X=N OR X=n EXITENDIF CLEARENDDOCLE
25、ARLISTCLOSE ALL 例4:編寫程序,該程序能夠順序修改表學(xué)生.DBF中的所有數(shù)據(jù)。(掌握) (要求:必須使用 行,列 say . get . 進行數(shù)據(jù)修改) CLEARCLOSE ALLUSE 學(xué)生DO WHILE .T. if eof() exit endif5,20 SAY 學(xué)號 GET 學(xué)號 5,40 SAY 姓名 GET 姓名 7,20 SAY 性別 GET 性別 7,30 SAY 出生年月 GET 出生年月 9,20 SAY 入??偡?GET 入校總分 READ WAIT 你想繼續(xù)修改記錄嗎?(Y/N) : TO X IF X=N OR X=n EXIT ENDIF CL
26、EAR SKIPENDDOCLEARLISTCLOSE ALL4、多重循環(huán)例1:輸入n的值,求1+1/2!+1/3!+1/4!+.+1/n! ( 階乘 n!=1*2*3*4.*(n-1)*n )CLEARSUM=0MUL=1INPUT 請輸入n的值: TO NFOR i=1 TO N FOR j=1 TO i MUL=MUL*J ENDFOR SUM= SUM+1/MUL ENDFOR?求得的總和為: ,SUM例2:打印九九表方法一:CLEAR FOR A=1 T0 9 FOR B=1 TO A T=A*B?STR(B,1)+“*”+STR(A,1)+“=”+STR(T,2)+“ ” ENDF
27、OR? ” “ENDFORRETURN方法二:CLEAR 1,1 say *for a=1 to 9a+1,1say str(a,1)nextfor b=1 to 9 1,b*3 say str(b,1) for c=1 to b p=c*b b+1,c*3 say str(p,2) next nextcancel例3:圖形打印CLEAR for a=1 to 5內(nèi)循環(huán)外循環(huán) for c=1 to a ?“* next ?nextCancel說明:打印圖形時,一般外循環(huán)控制打印行數(shù),內(nèi)循環(huán)控制每一行打印圖形個數(shù)。6數(shù)組的應(yīng)用一、 數(shù)組的定義DIMENTION 數(shù)組名(數(shù)值表達式1,數(shù)組表達式2
28、.)定義后單元默認(rèn)值為.F.二、一維數(shù)組1、定義一個一維數(shù)組:dime a(10) -定義一個10數(shù)組,且所有單元默認(rèn)值為.F.2、賦值:例如: a=a(1)=20 a(3)=2002/09/23a(7)=.T.循環(huán)賦值:dime a(10)i=1do while ia(i+1) t=a(i+1) a(i+1)=a(j) a(j)=t endif endforendforlist memo like a例2:將1、2、3、10順序輸入一維數(shù)組,實現(xiàn)順序輸出和逆序輸出。DIME A(10)FOR I=1 TO 10 A(I)=IENDFORFOR I=1 TO 10 ?A(I) ENDFORFO
29、R J=10 TO 1 STEP 1 ?A(J)ENDFOR例3:排序問題 (要求:不一定能編寫,但是重點地方能填空,基本方法要能理解)輸入5 個數(shù),將它們按照從大到小的順序排列算法: (軟件技術(shù)支持 第263頁)穩(wěn)定的算法:插入法排序(將一個數(shù)據(jù)插入到已經(jīng)排列好的序列中)冒泡排序(比較每次產(chǎn)生最大數(shù))歸并排序(兩兩合并 )不穩(wěn)定的算法:(相同數(shù)據(jù)位置可能交換)選擇排序(通過交換位置,最小的放在第一,次小的第二)實現(xiàn)算法:冒泡排序(1) n個數(shù)要比較n-1趟(2) (3) 每趟要比較的次數(shù)為 : n-趟數(shù)(4)(3)每次比較:如果當(dāng)前數(shù) a(j)大于后一個數(shù) a(j+1) 那么就交換,否則不交
30、換clear dime a(5)?輸入5個數(shù): for i=1 to 5input 請輸入: to a(i)endforfor i=1 to 4 & 外循環(huán)是行(趟數(shù)), 內(nèi)循環(huán)是列(比較次數(shù))for j=1 to 5-Iif a(j)a(j+1)t=a(j+1)a(j+1)=a(j)a(j)=tendifendforendforFOR I=1 TO 5 ?A(I)ENDFOR對N個數(shù)排序(從小到大)clearinput 請問你想對多少個數(shù)進行排序? to ndime a(n)?請輸入,n,個數(shù): for i=1 to n input 請輸入: to a(i)endforfor i=1 to
31、n-1 for j=1 to n-i if a(j)a(j+1) t=a(j+1) a(j+1)=a(j) a(j)=t endif endforendfor算法二:每次比較將當(dāng)前數(shù)和最后一個數(shù)據(jù)比clearinput “請問你想對多少個數(shù)進行排序? ” to ndime a(n) ?請輸入,n,個數(shù): for i=1 to n input 請輸入: to a(i)endforfor i=1 to n-1 for j=1 to n-i if a(j)a(n-i+1) t= a(n-i+1) a(n-i+1)=a(j) a(j)=t endif endforendforlist memo lik
32、e a算法三:clearinput “請問你想對多少個數(shù)進行排序? ” to ndime a(n)?請輸入,n,個數(shù): for i=1 to n input 請輸入: to a(i)endforfor i=1 to n-1 for j=1 to n-i if a(j)a(n-i+1) t= a(n-i+1) a(n-i+1)=a(j) a(j)=t endif endforendforlist memo like a7子程序、過程和自定義函數(shù)一、子程序1.子程序的概念2.子程序的建立和調(diào)用3.子程序的嵌套a1.prg a2.prg a3.prg?* ? ?$ do a2 do a3 retur
33、n?# ?999 return思考:以上程序運行后結(jié)果是什么? * $ 999# 說明:1、 如果將a2.prg或者a3.prg的return語句改成cancel,那么程序當(dāng)執(zhí)行到cancel的時候就會結(jié)束,不返回 2、如果將a3.prg的return語句改成return to master想想結(jié)果會怎么樣呢? 請先看看書 P169頁 二、變量的三種類型 1、全局變量(定義:用public命令或在命令窗口中賦值的變量) 有效范圍:主程序和所有子程序 2、私有變量(定義:private)或變量屏蔽 有效范圍:當(dāng)前程序,在子程序中修改與主程序同名的變量,只要返回主程序,原來同名變量中的值不變 3、
34、局部變量(可用LOCAL來定義,定義好后默認(rèn)值為.F.,或是在當(dāng)前程序中賦值的變量) 有效范圍:當(dāng)前程序及當(dāng)前程序以下的所有子程序 例:主程序MAIN1.PRG CLEAR public i,j store 1 to i,j,k do 程序2 ?主程序的輸出結(jié)果: ?I=+STR(I,2)+ J=+STR(J,2)+ K=+STR(K,2) Cancel 子程序:CLEAR PRIVATE J,K I=I*2 J=I+1 K=J+1 ?子程序的輸出結(jié)果: ?I=+STR(I,2)+ J=+STR(J,2)+ K=+STR(K,2) RETURN 例2: main.prg sc.prg xb.p
35、rg private m Clear y=x+10 Input “請輸入x的值: ” to x m=143 m=y*10 Private y do xb z=int(m/100) Public z z=z+m return Do sc return y=sqrt(x)+sqrt(z) ?y return 三、參數(shù)傳遞(教材172功能和說明)主程序中:命令: do with 實參 子程序中:parameters 形參 數(shù)據(jù)通過return語句傳回 注意:變量表和參數(shù)表是個數(shù)一致的,也相互對應(yīng),但是名字可能不一樣。 例: MAIN.PRG P1.PRG X1=1 PARA W1,W2 X2=2 PRIVATE W1 DO P1 WITH X1,X2 W1=W1*3 ?X1=+STR(X1,1) W2=W2*4 ? X2=+STR(X2,1) RETURN X1=1 X2=2 DO P1 WITH X1,X1+X2 ?X1=+STR(X1,1) ? X2=+STR(X2,1) RETURN 說明(1) 在DO WITH 中的參數(shù)稱為實參,可以是表達式,若為內(nèi)存變量時須有初值。 (2)與主程序向子程序傳遞參數(shù)相對應(yīng),被調(diào)用的子程序,必須用語句接收參數(shù)。 (3)PARAME
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度健康體檢勞務(wù)合同解除標(biāo)準(zhǔn)指南
- 2025年度無人機技術(shù)研發(fā)與應(yīng)用合作資源協(xié)議書
- 二零二五年度藝術(shù)衍生品市場正規(guī)藝術(shù)家合作協(xié)議
- 二零二五年度塔吊安裝與吊裝作業(yè)安全保障協(xié)議
- 二零二五年度特色商業(yè)街車位包銷及夜間經(jīng)濟合同
- 2025年度智慧城市安防系統(tǒng)服務(wù)合同
- 二零二五年度會議室租賃及茶歇服務(wù)協(xié)議
- 水暖消防工程承包合同
- 小學(xué)生感恩教育故事感悟
- 超市日常運營管理服務(wù)合同
- 新統(tǒng)編版五年級下冊道德與法治全冊課時練一課一練(同步練習(xí))(含答案)
- 法律方法階梯PPT課件
- 計算機2級二級浙江旅游概述
- 《色彩基礎(chǔ)知識》PPT課件(完整版)
- 故事我把媽媽弄丟了ppt課件
- NACE產(chǎn)品金屬材料要求
- 布朗德戰(zhàn)略導(dǎo)向的薪酬管理體系
- 食品經(jīng)營餐飲操作流程(共1頁)
- 中儲糧購銷電子交易平臺成交合同
- SL/T212-2020 水工預(yù)應(yīng)力錨固技術(shù)規(guī)范_(高清-有效)
- 河北省省直行政事業(yè)單位資產(chǎn)(房屋)租賃合同書(共7頁)
評論
0/150
提交評論