06 數(shù)值和數(shù)值運算2 08版_第1頁
06 數(shù)值和數(shù)值運算2 08版_第2頁
06 數(shù)值和數(shù)值運算2 08版_第3頁
06 數(shù)值和數(shù)值運算2 08版_第4頁
06 數(shù)值和數(shù)值運算2 08版_第5頁
已閱讀5頁,還剩51頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機應用技術基礎,第六章 數(shù)值和數(shù) 值運算II,計算機應用技術基礎,VFP第二章 張勝光制作,3,本章目錄,第一節(jié)VFP常見函數(shù),VFP第二章 張勝光制作,5,5-2 Visual FoxPro常見函數(shù),函數(shù)的概念: 在任何高級語言中,函數(shù)是已經編好的一段段小程序,用戶可以直接調用這些小程序,直接求出特定的數(shù)值或字符串。 如:ABS(-2)在VFP中可以直接求出-2的絕對值是2, SQRT(5*5)=5 ,等等。,VFP第二章 張勝光制作,6,5-2 Visual FoxPro常見函數(shù),函數(shù)的概念: Visual FoxPro6.0系統(tǒng)為用戶提供了十分豐富的函數(shù),靈活運用這些函數(shù),不僅可以簡

2、化許多運算,而且能夠加強和完善Visual FoxPro的許多功能。 函數(shù)的一般格式: () 函數(shù)的三要素:函數(shù)名、參數(shù)、函數(shù)值 如:ABS(-2),VFP第二章 張勝光制作,7,5-2-1 數(shù)學運算函數(shù),1平方根函數(shù)SQRT() 【格式】 SQRT(數(shù)值表達式) 【功能】 計算并返回數(shù)值表達式的算術平方根。 【例 1】 ? SQRT(5*5) 5.00 請編程計算3*4的平方根,VFP第二章 張勝光制作,8,5-2-1 數(shù)學運算函數(shù),2絕對值函數(shù)ABS() 【格式】 ABS() 【功能】 計算并返回數(shù)值表達式的絕對值。 【例 2】 ? ABS(-43.29) 43.29 請編程計算-3*4的

3、絕對值,VFP第二章 張勝光制作,9,3四舍五入函數(shù)ROUND() 【格式】 ROUND(數(shù)值表達式,有效位數(shù)) 【功能】 對數(shù)值表達式的值按指定的有效位數(shù)進行四舍五入。 【例3】 ? R0UND(3.14159,4), ROUND(1234.9962,0), ROUND(1234.567,-1) 3.1416 1235 1230 請編程計算3.1415926四舍五入到小數(shù)點后6位的值,VFP第二章 張勝光制作,10,4取整函數(shù)INT() 【格式】 INT(數(shù)值表達式) 【功能】 計算并返回數(shù)值表達式的整數(shù)部分。 【例 4】 ? INT(-76.93) -76 請編程計算本題的值,VFP第二章

4、 張勝光制作,11,5求模函數(shù)MOD() 【格式】 MOD(,) 【功能】 返回除以得到的余數(shù)值。 【說明】 在求摸運算中應注意以下幾點: (1) 除數(shù)不能為0。 (2) 除數(shù)為正數(shù),返回正數(shù);如果為負數(shù),返回負數(shù)。 (3) 如果被除數(shù)與除數(shù)能夠整除,結果為0。 (4) 如果被除數(shù)與除數(shù)不能整除,且被除數(shù)與除數(shù)同號,則結果為被除數(shù)除以除數(shù)而得到的余數(shù)。即:MOD(X1,X2)=X1-INT(X1/X2)*X2 。 (5) 如果被除數(shù)與除數(shù)不能整除,且被除數(shù)與除數(shù)異號,則結果為被除數(shù)除以除數(shù)而得到的余數(shù)再加上除數(shù)。 即: MOD(X1,X2)=X1-INT(X1/X2)*X2+X2 。,VFP第

5、二章 張勝光制作,12,5求模函數(shù)MOD() 【格式】 MOD(,) 【功能】 返回除以得到的余數(shù)值。 【例 5】 ? MOD(10,3) &結果為:1 ? MOD(-10,-3) &結果為:-1 ? MOD(-10,3) &結果為:2 ? MOD(10,-3) &結果為:-2,VFP第二章 張勝光制作,13,3-2-2 字符處理函數(shù),1取子串函數(shù)SUBSTR() 【格式】 SUBSTR(字符串表達式,起始位置 ,長度) 【功能】 從字符串表達式中的起始位置截取子字符串,長度為所截取的子串的長度。,VFP第二章 張勝光制作,14,【例 1】 store ”ABCDEFG” to CN ? SU

6、BSTR(CN,4,2), SUBS(CN,1,4), ?SUBS(CN,6,3) DE ABCD FG,VFP第二章 張勝光制作,15,若省略長度,或者長度超過從起始位置到末尾的長度,則截取的子字符串為從起始位置到字符串表達式末尾的所有字符。例如: ? SUBSTR(”計算機程序設計教程”,11) 設計教程,VFP第二章 張勝光制作,16,2求字符串長度函數(shù)LEN() 【格式】 LEN字符串表達式 【功能】 返回字符串表達式中所包含的字符個數(shù),即字符串長度。 【例 2】 ? LEN(”Visual FoxPro6.0”) 16,VFP第二章 張勝光制作,17,3搜索子串位置函數(shù)AT() 【格

7、式】 AT(字符串1,字符串2,) 【功能】 尋找字符串1在字符串2中首次出現(xiàn)的起始位置。若字符串2中不包含字符串1,則返回值為零。若有“數(shù)值表達式”(假設數(shù)值表達式為K),則尋找字符串1在字符串2中第K次出現(xiàn)的位置。 【例 3】 X=”Visual FoxPro 6.0” ? AT(”Fox”,X) & 顯示結果為 8 ? AT(”fox”,X) & 顯示結果為 0 ? AT(”o”,X) & 顯示結果為 9 ? AT(”o”,X ,2) & 顯示結果為 13,VFP第二章 張勝光制作,18,4空格函數(shù)SPACE() 【格式】 SPACE(數(shù)值表達式) 【功能】 產生與數(shù)值表達式的值相同的空

8、格數(shù)。 【例 4】 ? ”學生”+SPACE(4)+”情況” 學生 情況 在“ 學生”和“情況”之間產生了4個空格字符。,VFP第二章 張勝光制作,19,請試運行此程序,FOR I = 1 TO 4 ?SPAC(I) ?* NEXT,VFP第二章 張勝光制作,20,請試運行此程序,FOR I = 1 TO 4 ?SPAC(5-I) ?* NEXT ?,VFP第二章 張勝光制作,21,5宏代換函數(shù) & 【格式】&字符型內存變量 【功能】取“字符型內存變量”的值。 【說明】 (1) 宏代換是一種間接取值的操作,在符號后面必須緊跟(無空格)一個己被賦過值的字符型內存變量的名字。 (2)若&字符型內存

9、變量與后面的字符之間無空格分界時,應加上“”符號作為分界符。 (3)宏代換的使用可以嵌套另一個宏代換,但不能嵌套自己。例如,X=“&X”的寫法是錯誤的。 (4) 對于數(shù)字字符串,可以通過&函數(shù)使其與其他數(shù)字進行計算。,VFP第二章 張勝光制作,22,【例 5】求宏代換。 . CH=”X” X=9 ? &CH &結果為:9 TT=”學生成績” USE &TT &結果為:打開了“學生成績.dbf”表文件。 X=”2004” M=”+” Y=”&X.&M.1” ? Y &結果為:2004+1 ? &Y &結果為:2005,VFP第二章 張勝光制作,23,3-2-3 轉換函數(shù),1數(shù)值轉換為字符串函數(shù)S

10、TR() 【格式】 STR(數(shù)值表達式,長度,小數(shù)位如) 【功能】 將數(shù)值表達式的值轉換為由長度和小數(shù)位數(shù)指定的字符串。如果長度值比數(shù)值表達式的整數(shù)位數(shù)還要小,則返回由長度個“*”組成的字符串。 【例1】 ? STR(1324.46,6,1) 1324.5 ? STR(1324.46,3,1),STR(1324.46,8,3) * 1324.460,VFP第二章 張勝光制作,24,2字符串轉換為數(shù)值函數(shù)VAL() 【格式】 VAL(字符串表達式) 【功能】 將字符串表達式轉換為數(shù)值型數(shù)據。 【例2】 ? VAL(”32”+”18”) 321800 ? VAL(”112GH”),VAL(”AB2

11、04”),VAL(”ASD”) 112.00 0.00 0.00,VFP第二章 張勝光制作,25,3字符轉日期函數(shù)CTOD() 【格式】 CTOD(字符串表達式) 【功能】 將“月/日/年”格式的字符串表達式轉換為日期型數(shù)據。 【例3】 DA=”12/12/04” ? CTOD(DA) 12/12/04,VFP第二章 張勝光制作,26,4日期型轉換為字符串函數(shù)DTOC() 【格式】 DTOC(日期) 【功能】 將日期轉換為相應的字符串。 【例4】 D=2004/11/24 DT=DTOC(D) ? DT ? LEN(DT) 11/24/04 8,VFP第二章 張勝光制作,27,字符處理函數(shù)(補

12、充),格式:LTRIM() 功能:刪除字符表達式值前的空格 格式:RTRIM(或TRIM() 功能:刪除字符表達式值后的空格 格式:ALLTRIM() 功能:將前后的空格去掉 舉例 ?“AB”+SPACE(4)+”CD” &返回 AB CD ? ALLTRIM(“ ABCD ”) &返回 ABCD ?len(“ abcd”) &返回5 ?len(alltrim(“ ABCD “) &返回 4,VFP第二章 張勝光制作,28,3-2-4 日期和時間函數(shù),格式:DATE() 功能:返回系統(tǒng)日期 格式:TIME() 功能:返回系統(tǒng)時間 格式:DATETIME() 功能:返回系統(tǒng)日期時間 格式:YEA

13、R() 功能:返回中的年份,4位整型,VFP第二章 張勝光制作,29,格式:month() 功能:返回中的月份 格式:day() 功能:返回中的日期,舉例 ? YEAR(2001-10-23)&返回2001 ? month(date()&返回當天的月份,VFP第二章 張勝光制作,30,3-2-5 測試函數(shù),1測試文件頭函數(shù)BOF() 【格式】 BOF() 【功能】 該函數(shù)用于測試指定文件中的記錄指針是否指向文件頭。如果是則返回真值,否則返回假值。,VFP第二章 張勝光制作,31,3-2-5 測試函數(shù),【例】 測試文件記錄是否指向文件頭。 USE 學生檔案.dbf ? BOF() & 顯示結果為

14、:.F. SKIP -1 & 移動記錄指針到上一條記錄命令 ? BOF() & 顯示結果為:.T.,VFP第二章 張勝光制作,32,2測試文件尾函數(shù)EOF() 【格式】 EOF() 【功能】 該函數(shù)用于測試指定文件中的記錄指針是否指向文件尾。如果是則返回真值,否則返回假值。 【例】 測試文件記錄是否指向文件尾。 USE 學生檔案.dbf GOTO BOTTOM ? EOF() & 顯示結果為:.F. SKIP & 移動記錄指針到上一條記錄命令 ? EOF() & 顯示結果為:.T.,VFP第二章 張勝光制作,33,【格式】 RECNO() 【功能】 測試指定表文件中的記錄指針指向的記錄號。若指

15、定的工作區(qū)無打開的表文件,函數(shù)返回值為:0;若指定的表文件無記錄或記錄指針位于文件頭,函數(shù)返回值為:1;若記錄指針指向文件尾,函數(shù)返回值為末記錄號加1。 【例 】 測試記錄指針的當前位置(假設學生檔案表中有10條記錄)。 USE 學生檔案.dbf GOTO BOTTOM ? RECNO() & 顯示結果為:10 SKIP ? RECNO() & 顯示結果為:11 GO TOP ? RECNO() & 顯示結果為: 1 SKIP -1 ? RECNO() & 顯示結果為: 1,3測試當前記錄號函數(shù) RECNO(),VFP第二章 張勝光制作,34,4“空”值測試函數(shù) 【格式】 ISNULL() 【

16、功能】 判斷表達式的運算結果是否為 NULL 值,如果是,則返回邏輯真,否則返回邏輯假。 【例4】 STORE .NULL. TO A ? A,ISNULL(A) &結果為:.NULL. .T.,VFP第二章 張勝光制作,35,5空值測試函數(shù) 【格式】 EMPTY() 【功能】 根據表達式的運算結果是否為 “ 空 ” 值, 返回邏輯真或邏輯假。 【說明】 (1).當表達式的結果是含有空字符串或空格時, EMPTY 函數(shù)值返回為 .T. , ISNULL 為 .F. 。 (2).當變量是 .NULL. 時, EMPTY 和 ISBLANK 函數(shù)為 .F.,ISNULL 為 .T. 。 (3).當

17、變量是 0 時, EMPTY 函數(shù)為 .T. , ISNULL 和 ISBLANK 為 .F. 。,第二節(jié)操作符與表達式,VFP第二章 張勝光制作,37,3-3 操作符及表達式,操作符是表示數(shù)據之間運算方式的運算符號,一般根據處理數(shù)據類型不同可分為算術運算符、字符運算符、關系運算符、邏輯運算符四種。表達式是由常量、變量、函數(shù)、操作符及圓括號組成的算式。表達式中的操作對象必須具有相同的數(shù)據類型,如果表達式中有不同類型的操作對象,則必須將它們轉換成同種數(shù)據類型。,VFP第二章 張勝光制作,38,3-3-1算術表達式,算術表達式是由數(shù)值型變量、常量、函數(shù)和數(shù)值操作符組成的。用于對數(shù)值型數(shù)據進行常規(guī)的

18、算術運算。,VFP第二章 張勝光制作,39,算術運算符,舉例: ? 5/3 結果:1.67 ? 5%3 結果:2 ? -3*2-5 結果:4.00 ? 2*7%32+3 結果:8,高,VFP第二章 張勝光制作,40,算術運算符,舉例 ? 3/2&返回1.5 ? 5.5%3&返回2.5 ? Int(5/3)& 1,取得數(shù)值的整數(shù)部分 ? 62&返回36 ? 2001-12-29+4&返回2002-1-2 ? 2002-3-1 -2001-12-29&返回62 ? 2002-3-1 1&返回2002-2-28 ? 2000-3-1 1&返回2002-2-29,VFP第二章 張勝光制作,41,3-3

19、-2 字符表達式:,字符表達式是由字符型變量、常量、函數(shù)和字符操作符組成的。用于字符串的連接或者比較。 字符串操作符為: +:連接兩個字符串。 -:連接兩個字符串,并將第一個字符串尾部的空格移到第二個字符串的尾部。 $:判斷第一個字符串是否是第二個字符串的子字符串。,VFP第二章 張勝光制作,42,例如: LEN1=”Visual FoxPro6.0 ” LEN2=”數(shù)據庫教程” ? LEN1+LEN2 & 結果為:Visual FoxPro6.0 數(shù)據庫教程 ? LEN1-LEN2 & 結果為:Visual FoxPro6.0 數(shù)據庫教程 ? len(LEN1-LEN2) & 結果為:28,

20、VFP第二章 張勝光制作,43,3-3-3 日期時間表達式,日期時間表達式是由日期時間型變量、常量、函數(shù)和日期時間操作符組成的。 日期時間操作符有: +:添加一個天數(shù)或秒數(shù) -:減少一個天數(shù)或秒數(shù),VFP第二章 張勝光制作,44,3-3-3 日期時間表達式,例如:? 2005-04-04+10 &結果為:04/14/05 ? 2005-04-30-15 &結果為:04/15/05 ? 2003-08-04 10:10a+10 &結果為:08/04/03 10:10:10 AM ? 2003-08-04 10:35p-10 &結果為: 08/04/03 10:34:50 PM,VFP第二章 張勝

21、光制作,45,3-3-4 關系表達式,關系表達式用于數(shù)值、字符、日期型數(shù)據的比較運算。關系表達式的運算優(yōu)先級相同。,例如: ? ”xyz”#”XYZ” & 值為.T. ? ”abcd”=”abc” & 值為.T. ? ”abc”=”abcd” & 值為.F. ? ”abcd”=”abc” & 值為.F.,VFP第二章 張勝光制作,46,邏輯表達式是由邏輯型變量、常量、函數(shù)和字符運算符組成的。用來對邏輯型數(shù)據進行各種邏輯運算,形成各種簡單的邏輯結果。,3-3-5 邏輯表達式,高,例如 ? 1733 .AND3412 & 值為.F. ? 16/27 .0R. ”abc”#”ABC” .AND. N

22、OT.F & 值為.T.,VFP第二章 張勝光制作,47,在多個邏輯值中進行判斷,一般用于判斷某幾個條件是否滿足 運算對象和運算結果均為邏輯型 運算符 OR或.OR.:邏輯或,只有兩個運算對象均為.F.時,返回.F.;其余均返回.T. AND或.AND.:邏輯與,只有兩個運算對象均為.T.時,返回.T.;其余均返回.F. NOT或.NOT.:邏輯非,運算對象為.T.時,返回.F.;運算對象為.F.時,返回.T.,VFP第二章 張勝光制作,48,3-3-6 空值(null),空值是一個重要的概念??罩稻褪菦]有任何值。對數(shù)值,它非零;對字符,它非空格串;對邏輯,它非真非假。在應用中,空值的概念是十分有意義的。年齡不知道時,不能填零;姓名不知道時,不能填空字串等。,VFP第二章 張勝光制作,49,3-3-6 空值(null),1 空值的表示 空值的表示為:.NULL. 2 變量中空值的表示 內存變量、數(shù)組變量、字段變量均可以賦以空值。變量賦以空值后,其類型不變。也就是說空值不是一個數(shù)據類型。,VFP第二章 張勝光制作,50,例:a= &a為空格字串 b= &b為空字串 c=.null.&c賦以空值,但不改變其類型 ?empty(a),empty(b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論