版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第二章:VF程序設(shè)計基礎(chǔ)考核知識點常量、變量和表達(dá)式常用函數(shù):字符處理函數(shù),數(shù)值計算函數(shù),日期時間函數(shù),數(shù)據(jù)類型轉(zhuǎn)換函數(shù)和測試函數(shù)。程序與程序文件:程序的概念,程序的基本結(jié)構(gòu),多模塊程序設(shè)計。重要考點:常量和變量的概念、類型及特點;表達(dá)式的類型;函數(shù)的使用:trim, left, right, substr, at, like, date, str, val, isnull, empty, vartype, eof, bof, iif程序與程序文件、程序的選擇結(jié)構(gòu)、程序的循環(huán)結(jié)構(gòu)、多模塊程序設(shè)計??键c一:常量常量用以表示一個具體、不變的值。不同類型常量的書寫格式不同。分為:數(shù)值型:代碼N,用來
2、表示一個數(shù)量的大小。無定界符。如:0,20,-3.14 ,1.25E-2貨幣型:代碼Y,用來表示貨幣值,定界符:$。字符型:代碼C,就是一串字符,定界符:“ ” , , &必須是在英文狀態(tài)下輸入4.日期型:代碼D,表示日期,定界符, ,如:2019-07-20,5.日期時間型:代碼T,表示一個日期時間,定界符, ,如:2019-07-20 20:10:306.邏輯型:代碼L,只有邏輯真,邏輯假兩種值,定界符:. 邏輯真:.T. .t. .Y. .y. 邏輯假: .F. .f. .N. .n.考點二:變量:表示可變的值。分為內(nèi)存變量和字段變量。1.簡單內(nèi)存變量:每個變量都有一個名字,可以通過變量
3、名訪問變量的值。變量名必須以字母、漢字或者下劃線開頭,后接漢字、字母、下劃線、數(shù)字。(在自治區(qū)的筆試考試中會出現(xiàn)此類題目)給變量賦值:變量名=表達(dá)式 , store 表達(dá)式 to 變量名1,變量名2顯示變量的值:?變量名(換行顯示) ?變量名(不換行顯示)數(shù)組變量:由一系列數(shù)組元素組成,每一個數(shù)組元素相當(dāng)于一個內(nèi)存變量。數(shù)組要先定義后使用。在一切使用簡單內(nèi)存變量的地方都可以使用數(shù)組;但在同一運行環(huán)境中,數(shù)組名不能與簡單變量名重復(fù); 數(shù)組在定義后,系統(tǒng)自動賦初值.F.,可以用一維數(shù)組的形式訪問二維數(shù)組。(1)定義數(shù)組:declare 或 dimension 數(shù)組名(下標(biāo)n,n)如:dimesio
4、n a(5) & 定義了一個有5個元素的一維數(shù)組,數(shù)組名為a。 declare bus(3,4) & 定義了有12個元素的二維數(shù)組,數(shù)組名為bus。(2)給數(shù)組賦值,與前相同。如: a(1)=10 ,a(4)=“city” ,a=25 bus(1,1)=“17路” ,bus(10)=“101”2019-9(15)如果有定 dimension data(3) , 則data(2) 的初值是:_。 A)整數(shù) 0 B)不定值 C)邏輯真 D)邏輯假 3.字段變量:表中的每個字段,就是一個字段變量。 如果字段變量與內(nèi)存變量同名,那么,訪問內(nèi)存變量時要在變量名前加前綴:m.內(nèi)存變量名或者m-內(nèi)存變量名,
5、否則系統(tǒng)訪問的將是同名的字段變量。真實考題:(22)假設(shè)職員表已在當(dāng)前工作區(qū)打開,其當(dāng)前記錄的“姓名”字段值為“張三”(字符型,寬度為6)。在命令窗口輸入并執(zhí)行如下命令:姓名=姓名-“您好”? 姓名那么主窗口中將顯示A)張三 B)張三 您好 C)張三您好 D)出錯考點三:內(nèi)存變量的常用命令顯示內(nèi)存變量:list memory | display memory清除內(nèi)存變量: clear memory | release 變量名all表中數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的交換將表的當(dāng)前記錄復(fù)制到數(shù)組 格式:scatter fields to 將數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄 格式:gather from field
6、s 例:use 學(xué)生 dimesion a(4),b(3) scatter to a scatter fields 姓名,年齡 to b ?a(1),a(2),a(3),a(4),b(1),b(2),b(3)例:dimesion b(4) b(1)=“01001” b(2)=“寧寧” gather from b disp2.2 表達(dá)式考點四:數(shù)值、字符與日期時間表達(dá)式 表達(dá)式是指由常量、變量、函數(shù)通過運算符連接形成的式子。優(yōu)先級運算符說明1( )2* 或 乘方3* / %乘,除,求余4+ -加,減求余規(guī)則當(dāng)被除數(shù)與除數(shù)符號相同時,直接求出余數(shù);當(dāng)被除數(shù)與除數(shù)符號相異時,最后余數(shù)為兩數(shù)相除的余數(shù)
7、再加除數(shù)的值。例:9*(5-3)%3*5=_ 自治區(qū)考題:請將以上例題中的數(shù)學(xué)表達(dá)式改寫成VF語言中的表達(dá)式。數(shù)值表達(dá)式2.字符表達(dá)式:用+或-將字符型數(shù)據(jù)連接起來,其結(jié)果仍是字符型。例:“ab ” + “1”=_ “ab ” - “1”=_ 運算符作用備注+將兩個字符串連接起來 優(yōu)先級 相 同-將兩個字符串連接起來,如果前一個字符串尾部有空格,則移到新字符串的尾部。3.日期時間表達(dá)式幾個相關(guān)命令Set strictdate to 0 不進(jìn)行嚴(yán)格的日期型格式檢查。 Set strictdate to 1 進(jìn)行嚴(yán)格的日期型格式檢查。2)Set century on|off 打開或關(guān)閉世紀(jì)年份的顯
8、示3)Set mark to “符號” 規(guī)定年月日之間的分隔符4)Set date to ymd|mdy|dmy 顯示日期時年月日的順序日期運算日期天數(shù) 如:2019-07-10 5日期-日期 如:2019-07-10 2019-05-10日期時間秒數(shù) 如: 2019-07-10 12:10:00 504)日期時間-日期時間如: 2019-07-10 12:10:00 - 2019-07-10 11:10:00 關(guān)系表達(dá)式運算符說明運算符說明小于大于=大于等于=等于=全等(精確比較),#,!=不等于$子串包含測試提示:1)全等只有在兩個字符串完全相等時,結(jié)果才為真; 2)等于的結(jié)果受set e
9、xact on|off 的影響,如: set exact on ?“ab”=“a” set exact off ?“ab”=“a“ 結(jié)果:.F.結(jié)果:.T.順序相同,字母相同就為真.順序相同,左包含右就為真.3) $ :如果前一個字符串是后一個字符串的子串,得到邏輯真,否則,得到邏輯假。 如: “ab” $ “12ab34” “我“ $ “我們” “香蕉” $ “水果”順序相同,右包含左就為真.邏輯表達(dá)式表達(dá)式1表達(dá)式1表達(dá)式1 AND 表達(dá)式2表達(dá)式1 OR 表達(dá)式2.T.T.T.T.T.F.F.T.F.T.F.T.F.F.F.F.全真才真全假才假各運算符的優(yōu)先級別:先括號,再算術(shù)、字符、日
10、期運算符,然后是關(guān)系運算符,最后是邏輯運算符。算術(shù)、字符、日期運算符關(guān)系運算符括號邏輯運算符6.運算優(yōu)先級:非與或例: “we” $ “rew” and 5+6=11(10%3=1) and (15%2=0) or 電腦!=計算機(jī)2.3 常用函數(shù)考點五:數(shù)值函數(shù) 數(shù)值函數(shù)的參數(shù)和返加值一般都是數(shù)值型數(shù)據(jù)。取表達(dá)式的絕對值格式:ABS(Nexp)返回數(shù)值的符號,若是正數(shù),返回1;負(fù)數(shù)返回-1,零返回0格式:SIGN(Nexp)求表達(dá)式的平方根格式:SQRT(Nexp)得到圓周率,無參數(shù)格式:PI()求整數(shù),只保留數(shù)值的整數(shù)部分格式:INT(Nexp)對Nexp1按Nexp2規(guī)定的位數(shù)進(jìn)行四舍五入
11、格式: ROUND(Nexp1,Nexp2)求一組數(shù)中的最大值或最小值格式:MAX(Nexp1,) MIN(Nexp1,)求Nexp1除以Nexp2的余數(shù)格式:MOD(Nexp1,Nexp2)考點六:字符函數(shù)返回字符串的長度,注意:一個漢字占兩個字符空間格式:LEN(Cexp)大小寫字母轉(zhuǎn)換UPPER(Cexp) 小寫轉(zhuǎn)大寫LOWER(Cexp) 大寫轉(zhuǎn)小寫 3.生成指定的空格字符 格式:SPACE(Nexp)刪除字符串的前后空格TRIM(Cexp1) 刪除尾部空格LTRIM(Cexp1) 刪除前端空格ALLTRIM(Cexp1) 刪除前后空格取指定字符串的子串LEFT(Cexp1,長度) 對
12、Cexp1從左側(cè)按指定長度截取子串RIGHT(Cexp1,長度) 對Cexp1從右側(cè)按指定長度截取子串SUBSTR(Cexp1,起始位置,長度) 對Cexp1 從起始位置開始截取指定長度的字符串關(guān)于截取函數(shù)的練習(xí)?LEFT(“GOOD BYE!”,2)?RIGHT(“GOOD BYE!”,3)?SUBSTR (“GOOD BYE!”,6,2)趣味練習(xí)1.將”DCBA”轉(zhuǎn)換成”ABCD”2.將”去去來來”轉(zhuǎn)換成”來來去去”3.將”你愛我”轉(zhuǎn)換成”我愛你”4.將”移轉(zhuǎn)叫呼情愛”轉(zhuǎn)換成”愛情呼叫轉(zhuǎn)移”6.返回字符串1在字符串2中出現(xiàn)的次數(shù)OCCURS(Cexp1,Cexp2)Store “abrac
13、adabra” to s ?occurs(“a”,s)? occurs(“b”,s)? occurs(“c”,s)?occurs(“e”,s)7.求字符串1在字符串2中出現(xiàn)的位置AT(Cexp1,Cexp2,Nexp)Store “This is Visual Foxpro” to a?AT(“fox”,a)?ATC(“fox”,a)?AT(“is”,a,2)?AT(“xo”,a)8.子串替換函數(shù)用字符串2替換字符串1中指定的字符STUFF(Cexp1,起始位置,長度,Cexp2)S1=“GOOD BYE!”S2=“MORNING”?STUFF(S1,6,3,S2)? STUFF(S1,1,4
14、,S2)9.字符替換函數(shù)CHRTRAN(Cexp1,Cexp2,Cexp3)(1)當(dāng)?shù)谝粋€字符串中的一個或多個相同字符與第二個字符串中的某個字符相匹配時,就用第三個字符串中的對應(yīng)字符(與第二個字符串的那個字符具有相同位置)替換這些字符。 ?CHRTRAN(“ABACAD”,”ACD”,”X12”)(2)若第三個字符串包含的字符個數(shù)少于第二個字符串包含的字符個數(shù),導(dǎo)致沒有對應(yīng)字符,那么第一個字符串中相匹配的各字符將被刪除。 ?CHRTRAN(“計算機(jī)ABC”,”計算機(jī)”,”電腦”)(3)如果第三個字符串包含的個數(shù)多于第二個字符串包含的個數(shù),多余的字符被忽略。?CHRTRAN(“大家好!”,”大家
15、”,”你們好”)分為三種情況比較兩個字符串對應(yīng)位置上的字符,若全等,返回.T. ,否則返回.F.LIKE(Cexp1,Cexp2) 注意:&只可在Cexp1中可使用通配符&通配符有兩種: *表示任意零個、一個或多個字符。 ?表示任意一個字符。&返回值是邏輯型。store “abc” to x y=“abcd” ?like(“abc*”,x)?like(“ab*”,x)?like(“abc*”,y)?like(x,y)?like(“?b?”,x)?like(“Abc*”,x)考點七:日期和時間函數(shù)系統(tǒng)日期和時間函數(shù)DATE( ) 返回當(dāng)前系統(tǒng)日期 ,結(jié)果為日期型;TIME( ) 返回當(dāng)前系統(tǒng)時間
16、,結(jié)果為字符型;DATETIME( ) 返回當(dāng)前系統(tǒng)日期時間,結(jié)果為日期時間型求年份、月份、天數(shù)YEAR(Dexp)MONTH(Dexp)DAY(Dexp)3.求時,分、秒HOUR(Texp)MINUTE(Texp)SECOND(Texp)考點八:數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1.將數(shù)值型按指定的長度和小數(shù)位數(shù)轉(zhuǎn)換為字符型STR(Nexp,長度,小數(shù)位數(shù))功能:將的值轉(zhuǎn)換成字符串,轉(zhuǎn)換時根據(jù)需要自動進(jìn)行四舍五入。返回字符串的理想長度L應(yīng)該是值的整數(shù)部分位數(shù)加上值,再加上一位小數(shù)點。&的默認(rèn)值為0,的默認(rèn)值為10.例如:?str(-123.456 ,8,3)?str(123.456,7,3)?str(-123
17、.456)?str(123.456)(1)如果值大于L,則字符串加前導(dǎo)空格以滿足規(guī)定的要求;?str(-123.456,9,2)?str(123.456,9,2)(2)如果值大于等于值的整數(shù)部分位數(shù)(包括負(fù)號)但又小于L,則優(yōu)先滿足整數(shù)部分而自動調(diào)整小數(shù)位數(shù);?str(-123.456,6,2)?str(123.456, 5,2)(3)如果值小于值的整數(shù)部分位數(shù)則返回一串星號(*)。?str(-123.456, 3) ?str(-123.456,2)還有三種特殊情況2.將字符串(包括小數(shù)點,符號)轉(zhuǎn)換為數(shù)值型VAL(Cexp) ?VAL(123.+45)分為兩種特殊情況:(1)若字符串中出現(xiàn)非
18、數(shù)字字符,那么只轉(zhuǎn)換前面的部分;?VAL (123.+4A5)?VAL (123.+A45)(2)若字符串中的首字符不是數(shù)字符號,則返回數(shù)值零,但忽略前導(dǎo)空格。?VAL (“A123.+A45)?VAL (“A-58.+A45)3.字符串和日期或日期時間函數(shù)轉(zhuǎn)換CTOD , CTOT ,DTOC ,TTOC4.宏替換函數(shù):替換出字符型變量的值格式:&.例如: X1=58.22“ ?41.78+&X1 N=886, M=345 ,K=“M+N “ ?1+&K考點九:測試函數(shù)1.值域測試:判斷表達(dá)式1是否介于表達(dá)式2和表達(dá)式3之間BETWEEN(Nexp1, Nexp2, Nexp3)例如:? B
19、ETWEEN(150,100,200)? BETWEEN(100,150,200)? BETWEEN(300,200,100)2.空值測試ISNULL(Exp)只有在表達(dá)式的值是: .null.時,結(jié)果才為真,其它都為假。3.“空”值測試EMPTY(Exp)只有在表達(dá)式的值是: 0,“ ”,.F. 時,結(jié)果才為真,其它都為假。記憶函數(shù)數(shù)據(jù)類型測試VARTYPE(Exp)表文件測試EOF() 測試指針是否指到了表文件的結(jié)尾;BOF()測試指針是否指到了表文件的開始;考點 十 3.條件測試IIF(Lexp,exp1,exp2)若邏輯表達(dá)式為真,則返回exp1的值,否則返回exp2的值X=100Y=
20、300?IIF(X100,X-50,X+50)?IIF(Y100,Y-50,Y+50)函數(shù)部分練習(xí)題:填空題:1.將數(shù)值型轉(zhuǎn)換成字符型的函數(shù)是( )。 2.將字符型轉(zhuǎn)換成數(shù)值型的函數(shù)是( )。3.求當(dāng)前系統(tǒng)時間的函數(shù)是( ),當(dāng)前系統(tǒng)時間的返回值的數(shù)值類型是( )。4.求當(dāng)前年份的函數(shù)是( ),他的返回值的數(shù)值類型是( )5.?len(alltrim(“ 計算機(jī)等級 ”)的結(jié)果是:6.表示”1962年10月27日”的日期型常量應(yīng)該寫為:7.下列符號中,不常作為日期型常量分隔符的是:A.斜杠(/) B.連字符(-) C.句點(.) D.脫字符()8.在下面的數(shù)據(jù)類型中,默認(rèn)值為.F.的是:A.數(shù)
21、值型 B.字符型 C.邏輯性 D.日期型9.在VF中,內(nèi)存變量的數(shù)據(jù)類型不包括的是:A.數(shù)值型 B.貨幣型 C.備注型 D.邏輯型10.在下列函數(shù)中,函數(shù)值為數(shù)值型的是:A.AT(“中國”,”中國計算機(jī)”) B.CTOD(“04/30/2019”) C.BOF() D.SUBSTR(DTOC(DATE(),7)11.函數(shù)STUFF(“計算機(jī)”,5,4,”信息報”)的返回值:A.計算機(jī)信息報 B.計算信息報 C.計算機(jī)信息 D.機(jī)信息報12.已知X=45,則函數(shù)VARTYPE(X)的結(jié)果是:13.假定系統(tǒng)日期就是今天的日期,則執(zhí)行命令X1=MOD(YEAR(DATE()-2000,3)后,X1的
22、值是:14.STR(123.5454,6,3)的值是:15.在命令窗口輸入如下命令:STORE 2*3 TO X ?X 的返回值是:16.Store 3*5=15 to xY=.F.?x .AND. Y 的返回值是:17.有如下賦值語句,結(jié)果為”大家好”的表達(dá)式是:A=“你好”B=“大家”A.b+AT(a,1) B.b+RIGHT(a,1) C. b+LEFT(a,3,4) D. b+RIGHT(a,2)2.4 程序與程序文件考點十一:基礎(chǔ)概念:程序是能夠完成一定任務(wù)的命令的集合。當(dāng)運行程序時,系統(tǒng)會按照一定的次序自動執(zhí)行程序中的命令。程序文件的建立“文件”“新建”“程序” 或者 modify
23、 command程序文件的執(zhí)行1)單擊工具欄上的“!” 2)Ctrl + E3) 命令: do 程序文件名4) CANCEL &終止程序的運行,清除所有私有變量,返回命令窗口.DO & 轉(zhuǎn)去執(zhí)行另一個程序.RETURN & 結(jié)束當(dāng)前程序的執(zhí)行,返回到調(diào)用它的上級程序,若無上級程序則返回命令窗口.QUIT & 退出VF系統(tǒng),返回操作系統(tǒng).程序文件的擴(kuò)展名是:_例題:編寫程序,計算圓的周長和面積?CLEAR & 清除VF主窗口或當(dāng)前用戶自定義窗口的全部內(nèi)容 r=3 *設(shè)置半徑 *依次計算周長和面積P=2*PI()*r &函數(shù)PI()返回圓周率a=PI()*r2*輸出計算結(jié)果? 周長=,P? 面積=
24、,aRETURN 考點十二:簡單的輸入輸出命令1. INPUT 命令格式:input to 如:input “請輸入您的姓名” to xm input “請輸入您的出生日期” to rq功能:該命令等待用戶從鍵盤輸入數(shù)據(jù),當(dāng)用戶回車后,系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量。注釋:輸入的值可以是常量、變量、表達(dá)式,但不能不輸入內(nèi)容,直接按回車。輸入的內(nèi)容要加定界符。2. ACCEPT 命令格式:accept to 功能:該命令等待用戶從鍵盤輸入字符串,當(dāng)用戶回車后,系統(tǒng)將字符串存入指定的內(nèi)存變量。注釋:該命令只能接收字符串。用戶輸入時不必加定界符,如果不輸入任何內(nèi)容而直接回車,系統(tǒng)會把空字符串賦給
25、指定的內(nèi)存變量。3. WAIT格式:wait to 內(nèi)存變量 window.功能:該命令顯示字符表達(dá)式的值作為提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo),程序才繼續(xù)運行。2.5 程序的基本結(jié)構(gòu)程序結(jié)構(gòu)是指程序中命令或語句執(zhí)行的流程結(jié)構(gòu),有3種基本結(jié)構(gòu):順序, 選擇結(jié)構(gòu), 循環(huán)結(jié)構(gòu)順序accept “請輸入您的姓名”to ninput “請輸入您的生日” to b?您的姓名是:,n?您的年齡是:,year(date()-year(b)考點十三:選擇結(jié)構(gòu)選擇結(jié)構(gòu)包括:條件語句和分支語句 1. 條件語句 格式: If else endif邏輯表達(dá)式為真?語句序列1ENDIF后面的語句NY語
26、句序列2例1:編寫程序:從鍵盤接收2個數(shù)x和y,然后判斷x能否被3整除。如果x能被3整除,則y的值增加x,否則y的值不變。ClearInput x= to xInput y= to yIf x%3=0 y=y+xelse y=y Endif?y=,yinput x= to x input y= to y if x/3=int(x/3) y=y+x else y=y endif ?y=,y例 2:clearinput 輸入您的年齡 to ageif age=18 ?已成年else ?未成年endif例3:Input “a=“to aIf a=10 s=0EndifS=1?sInput “a=”t
27、o a If a=10 s=0 Else S=1 Endif ?s例4:計算運費貨物重量不超過50公斤時,每公斤0.50元,重量超過50公斤時超過部分每公斤加收0.40元,編制計算運費的程序.INPU重量= TO XY=0.5*XIF X50 Y=Y+0.4*(X-50)ENDIF?運費=,YINPU重量= TO XIF X50 Y=25+0.9*(X-50)ELSE Y=0.5*XENDIF?運費=,Y解法1解法2解法3INPU重量= TO XIF X50 Y=25+0.9*(X-50)EndifIf x=50 Y=0.5*XENDIF?運費=,Y例5:根據(jù)用戶輸入的考試成績,判斷并顯示 相
28、應(yīng)的成績等級。60以下不及格;60-80合格;80-90-優(yōu)良;90以上優(yōu)秀。ClearInput輸入考試成績 to chjIf chj60 dj=不及格Else if chj 80 dj=合格 else if chj90 dj=優(yōu)良 else dj=優(yōu)秀 endif endifEndif?成績等級:+djClearInput 輸入考試成績 to chjIf chj60 dj=不及格Else if chj 90 dj=通過 else dj=優(yōu)秀 endifEndif?成績等級:+djreturn注意:if和endif必須成對出現(xiàn);條件語句可以嵌套,但是不能出現(xiàn)交叉。2. 分支語句 do cas
29、e DO CASECASE 條件1 語句序列1CASE 條件2 語句序列2OTHERWISE 語句序列n+1ENDCASEENDCASE后面的語句YN語句序列2邏輯表達(dá)式1語句序列1語句序列n+1邏輯表達(dá)式n邏輯表達(dá)式2語句序列nNNYY說明執(zhí)行do case時,依次判斷case后面的條件是否成立,如果某個case的條件成立,就執(zhí)行該case和下一個case之間的語句序列,然后執(zhí)行endcase后的語句。如果所有的條件都不成立,則執(zhí)行otherwise與endcase之間的語句。例1:根據(jù)用戶輸入的考試成績,判斷并顯示 相應(yīng)的成績等級。60以下不及格;60-90 合格;90以上優(yōu)秀.Input
30、 “輸入考試成績” to sDo case case s60 ?”不及格” case s 90 ?“優(yōu)秀”endcase例2:計算分段函數(shù)的值 2x-1(x0) 3x+5(0=x3)F(x)= x+1(3=x5) 5x-3(5=x=10)Clear Input “輸入x的值” to xDo caseCase x0 f=2*x-1Case x3 f=3*x+5Case x5 f=x+1Case x=10 f=7*x+2endcase? “f的值為” , freturn例:3 假設(shè)成績表當(dāng)前記錄中”計算機(jī)”字段的值為85, 修改并執(zhí)行下面程序段后使輸出結(jié)果為優(yōu)秀Clear Do case Case
31、 計算機(jī)=60 ? “計算機(jī)等級是”+“及格” Case 計算機(jī)=75 ? “計算機(jī)等級是”+“良好” Case 計算機(jī)=85 ?“計算機(jī)等級是”+“優(yōu)秀” endcase 求程序的計算結(jié)果A=10B=20C=40IF ABIF CAC=A+BELSE C=A-BENDIFENDIF?C1.do-while循環(huán)DO WHILE LOOP EXIT ENDDOLOOP 無條件循環(huán)EXIT 無條件退出ENDDO后面的語句N循環(huán)體條件滿足Y考點十四: 循環(huán)結(jié)構(gòu)例1:s=0i=1do while i=5s=s+ii=i+1enddo?si=1Do while i=1Y=Y+SUBSTR(X,L-1,2
32、)L=L-2ENDDO ?Y例3:計算s=1+2+3+100.思路:引進(jìn)變量 s 和 i。s 用來保存累加的結(jié)果,初值為0;i 既作為被累加的數(shù)據(jù),也作為控制循環(huán)條件是否成立的變量,初值為1. 重復(fù)執(zhí)行命令:s=s+i 和 i=i+1,直到 i 的值超過100,每執(zhí)行一次,s 的值增加i ,i 的值增加1。clearS=0i=1Do while i=3)” to nF=0i=2Do while i=n-1 if mod(n,i)0 i=i+1 loop else f=1 exit endifEnddoIf f=0 ? Str(n,3)+”是素數(shù)”Else ? Str(n,3)+”不是素數(shù)”En
33、difreturnInput “請輸入自然數(shù)(=3)” to nF=0i=2Do while i=n-1 if mod(n,i)=0 f=1 exit endifEnddoFOR 變量=初值 TO 終值 STEP步長 語句序列ENDFOR|NEXT 變量NEXT后面的語句N變量賦初值循環(huán)體在范圍內(nèi)Y變量增加一個步長2. FOR循環(huán)*循環(huán)體中不應(yīng)包含改變循環(huán) 變量值的命令,否則循環(huán)次數(shù) 將改變該語句通常用于實現(xiàn)循環(huán)次數(shù)已確定的情況。執(zhí)行該語句時,首先將初值賦給循環(huán)變量,然后判斷條件是否成立,若循環(huán)條件成立,則執(zhí)行循環(huán),然后循環(huán)變量增加一個步長值再次判斷循環(huán)條件是否成立,若循環(huán)條件不成立,則結(jié)束該
34、循環(huán)語句。功能注釋:步長默認(rèn)值為1;初值、終值和步長的值一旦確定,不再改變;步長為正數(shù),初值小于終值;為負(fù)數(shù),初值大于終值;循環(huán)次數(shù)的計算:int ( (終值初值) / 步長) +1用exit 可以退出循環(huán),循環(huán)不再執(zhí)行;用 loop 可以結(jié)束本次循環(huán),再到循環(huán)的開始處繼續(xù)執(zhí)行循環(huán)。例1:Clear Dimension A(6)For k=1 to 6A(k)=20-2*kEndfor?A(1),A(2), A(3), A(4), A(5), A(6)練習(xí)題 1.分別用FOR循環(huán)和DO WHILE循環(huán)計算1+2+3+30的值?2.用FOR循環(huán)輸出1100之間所有不能被7整除的數(shù)?(提示:使用L
35、OOP)練習(xí)題答案S=0FOR I=1 TO 30 S=S+IENDFOR ?S S=0I=0DO WHILE I=1A(K)= A(K)- A(K+1)K=K-1ENDDO?A(1),A(3),(5)例3:從鍵盤上輸入10個數(shù),然后找出其中最大值和最小值。思路:假定已經(jīng)找出n-1個數(shù)中的最大值ma (或最小值mi),現(xiàn)在再讀入第n個數(shù)a,那么a和ma(或mi)中的較大者(或較小者)就是n個數(shù)中的最大值(或最小值)。clearinput 請輸入入一個數(shù): to astor a to ma,mifor i=2 to 10 input 請輸入一個數(shù): to a if maa mi=a endife
36、ndfor?最大值:,ma?最小值:,mi 3.SCAN循環(huán)SCAN 范圍FOR條件 語句序列ENDSCAN*特別適合對表記錄 進(jìn)行某種處理ENDSCAN后的語句N指針移到第一條滿足條件的記錄循環(huán)體文件未結(jié)束Y定位到下一滿足條件記錄例1:刪除所有性別為男的記錄Use 學(xué)生Scan for 性別=“男” deleteendscan自治區(qū)考題:多項選擇題 以下是循環(huán)結(jié)構(gòu)的有: A.DO WHILE B.for endfor C.SCAN ENDSCAN D.DO CASE E.IF ENDIF F. INPUT 例2:統(tǒng)計職工表中性別的人數(shù), 并刪除相關(guān)記錄s=0scan for 性別=男 dis
37、p wait s=s+1endscan?男生人數(shù)是:,s2.6 多模塊程序設(shè)計 應(yīng)用程序一般是多模塊程序,包含多個程序模塊.模塊是一個相對獨立的程序段.它可以被其它模塊調(diào)用,也可以去調(diào)用其他模塊。通常,把被其它模塊調(diào)用的模塊稱為子程序,把調(diào)用其他模塊而沒有被其他模塊調(diào)用的程序稱為主程序。將一個程序劃分為一個個功能相對簡單、單一的模塊程序,不僅便于程序的開發(fā),也利于程序的閱讀和維護(hù)。顯示實例:主程序:PP內(nèi)容:set procedure to p1 do p1 子程序:P1內(nèi)容: procedure p1a=3b=5?a,b,a+b endproc 考點十五:模塊的定義和調(diào)用定義模塊 proce
38、dure | function return Endproc | endfunc注釋:1)proce用來定義過程,function 定義函數(shù)。函數(shù)和過程有一些差別。 2)過程名必須以字母或下劃線開頭,可包含字母、數(shù)字和下劃線。 3)執(zhí)行時碰到return,則返回主程序。2. 調(diào)用模塊 格式1: do 過程名 或 do 函數(shù)名 格式2: 過程名 ( ) 或 函數(shù)名( )注意:如果主程序和子程序在兩個文件中,則調(diào)用前先要用set procedure to 文件名 命令打開過程文件示例如前所示考點十六:參數(shù)傳遞模塊程序可以接收調(diào)用程序傳遞來的參數(shù),并根據(jù)接收到的參數(shù)控制流程或?qū)邮盏降膮?shù)進(jìn)行處理,
39、從而大大提高了程序的靈活性。傳遞參數(shù)的命令: 格式1:do 過程名|函數(shù)名 with 實參1,實參2 格式2:過程名(實參1,實參2 ) 或 函數(shù)名(實參1,實參2 )2. 接收參數(shù) parameters 形參1,形參2 注釋:實參可以是常量,變量或表達(dá)式。調(diào)用模塊時,系統(tǒng)會自動把實參傳遞給對應(yīng)的形參。形參的數(shù)目要大于或等于實參的數(shù)目。例:主程序:PP內(nèi)容:input “請輸入一個加數(shù)“ to x input “請輸入一個加數(shù)“ to yset procedure to p1 do p1 with x,y 子程序:P1內(nèi)容: procedure p1parame a,ba=3b=5?a,b,a+b endproc 3. 參數(shù)傳遞時可以按引用傳遞,也可以按值傳遞。 引用傳遞:當(dāng)形參的值發(fā)生改變時,實參的值也一起改變; 值傳遞:當(dāng)形參的值發(fā)生改變時,實參的值不會改變;采用 do 命令調(diào)用時,若實參是常量或表達(dá)式,則是值傳遞;若是變量,則是引用傳遞。采用過程名(實參)調(diào)用時,都是值傳遞方式。請觀察以下幾個程序執(zhí)行的結(jié)果:例1:主程
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工裝裝修合同范例
- 借地建房合同范例
- 商家入住平臺合同范例
- 保潔消殺合同范例
- 小區(qū)快遞合同模板
- 上海新版消防合同范例
- 品牌展板設(shè)計合同范例
- 辦公用房合同模板
- 合伙養(yǎng)車合同范例
- 關(guān)于終止入股合同范例
- 四川省特種車輛警報器和標(biāo)志燈具申請表
- 20200310公園安全風(fēng)險辨識清單
- 華中科技大學(xué)官方信紙
- 60立方油罐容積細(xì)表
- WI-QA-02-034A0 燈具成品檢驗標(biāo)準(zhǔn)
- 農(nóng)業(yè)信息技術(shù) chapter5 地理信息系統(tǒng)
- 部編版六年級上語文閱讀技巧及解答
- 斯派克max操作手冊
- 項目四 三人表決器ppt課件
- 結(jié)合子的機(jī)械加工工藝規(guī)程及銑槽的夾具設(shè)計
- 林武樟 完整陽宅講義 筆記版[方案]
評論
0/150
提交評論