VisualFoxPro90程序設(shè)計(jì)基礎(chǔ)第5章程序設(shè)計(jì)基礎(chǔ)ppt課件_第1頁
VisualFoxPro90程序設(shè)計(jì)基礎(chǔ)第5章程序設(shè)計(jì)基礎(chǔ)ppt課件_第2頁
VisualFoxPro90程序設(shè)計(jì)基礎(chǔ)第5章程序設(shè)計(jì)基礎(chǔ)ppt課件_第3頁
VisualFoxPro90程序設(shè)計(jì)基礎(chǔ)第5章程序設(shè)計(jì)基礎(chǔ)ppt課件_第4頁
VisualFoxPro90程序設(shè)計(jì)基礎(chǔ)第5章程序設(shè)計(jì)基礎(chǔ)ppt課件_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、數(shù)據(jù)庫技術(shù)及運(yùn)用南京信息工程大學(xué) 計(jì)算機(jī)與軟件學(xué)院主講:劉 生第五章 VFP程序設(shè)計(jì)根底數(shù)據(jù)庫技術(shù)及運(yùn)用南京信息工程大學(xué) 計(jì)算機(jī)與軟件學(xué)院 主講:劉生教學(xué)目的和要求 了解程序設(shè)計(jì)的一些根本概念;熟習(xí)程序設(shè)計(jì)的根本方法和步驟;掌握Visual Foxpro中三種根本控制構(gòu)造的實(shí)現(xiàn)方法和運(yùn)用方法;掌握自定義函數(shù)和過程的運(yùn)用。.教學(xué)重點(diǎn) 構(gòu)造化程序設(shè)計(jì)中的三種控制構(gòu)造;自定義函數(shù)和過程的運(yùn)用;參數(shù)傳送的不同類型。.章節(jié)內(nèi)容5.1 Visual Foxpro程序設(shè)計(jì)根底 5.1.1 根本概念 5.1.2 程序設(shè)計(jì)方法與步驟 5.1.3 順序程序設(shè)計(jì) 5.1.4 選擇構(gòu)造程序設(shè)計(jì) 5.1.5 循環(huán)構(gòu)造程

2、序設(shè)計(jì).章節(jié)內(nèi)容5.1.6 子程序、過程與自定義函數(shù) 5.1.7 過程文件 5.1.8 自定義函數(shù)5.2 程序設(shè)計(jì)綜合運(yùn)用舉例.5.1.1 根本概念程序是使計(jì)算機(jī)完成某種功能的指令序列。程序可分為源言語程序和可執(zhí)行程序。 程序設(shè)計(jì)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過程。程序設(shè)計(jì)方法主要有構(gòu)造化程序設(shè)計(jì)與面向?qū)ο笤O(shè)計(jì)之分。 .5.1.1 根本概念執(zhí)行程序就是依次執(zhí)行其中的每一條命令,直至全部命令執(zhí)行終了。程序通常以文件方式存放在磁盤上,在Visual FoxPro中,程序文件也稱為命令文件,其擴(kuò)展名為 .prg。程序文件一旦建立,可以多次反復(fù)執(zhí)行。 .5.1.2 程序設(shè)計(jì)方法與步驟程序設(shè)計(jì)普通包含

3、以下幾個步驟:1分析問題,確定需求,對可以建立數(shù)學(xué)模型的問題,根據(jù)需求建立數(shù)學(xué)模型。.5.1.2 程序設(shè)計(jì)方法與步驟程序設(shè)計(jì)普通包含以下幾個步驟:2確定數(shù)據(jù)構(gòu)造和算法。 算法由三種根本控制構(gòu)造描畫,主要描畫程序的控制流程和任務(wù)過程,數(shù)據(jù)構(gòu)造是對程序中數(shù)據(jù)的描畫。在高級程序設(shè)計(jì)言語中,數(shù)據(jù)構(gòu)造經(jīng)過數(shù)據(jù)類型表達(dá),而算法可用任何方式的工具來描畫,通常有流程圖、N-S圖和偽代碼等。其中流程圖是最早提出的用圖形表示算法的工具,它具有直觀性強(qiáng)、便于閱讀等特點(diǎn),是采用較多的算法描畫工具。 .5.1.2 程序設(shè)計(jì)方法與步驟流程圖的根本圖形元素起止框處置框判別框輸入輸出框銜接點(diǎn)流程線.5.1.2 程序設(shè)計(jì)方法與

4、步驟程序設(shè)計(jì)普通包含以下幾個步驟:2確定數(shù)據(jù)構(gòu)造和算法。計(jì)算機(jī)可以實(shí)現(xiàn)的根本功能操作包括以下四種類型:邏輯運(yùn)算:邏輯與、邏輯或、邏輯非; 算術(shù)運(yùn)算:加、減、乘、除;數(shù)據(jù)比較:大于、小于、等于、不等于、大于等于、小于等于;數(shù)據(jù)傳送:輸入、輸出、賦值。 .5.1.2 程序設(shè)計(jì)方法與步驟3編制程序。 4調(diào)試程序。.5.1.3 順序程序設(shè)計(jì)順序構(gòu)造是程序設(shè)計(jì)中最簡單、最常用的根本構(gòu)造,同時也是程序設(shè)計(jì)中最根本的控制構(gòu)造。該構(gòu)造中,指令按照出現(xiàn)的先后順序依次執(zhí)行。它是任何程序的主體,即使在選擇構(gòu)造或循環(huán)構(gòu)造內(nèi)部中,也大多為順序構(gòu)造程序段。.1.數(shù)據(jù)輸出命令格式:?/?功能:計(jì)算并輸出表達(dá)式的值。闡明:

5、命令中的表達(dá)式可以包含字段變量和內(nèi)存變量,表達(dá)式之間以逗號分隔。 兩個命令的區(qū)別在于:? 命令先換行,再開場輸出;? 命令不換行即開場輸出。 ? 后面假設(shè)沒有表達(dá)式表,那么只進(jìn)展換行操作。5.1.3 順序程序設(shè)計(jì).2. 語句的續(xù)行當(dāng)一條語句或一個命令很長時,在代碼編輯窗口或命令窗口閱讀時將不便查看,運(yùn)用滾動條又比較費(fèi)事。這時,就可以運(yùn)用續(xù)行功能,用分號“;將較長的語句分為兩行或多行。作為續(xù)行符的分號只能出如今行尾。 5.1.3 順序程序設(shè)計(jì).3注釋命令為添加程序的可讀性,經(jīng)常要在程序中參與一些注釋,對程序中運(yùn)用的變量、算法進(jìn)展闡明。注釋僅起闡明作用,不參與程序運(yùn)轉(zhuǎn)。Visual FoxPro提

6、供了2種注釋的方法其一:在程序行開頭加“* 表示本行為注釋行其二:命令行中字符“&后面的部分為注釋 5.1.3 順序程序設(shè)計(jì).試編寫一個程序完成兩個變量內(nèi)容的交換。分析:要完成兩個變量內(nèi)容的交換,需引入第三個變量作為暫時變量,需求三個步驟來完成交換,設(shè)變量a、b分別保管不同的值,引入第三個變量c,那么需下述步驟:將變量a賦值給c;將變量b賦值給a;將變量c賦值給b;5.1.3 順序程序設(shè)計(jì).代碼如下:ab2?a,bcaabbc?a,b5.1.3 順序程序設(shè)計(jì).順序構(gòu)造 按程序中的語句順序依次執(zhí)行。 例 STORE 4 TO r S=3.14*r*r ?S5.1.3 順序程序設(shè)計(jì).5.1.4 選

7、擇構(gòu)造程序設(shè)計(jì)選擇構(gòu)造根據(jù)給定的條件能否為真(即條件成立)決議可以執(zhí)行的分支語句。在VFP中,實(shí)現(xiàn)分支構(gòu)造的語句分支語句IFELSE ENDIF多分支語句DOCASEENDCASE.5.1.4 選擇構(gòu)造程序設(shè)計(jì)1IFELSE ENDIF構(gòu)造.5.1.4 選擇構(gòu)造程序設(shè)計(jì)IF構(gòu)造例如之一 STORE 70 TO CJ IF CJ=60 ?及格 ENDIFcj=70CJ60?輸出“及格.T.F.5.1.4 選擇構(gòu)造程序設(shè)計(jì)IF構(gòu)造例如之二 STORE 70 TO CJ IF CJ=60 ?及格 ELSE ?不及格 ENDIFcj=70CJ60?輸出“及格輸出“不及格.T.F.閏年問題一個年份滿足以

8、下條件之一即為閏年:能被4整除且不能被100整除能被400整除nYear=2005IF MOD(nYear,4)=0 AND MOD(nYear,100)0 OR MOD(nYear,400)=0?是閏年“ELSE?不是閏年ENDIF.判別某一年能否是閏年。Y=2005IF y/4=INT(y/4) AND y/100INT(y/100) OR y/400=INT(y/400)? STR(y)+是閏年ELSE? STR(y)+不是閏年ENDIF5.1.4 選擇構(gòu)造程序設(shè)計(jì).3多分支選擇構(gòu)造5.1.4 選擇構(gòu)造程序設(shè)計(jì).闡明: Do Case和第一個Case子句之間不能插入任何命令。 Do Ca

9、se 和 Endcase必需配對運(yùn)用,且Do Case、Case、Otherwise 和 Endcase各子句必需各占一行。 中可含有任何Visual FoxPro命令,包括可嵌套Do Case命令。5.1.4 選擇構(gòu)造程序設(shè)計(jì).多重判別的問題?選擇的嵌套例:cj在80分以上為優(yōu)秀,60-80為及格,60分以下不及格?.DO CASE構(gòu)造例如 cj=70 DO CASECASE cj=80 ?優(yōu)良CASE cj=60 ?及格OTHERWISE ?不及格ENDCASE.知分支函數(shù),編寫程序。X=5,b=10,c=1DO CASE CASE x0 fx=(a*x+b)/( a*x-b) CASE

10、x=0 fx=1 OTHERWISE fx=(a*x-b)/( a*x+b)ENDCASE? 函數(shù)F(X)的值為:+STR(fx,6,1)5.1.4 選擇構(gòu)造程序設(shè)計(jì).5.1.5循環(huán)構(gòu)造程序設(shè)計(jì)循環(huán)構(gòu)造也稱為反復(fù)構(gòu)造,是指程序執(zhí)行過程中,其中的某段代碼被反復(fù)執(zhí)行假設(shè)干次。被反復(fù)執(zhí)行的代碼段,通常稱之為循環(huán)體。Visual FoxPro支持循環(huán)構(gòu)造的命令包括:For-Endfor Do While-EnddoScan-Endscan.1Do While命令格式:Do While 條件 命令序列 Loop 命令序列 Exit 命令序列 Enddo功能:首先判別條件表達(dá)式的值,假設(shè)為.T.,就執(zhí)行D

11、o While與Enddo之間的命令序列(稱為循環(huán)體),然后再判別條件表達(dá)式的值,反復(fù)剛剛的過程。一旦條件取值為.F.,就跳出循環(huán)體轉(zhuǎn)而執(zhí)行Enddo后的下一條命令。5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).根據(jù)職工的職稱修正職工的工資。假設(shè)職稱為“高級工程師,那么工資添加200,假設(shè)職稱為“工程師,那么那么工資添加150,假設(shè)職稱為“助理工程師,那么工資添加100。5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).CLEARUSE 職工DOWHILE.NOT. EOF() DOCASE CASE職稱=“高級工程師 REPLACE工資WITH工資+200 CASE職稱=“工程師 REPLACE工資WITH工資+150 CASE職

12、稱=“助理工程師 REPLACE工資WITH工資+100 ENDCASE SKIP ENDDO USE 5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).求1100以內(nèi)的一切奇數(shù)和與偶數(shù)和Odd=0 &存放奇數(shù)和Evev=0 &存放偶數(shù)和i=1 &循環(huán)變量Do while i=100 if i%2=1 odd=odd+1 else even=even+1 endif i=i+1Endfor?odd,even.2For-Next循環(huán)命令格式:For 內(nèi)存變量=表達(dá)式l To 表達(dá)式2 Step 表達(dá)式3 命令序列 Exit Loop Endfor | Next功能:本命令中的內(nèi)存變量又稱循環(huán)變量的作用類似于計(jì)數(shù)器。它

13、的取值范圍由表達(dá)式1初值與表達(dá)式2終值確定。經(jīng)過判別內(nèi)存變量的取值能否在指定范圍中來確定循環(huán)體能否反復(fù)執(zhí)行 5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).5.1.5循環(huán)構(gòu)造程序設(shè)計(jì). 求N的階乘。CLEARJC=1N=5FOR I=1 to N JC=JC*IENDFOR? STR(N,5)+的階乘是:+STR(JC,5)RETURN5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).3Scan-EndScan命令格式:Scan For Exit LoopEndScan功能: 對當(dāng)前表的指定記錄,依次反復(fù)執(zhí)行循環(huán)體,每循環(huán)一次,表的指針自動下移一位。闡明:在數(shù)據(jù)庫運(yùn)用程序中,經(jīng)常要對表中的指定記錄逐個進(jìn)展某種處置,Visual Fox

14、Pro專門提供了表記錄掃描循環(huán),利用它能非常方便地完成逐條記錄掃描。請留意,Scan循環(huán)只能用于表翻開的情況。5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).查詢職工表中年齡大于20的一切女性職工的姓名。CLEARUSE 職工SCAN ALL FOR 年齡=20 IF 性別=男 LOOP ENDIF DISPLAYENDSCAN5.1.5循環(huán)構(gòu)造程序設(shè)計(jì).LOOP命令和EXIT命令循環(huán)構(gòu)造中的LOOP命令和EXIT命令: LOOP是短路語句,表示重新開場下一次循環(huán); EXIT是退出語句,表示跳出循環(huán)。.累加例如計(jì)算S=1+3+5+99S=0 FOR I=1 TO 99 STEP 2S=S+IENDFOR計(jì)算N=1

15、*1+2*2+3*3+10*10N=0 FOR J=I TO 10N=N+J*JENDFOR?S=1+2+3+100? N=1*2*3*100.累乘例如計(jì)算P=3*5*7*25P=1 FOR K=3 TO 25 STEP 2P=P*KENDFOR計(jì)算10!F=1FOR I=1 TO 10F=F*IENDFOR.SCANENDSCAN例如 USE xscj SCAN ALL FOR cj0) c=left(cstring,1) p=c+p cstring=subs(cstring,2)Enddo?p練習(xí):“123456中華人民共和國.典型運(yùn)用44.統(tǒng)計(jì)字符/數(shù)字個數(shù)Dimen c(10)C=0S

16、=“0101123569Do whil len(s)0 M=left(s,1) n=int(val(m)+1 c(n)=c(n)+1 s=right(s,len(s)-1)Enddodisp memo like c*練習(xí):統(tǒng)計(jì)“abcdfghkyidlfjkt中的字符個數(shù)(僅限于a-z之間).典型運(yùn)用55.其它十進(jìn)制與二進(jìn)制的轉(zhuǎn)換.子程序運(yùn)用子程序的目的是提高程序代碼的可重用性,簡化程序設(shè)計(jì),其作用與過程和自定義函數(shù)類似。普通的,子程序是一段以獨(dú)立的程序文件方式存放在磁盤上的程序,功能相對獨(dú)立且通用性強(qiáng),可被其它程序主程序多次調(diào)用。創(chuàng)建格式:MODIFY COMMAND 子程序文件名在子程序的

17、適當(dāng)位置要加上前往命令至少一條,以便主程序在調(diào)用子程序后能前往到調(diào)用命令后的第一條可執(zhí)行命令處,主程序與子程序的主要區(qū)別也表達(dá)在這里。即RETURN|TO|TO MASTER5.1.6子程序、過程與自定義函數(shù) .調(diào)用格式:DO 5.1.6子程序、過程與自定義函數(shù) .變量的作用域和參數(shù)傳送變量的作用域是變量的有效范圍。即一個變量在哪些程序單元如主程序、子程序、過程、用戶自定義函數(shù)內(nèi)是“可見的,這里“可見的含義是指可以被處置如援用和賦值。根據(jù)變量的有效范圍,變量可分為全局變量和私有變量兩種。1全局變量全局變量是指在整個程序運(yùn)轉(zhuǎn)期間,在任何程序單元中都可以運(yùn)用的內(nèi)存變量,當(dāng)程序運(yùn)轉(zhuǎn)終了時,全局變量仍

18、保管在內(nèi)存中,除非運(yùn)用RELEASE或CLEAR MEMORY命令才干將其釋放。作用域?yàn)閺亩x點(diǎn)開場,到退出FoxPro時所執(zhí)行的一切的程序或過程。全局變量要先定義,后運(yùn)用,通常在主程序中定義,也可在子程序中定義,還可在命令窗口中定義。5.1.6子程序、過程與自定義函數(shù) .格式:PUBLIC 闡明:變量名表可以是簡單變量,也可以是數(shù)組。定義變量時未對變量進(jìn)展賦值,變量的初值為.F.。假設(shè)將PUBLIC語句所在程序單元中曾經(jīng)存在的部分變量闡明為全局變量,那么將導(dǎo)致語法錯誤。2私有變量只能在闡明它的程序以及該程序嵌套調(diào)用的各級子程序中運(yùn)用。數(shù)組闡明命令定義內(nèi)存變量后,這個變量自動被默許是私有變量,

19、但也可以顯式闡明。作用域?yàn)閺亩x點(diǎn)開場,到退出該程序時所執(zhí)行的一切程序。格式1:PRIVATE 5.1.6子程序、過程與自定義函數(shù) .3參數(shù)傳送在主程序的調(diào)用子程序的命令中把需求傳送的實(shí)踐參數(shù)進(jìn)展闡明,在子程序的最開場加上接受數(shù)據(jù)的命令,該命令中的方式參數(shù)形參變量用來接受主程序中傳送過來的數(shù)據(jù)。格式1:DO WITH ,格式2: ,PARAMETERS 5.1.6子程序、過程與自定義函數(shù) .闡明:DO WITH 為發(fā)送數(shù)據(jù)命令,PARAMETERS 為接受數(shù)據(jù)命令;PARAMETERS 語句必需放在子程序或過程中的第一行;可以是常量、變量或表達(dá)式;是變量。實(shí)參與形參應(yīng)一一對應(yīng):個數(shù)一樣,類型一

20、致,按參數(shù)表中的順序依次傳送。子程序或過程中由參數(shù)接納語句闡明的形參,現(xiàn)實(shí)上就是本程序或本過程中的變量,它們在本單元內(nèi)可以像普通變量一樣被運(yùn)用,不同的是,形參在運(yùn)轉(zhuǎn)時一開場就具有確定的取值。5.1.6子程序、過程與自定義函數(shù) .參數(shù)傳送的類型有兩種,傳值和傳地址。傳值:將實(shí)參的值復(fù)制一個拷貝后傳送給形參。因此,實(shí)參與其對應(yīng)的形參作為變量,擁有各自的存儲單元,互不相關(guān)。改動形參的取值并不影響實(shí)參的值。實(shí)參是非簡單變量,如:有運(yùn)算的表達(dá)式。傳地址:將實(shí)參存儲單元的地址傳送給形參。因此,實(shí)參與其對應(yīng)的形參作為變量,共同運(yùn)用同一存儲單元,二者是同一存儲單元的兩個不同標(biāo)識符號,其值要相互影響。實(shí)參普通是

21、簡單變量。5.1.6子程序、過程與自定義函數(shù) .普通地,形參對實(shí)參的影響?yīng)氁坏厝Q于參數(shù)的傳送方式,而與形參及實(shí)參的標(biāo)識名無關(guān)。采用格式1調(diào)用模塊程序時,假照實(shí)參是常量或普通方式的表達(dá)式,系統(tǒng)會計(jì)算出實(shí)參的值,并把它們賦值給相應(yīng)的形參變量。這種情形稱為按值傳送。假照實(shí)參是變量,那么傳送的是變量的地址。這種情形稱為按援用傳送,假設(shè)強(qiáng)調(diào)以按值傳送,那么將變量用括號括起來。假設(shè)要強(qiáng)迫援用傳送,那么需在實(shí)參變量前加&。采用格式2調(diào)用模塊程序時,默許情況下都以按值方式傳送參數(shù)。5.1.6子程序、過程與自定義函數(shù) .過程是具有一定功能、且相對獨(dú)立的一段程序,它可以被別的程序單元中的語句調(diào)用。與子程序根本一

22、樣,所不同的是:過程既可以像子程序那樣獨(dú)立存在一個PRG文件中,也可以存放在調(diào)用它的主程序后面作為主程序的部分。過程與主程序其實(shí)都是程序文件,所不同的是:主程序是不被任何過程調(diào)用的程序,而過程既可被主程序和別的過程調(diào)用,又可以再調(diào)用別的過程。5.1.7 過程文件.1過程的創(chuàng)建在程序設(shè)計(jì)中為了防止反復(fù)寫出完成一樣義務(wù)的程序,提高編程的效率,使程序構(gòu)造明晰,便于調(diào)試和修正是運(yùn)用過程的重要緣由所在。過程的創(chuàng)建格式如下格式:PROCEDURE PARAMETERS RETURNTO MASTER ENDPROC功能:定義一個過程。5.1.7 過程文件.闡明:每個過程開場于闡明語句PROCEDURE,終

23、了于下一條PROCEDURE語句之前。每個過程至少應(yīng)有一條RETURN語句,通常它是該過程的最后一條語句,以表控制的前往。 不含選擇項(xiàng)的RETURN語句,控制前往到調(diào)用該過程的下一條命令處,假設(shè)是用戶直接運(yùn)轉(zhuǎn)該過程,那么控制前往到FoxPro命令窗口,帶有TO MASTER的RETURN語句普通在過程嵌套中運(yùn)用,控制前往到最高一級主調(diào)程序。5.1.7 過程文件.含有“PARAMETERS的過程,稱為“有參過程,否那么稱“無參過程。形參表中的各個形參需用逗號分開。形參可以是輸入?yún)?shù),也可以是輸出參數(shù)。當(dāng)調(diào)用一個有參過程時,主調(diào)程序?qū)⒄鎸?shí)參數(shù)傳送給被調(diào)過程的形參;過程執(zhí)行完后,也可經(jīng)過輸出參數(shù)將執(zhí)

24、行結(jié)果傳送經(jīng)主調(diào)程序中的某個內(nèi)存變量。當(dāng)然,某形參也能夠同時是輸入?yún)?shù)和輸出參數(shù)即在過程中一開場接受主調(diào)程序傳來的一個實(shí)踐值,在過程中又賦予其新值帶回到主調(diào)程序。5.1.7 過程文件.過程的調(diào)用過程的調(diào)用與子程序調(diào)用一樣,運(yùn)用Do命令。對于獨(dú)立保管的過程文件,主程序調(diào)用其中的過程前,首先要翻開這個過程文件,運(yùn)用完后要封鎖。與主程序保管在一同的過程,那么無須翻開和封鎖過程文件。5.1.7 過程文件. 翻開過程文件格式:Set Procedure To Addtive功能:翻開一個或多個過程文件。闡明:假設(shè)有Addtive可選項(xiàng),在翻開新的過程文件時,并不封鎖曾經(jīng)翻開的過程文件。假設(shè)無此可選項(xiàng),在

25、翻開新的過程文件時,自動封鎖原來已翻開的過程文件。5.1.7 過程文件. 封鎖過程文件格式1:Close Procedure格式2:Set Procedure To格式3:Release Procedure 功能:格式1、格式2封鎖一切翻開的過程文件;格式3封鎖指定的過程文件。 5.1.7 過程文件.5.1.8自定義函數(shù)1自定義函數(shù)的定義自定義函數(shù)與過程定義方法類似,主要區(qū)別為: 過程以Procedure開頭,而自定義函數(shù)必需以Function開頭來定義。 自定義函數(shù)必需前往一個函數(shù)值,而子程序或過程卻無此限制。格式:Function 函數(shù)名 命令序列 Return 表達(dá)式 Endfunc.自

26、定義函數(shù)闡明: 自定義函數(shù)必需以Return 結(jié)尾,表示用函數(shù)名前往此表達(dá)式的值。 自定義函數(shù)名不能與Visual FoxPro系統(tǒng)的規(guī)范函數(shù)同名,也不能與內(nèi)存變量同名。 通常自定義函數(shù)放在程序文件中,也可以象子程序一樣保管為一個單獨(dú)的程序文件,此時程序文件名就是函數(shù)名 5.1.8自定義函數(shù).2自定義函數(shù)的調(diào)用自定義函數(shù)的調(diào)用方法有兩種,其一,與系統(tǒng)規(guī)范函數(shù)一樣,作為命令語句中的一個因子;其二,與過程一樣,運(yùn)用Do命令,但第二種方法無法表達(dá)作為函數(shù)調(diào)用的優(yōu)越性。5.1.8自定義函數(shù).作業(yè)一選擇題1、源程序如下所示,閱讀源程序回答下面的問題。A=MnRspqN=LEN(A)I=1DO WHILE

27、 I=NB=SUBSTR(A,I,1)IF ISUPPER(B)B=CHR(ASC(B)+32)A=STUFF(A,I,1,B)ENDIFI=I+2ENDDO?ARETURN注:STUFF(cExpression, nStartReplacement, nCharactersReplaced, cReplacement)的功能是前往一個字符串,此字符串是經(jīng)過用另一個字符表達(dá)式*交換現(xiàn)有字符表達(dá)式中指定數(shù)目的字符得到的。ISUPPER確定一個字符表達(dá)式中的第一個字符能否是一個大寫的字母字符。1程序運(yùn)轉(zhuǎn)的結(jié)果是 AMNRSPQ Bmnrspq CMNRSpq DMsRnpq2程序循環(huán)的次數(shù)是 A5

28、 B4 C6 D7.作業(yè)2、源程序如下所示,閱讀源程序回答下面的問題。CLEARCH=?+-*/?N=1DO WHILE N0S=S+NIF MOD(N,2)=0N=N+1ELSEN=N-2ENDIFENDDO?S=,STR(S,2)SET TALK ONRETURN1上述程序執(zhí)行后,共循環(huán)了 次。A11 B9 C7 D52上述程序執(zhí)行后,屏幕顯示為 。AS=46 BS=55 CS=36 DS=45.作業(yè)二填空題1、有一學(xué)生庫STUDENT.DBF,表中有:姓名(C,8),英語(N,2),數(shù)學(xué)(N,2),獎學(xué)金(L,1)等字段,程序功能為確定能否發(fā)給獎學(xué)金(獎學(xué)金字段值目前均為.F.)。假設(shè)英

29、語數(shù)學(xué)兩門功能都大于或等于90分,那么該學(xué)生可以發(fā)放獎學(xué)金,請對程序填空。SET TALK OFFCLEARUSE STUDENTDO WHILE .T.IF 英語=90 .AND. 數(shù)學(xué)=90 ENDIFSKIPIF EOF() ENDIFENDDORETURN2、請把下面的程序補(bǔ)充完好,使得該程序運(yùn)轉(zhuǎn)后可以得到如以下圖形: .作業(yè)A D DG G GJ J J JM M M M MSET TALK OFFCLEARK=ASC(A)FOR I=1 TO 5FOR J=1 TO I SAY CHR(K)ENDFOR ENDFORSET TALK ONRETURN3、下面的程序是將“中華人民共和

30、國顯示為“中 華 人 民 共 和 國,即在每兩個漢字之間參與一個空格。閱讀下面的程序,將程序填寫完好。.作業(yè)SET TALK OFFCLEARX=中華人民共和國Y=DO WHILE LEN(X)=Y=Y+SUBSTR(X,1,2)+ X=SUBSTR()ENDDO?4有一分支程序?yàn)椋?IF S100 DO P1.PRGELSE IF S10 DO P2.PRG ELSE IF S1 DO P3.PRG ELSE DO P4.PRG ENDIF ENDIFENDIF分別寫出執(zhí)行P2,P3,P4子程序的條件表達(dá)式: DO P1.PRG 條件為:S100DO P2.PRG 條件為:_。 DO P3.

31、PRG 條件為:_。 DO P4.PRG 條件為:_。三程序控制構(gòu)造.作業(yè)1求出以下表達(dá)式的值:(x2 + y)(x y)|2x - 3y|)2給定一個年份,判別它能否閏年。閏年的條件是:能被4整除但不能被100整除,或能被100整除且能被400整除。3從鍵盤輸入數(shù)據(jù)Az,經(jīng)過類型判別,輸出其數(shù)據(jù)類型的漢字闡明。4從鍵盤輸入x,y,z三個數(shù)值,將它們從大到小陳列后輸出。四程序閱讀題。閱讀以下程序,寫出運(yùn)轉(zhuǎn)結(jié)果1注:字符A的ASCII碼為65。程序1CLEARC=一二三四五六七八九十B=ABCDR=0L=LEN(B)FOR I=1 TO LW=SUBSTR(B,I,1)D=ASC(W)+R-65S=IF D+SR=R+11ENDFOR2設(shè)A的值為ABCDEF程序2CLEARACCEPT A= TO AL=LEN(A)P=SPACE(0)I=1DO WHILE I+P3寫出運(yùn)轉(zhuǎn)結(jié)果程序代碼:M=3DO WHILE M10N=2DO WHILE NMIF INT(M/N)=M/NEXITENDIFN=N+1ENDDOIF N=M?MENDI

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論