




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VFP語(yǔ)言基礎(chǔ)1.字符型數(shù)據(jù)2.數(shù)值型數(shù)據(jù)4.日期型數(shù)據(jù)5.日期時(shí)間型數(shù)據(jù)*7.浮點(diǎn)型數(shù)據(jù)6.邏輯型數(shù)據(jù)3.貨幣型數(shù)據(jù)*8.雙精度型數(shù)據(jù)
*9.整型數(shù)據(jù)*10.備注型數(shù)據(jù)*11.通用型數(shù)據(jù)2.1數(shù)據(jù)類型常用的數(shù)據(jù)類型1.字符型(Character)由任意字符組成(字母、漢字、數(shù)字、符號(hào)和空格等)最大長(zhǎng)度可達(dá)254個(gè)字符看上去象數(shù)值型:學(xué)號(hào)、工號(hào)、電話號(hào)碼、郵政編碼2.1數(shù)據(jù)類型注意:將數(shù)字定義為字符型數(shù)據(jù)時(shí),它不具備數(shù)學(xué)上的數(shù)值含義,不能參加數(shù)學(xué)運(yùn)算。2.數(shù)值型(Numeric)一般將需要參加數(shù)學(xué)運(yùn)算的數(shù)據(jù)定義成數(shù)值型。包含數(shù)字0-9、小數(shù)點(diǎn)與正負(fù)號(hào)例:100.12、-3.14
最大長(zhǎng)度為20個(gè)字節(jié)對(duì)數(shù)值型字段,小數(shù)位數(shù)在創(chuàng)建字段時(shí)確定注意:小數(shù)點(diǎn)和小數(shù)位數(shù)是字段總寬度的一部分Page262.1數(shù)據(jù)類型3.貨幣型(Currency)表示貨幣量的數(shù)據(jù),例:$100.356長(zhǎng)度為8個(gè)字節(jié)小數(shù)位數(shù)超過(guò)4位,四舍五入到4位Page262.1數(shù)據(jù)類型4.日期型(Date)存儲(chǔ)格式:yyyymmdd,共占用8個(gè)字節(jié)dbirthday={^1968/05/20}Dblankdate={}日期格式受SETDATE、SETMARK、SETCENTURY命令的影響工具/選項(xiàng)/區(qū)域Page262.1數(shù)據(jù)類型Page262.1數(shù)據(jù)類型5.日期時(shí)間型(DateTime)描述日期和時(shí)間的數(shù)據(jù),占用8個(gè)字節(jié)tdatetime={^2000/4/178:30pm}6.邏輯型(Logical)用來(lái)進(jìn)行各種邏輯判斷的數(shù)據(jù)占用1個(gè)字節(jié)只有兩個(gè)值,即真(.T.)和假(.F.)7.浮點(diǎn)型(Float):與數(shù)值型數(shù)據(jù)等價(jià)8.雙精度型(Double)存儲(chǔ)精度較高、位數(shù)固定的數(shù)值占用8個(gè)字節(jié)的存儲(chǔ)空間9.整型(Integer)無(wú)小數(shù)部分的數(shù)值,占用4個(gè)字節(jié)Page262.1數(shù)據(jù)類型只適用于表中的數(shù)據(jù)類型:10.備注型(Memo):用于存放較長(zhǎng)的數(shù)據(jù)固定占用4個(gè)字節(jié)的內(nèi)存空間,用來(lái)指向真正的備注內(nèi)容實(shí)際的數(shù)據(jù)存放在與數(shù)據(jù)表文件同名的.FPT文件中,并且所存放的內(nèi)容只受磁盤空間的限制。Page262.1數(shù)據(jù)類型只適用于表中的數(shù)據(jù)類型:11.通用型(General):用于存儲(chǔ)OLE(ObjectLinkingandEmbedding)對(duì)象(電子表格、字處理文檔、圖片等)的引用通用型數(shù)據(jù)長(zhǎng)度固定為4個(gè)字節(jié),實(shí)際數(shù)據(jù)長(zhǎng)度僅受磁盤空間的限制。Page262.1數(shù)據(jù)類型只適用于表中的數(shù)據(jù)類型:
VFP允許使用常量、變量、數(shù)組、記錄和對(duì)象來(lái)存儲(chǔ)數(shù)據(jù),它們也被稱為存儲(chǔ)數(shù)據(jù)的容器常量(Constants)變量(Variables)數(shù)組(Arrays)字段(Fields)對(duì)象(Objects)Page262.2數(shù)據(jù)存儲(chǔ)容器VFP中的命名規(guī)則Page272.2數(shù)據(jù)存儲(chǔ)容器數(shù)據(jù)容器和自定義函數(shù)、過(guò)程都需要一個(gè)名稱命名規(guī)則:名稱中只能包含字母、下劃線“_”、數(shù)字符號(hào)和漢字符號(hào);名稱的開頭只能是字母、漢字或下劃線,不能是數(shù)字,表的字段名不允許以下劃線開頭;自由表的字段名、表的索引標(biāo)識(shí)名至多只能10個(gè)字符,其余名稱的長(zhǎng)度在1-128個(gè)字符之間;避免使用VFP系統(tǒng)的保留字。如:c_Varx_2姓名合法
2xaver#gzx-2use不合法1.常量(Constant)定義:在數(shù)據(jù)處理過(guò)程中其值不發(fā)生變化的量類型:
數(shù)值型常量,即常數(shù)例如:538、-10.5、3.12E+18
貨幣型常量:數(shù)字前加符號(hào)$例如:$538、$10.5Page272.2數(shù)據(jù)存儲(chǔ)容器1.常量(Constant)類型:字符型常量,即用定界符(單引號(hào)、雙引號(hào)和方括號(hào))括起來(lái)的字符串。例如:
"蘇A-0001"
'568'[VFP]Page282.2數(shù)據(jù)存儲(chǔ)容器注意:不能用中文標(biāo)點(diǎn)符號(hào)必須成對(duì)匹配如果一種定界符本身是字符串的內(nèi)容,則需要用另一種定界符表示該字符串。例:"'book'的中文意思是'書'。"空串""和空格串""不同字母區(qū)分大小寫:"a"和"A"不同1.常量(Constant)類型:邏輯型常量,表示邏輯判斷結(jié)果。例如:
.T..t..Y..y.表示“真”
.F..f..N..n.表示“假”注意:定界符不可省略Page282.2數(shù)據(jù)存儲(chǔ)容器創(chuàng)建常量使用命令#Define<常量名稱>常量值&&創(chuàng)建一個(gè)常量
…#undef<常量名稱>&&釋放一個(gè)常量Page282.2數(shù)據(jù)存儲(chǔ)容器創(chuàng)建常量常量值所代表的數(shù)據(jù)內(nèi)容,是程序運(yùn)行時(shí)實(shí)際使用的值例如:
#DefinenPI3.1415926&&創(chuàng)建常量
r=2.3&&給半徑賦值
s=nPI*r*r&&計(jì)算圓面積
?s&&輸出圓面積值
#undef
nPI&&釋放常量
cancel&&程序運(yùn)行結(jié)束
Page282.2數(shù)據(jù)存儲(chǔ)容器1.常量(Constant)類型:日期型常量和日期時(shí)間型常量嚴(yán)格日期格式:{^YYYY-MM-DDhh:mm:ssa|p}
系統(tǒng)默認(rèn)的格式傳統(tǒng)日期格式為:{mm/dd/yy
hh:mm:ssa|p}受SETDATE等命令影響Page282.2數(shù)據(jù)存儲(chǔ)容器setstrictdateto0|10:不進(jìn)行嚴(yán)格日期格式檢查
1:進(jìn)行嚴(yán)格日期格式檢查2.變量()定義:在數(shù)據(jù)處理過(guò)程中其值允許隨時(shí)改變的量字段變量:是在創(chuàng)建表結(jié)構(gòu)時(shí)創(chuàng)建的內(nèi)存變量:直接在程序中通過(guò)賦值語(yǔ)句創(chuàng)建內(nèi)存變量是內(nèi)存中的一個(gè)存儲(chǔ)單元;變量名是存儲(chǔ)單元的標(biāo)識(shí);通過(guò)變量名讀寫存儲(chǔ)單元中的數(shù)據(jù)。Page292.2數(shù)據(jù)存儲(chǔ)容器創(chuàng)建變量STORE<數(shù)值表達(dá)式>TO<內(nèi)存變量名表>STORE1858TOA1,B1,C1STORE“計(jì)算機(jī)世界”TOASTORE“12345”TOB內(nèi)存變量名=<數(shù)值表達(dá)式>A1=1858A=“計(jì)算機(jī)世界”B=“12345”Page292.2數(shù)據(jù)存儲(chǔ)容器Store在一條命令中可以為多個(gè)變量賦同一個(gè)值,等號(hào)“=”只能為一個(gè)變量賦值訪問(wèn)變量
如果字段和變量同名,則字段具有更高的優(yōu)先權(quán)變量的引用:m.或m->
xh="我是變量"?xh&&顯示字段內(nèi)容
?m.xh&&顯示變量?jī)?nèi)容
?m->xh
&&顯示變量?jī)?nèi)容
?xs.xh&&顯示字段內(nèi)容Page292.2數(shù)據(jù)存儲(chǔ)容器3.數(shù)組定義:一種特殊的內(nèi)存變量,是一組有序數(shù)據(jù)項(xiàng)的集合。特點(diǎn):
其中的每個(gè)數(shù)據(jù)項(xiàng)稱為數(shù)組元素
每個(gè)數(shù)組元素在數(shù)組里的位置是固定的
一般通過(guò)稱為下標(biāo)的序號(hào)來(lái)進(jìn)行訪問(wèn)
Page302.2數(shù)據(jù)存儲(chǔ)容器例1:表示一個(gè)班學(xué)生的VFP課程成績(jī)表
a[30]例2:表示一個(gè)班學(xué)生的VFP、英語(yǔ)、數(shù)學(xué)課程成績(jī)表
b[30,3]數(shù)組的聲明
DECLAREX(5),Y(5,2)私有數(shù)組
DIMENSIONA(30),B(30,5)私有數(shù)組
PUBLICX(3,4)全局?jǐn)?shù)組
LOCALM(9)局部數(shù)組Page302.2數(shù)據(jù)存儲(chǔ)容器注意:數(shù)組在聲明之后,每個(gè)元素被默認(rèn)地賦予.F.值為數(shù)組元素賦值例:創(chuàng)建6×3數(shù)組,為其中一元素賦值Dimensionarrayname[6,3]Arrayname[1,2]=1113可以用一個(gè)語(yǔ)句為所有元素賦相同的值A(chǔ)rrayname=1113Page312.2數(shù)據(jù)存儲(chǔ)容器數(shù)值運(yùn)算符字符運(yùn)算符日期和日期時(shí)間運(yùn)算符關(guān)系運(yùn)算符邏輯運(yùn)算符Page322.3運(yùn)算符★數(shù)值運(yùn)算符
+,-,*,/,%,**,^,()
注意:按優(yōu)先級(jí)高低排列運(yùn)算符操作示例()子表達(dá)式分組。改變表達(dá)式中的運(yùn)算順序,()中的優(yōu)先?(8-3)*(18/3)**或^乘方運(yùn)算?b**2-4*a*c*、/乘、除運(yùn)算?7*9/3%模運(yùn)算(即取余數(shù))?365%7+、-加、減運(yùn)算?3+4-5Page322.3運(yùn)算符★字符運(yùn)算符
+,-,$運(yùn)算符操作示例+將兩個(gè)字符串連接在一起,結(jié)果仍然是字符串?"visual"+"foxpro"?"姓名:"+xs.xm?"今天是:"+DTOC(date())-刪除運(yùn)算符左側(cè)字符串空格后連接起來(lái),空格放到尾部?"ab"-"cd"?xs.ximing-xs.xm$查看左串是否包含在右串中,結(jié)果是一個(gè)邏輯值?"bc"$"abcde"?'99'$xs.xhPage322.3運(yùn)算符★日期和日期時(shí)間操作符
+,-運(yùn)算符操作示例+相加?{^2002-7-1}+10?{^2002-7-110:10:10}+50-相減?{^2002-7-1}-50?{^2002-7-110:10:10p}-50?{^2002-7-1}-{^2001-7-1}?{^2002-7-210:10:10a}-{^2002-7-110:10:10p}Page332.3運(yùn)算符★
注意:不可以對(duì)兩個(gè)日期型或日期時(shí)間型數(shù)據(jù)相加關(guān)系操作符:
<,>,=,<>,#,!=,<=,>=,==運(yùn)算符操作示例<小于比較?23<50>大于比較?"A">"a"=等于比較?{^2005-4-1}=date()<>或#或!=不等于比較?.t.<>.f.<=小于或等于比較?cj.cj<=60>=大于或等于比較?"960001">="960001"==字符串精確等于比較?"李某"=="李"Page332.3運(yùn)算符★
注意:關(guān)系運(yùn)算符兩邊的表達(dá)式類型要相同1、字符的排序序列:
(1)PinYin(拼音)序列(默認(rèn)):漢字按拼音序列排列;西文字母由小到大是空格、小寫字母、大寫字母(2)Machine(機(jī)器)序列:按機(jī)內(nèi)碼的順序排列(3)Stroke(筆畫)序列:漢字按筆畫多少排序;西文字符同拼音序列Page332.3.4關(guān)系運(yùn)算符設(shè)置:工具/選項(xiàng)/數(shù)據(jù)SETCOLLATETO"Machine"一、數(shù)據(jù)類型
二、數(shù)據(jù)存儲(chǔ)容器
常量、變量、數(shù)組
三、運(yùn)算符
數(shù)值、字符、日期和日期時(shí)間、關(guān)系
四、表達(dá)式
五、常用函數(shù)第2章VFP語(yǔ)言基礎(chǔ)第1部分:語(yǔ)言概述2、字符串精確比較?"BCDE"="BC"?"BC"="BCDE"?"BC"="BC"?"BC"="BC"?"BCDE"="BCDE".F..F..T..T..T..T..F..T..F..T.==不受SETEXACT命令的影響Page342.3.4關(guān)系運(yùn)算符SETEXACTOFF|ONOff:左串比右串長(zhǎng),取左串與右串等長(zhǎng)On:不等時(shí),補(bǔ)空格后看是否相等邏輯操作符:NOT,!,AND,ORabNOTaaANDbaORb.T..T..F..T..T..T..F..F..F..T..F..T..T..F..T..F..F..T..F..F.Page332.3運(yùn)算符★
注意:按優(yōu)先級(jí)高低排列,可使用()改變順序1.字符表達(dá)式
?"教師"+js.xm+"的基本工資是:"+STR(js.jbgz)2.日期表達(dá)式?date()-{^2000/12/04}天數(shù)3.算術(shù)表達(dá)式#DEFINEPI3.1415926r=10s=PI*r*r?sPage472.5表達(dá)式表達(dá)式:通過(guò)運(yùn)算符將常量、變量、函數(shù)、字段名等組合起來(lái)的可以進(jìn)行運(yùn)算的式子。4.邏輯表達(dá)式
?(xim='計(jì)算機(jī)科學(xué)系'ORxim='信息管理系')ANDnotxb="女"
注意:在運(yùn)算過(guò)程中,當(dāng)運(yùn)算出某個(gè)中間結(jié)果后,若已經(jīng)能夠確定最終的結(jié)果,那么將終止本邏輯表達(dá)式中后面部分的運(yùn)算
如:執(zhí)行AND前遇到.F.則中止執(zhí)行邏輯表達(dá)式(分析優(yōu)先級(jí)P32)?11<2and((1<27/6)or3^2>9)?1<2or((1<27/6)or3^2>9)Page472.5表達(dá)式預(yù)先編制好的程序代碼,可供VFP程序在任何地方調(diào)用;接收一個(gè)或多個(gè)參數(shù)而返回單個(gè)值,它可嵌入到一個(gè)表達(dá)式中;格式:函數(shù)名(參數(shù))分類:系統(tǒng)函數(shù)和用戶自定義函數(shù)
X=YEAR(DATE())Page342.4函數(shù)2.4函數(shù)Page352.4函數(shù)常用函數(shù)介紹2.字符函數(shù)1.數(shù)值函數(shù)3.日期/時(shí)間函數(shù)4.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)5.其他常用函數(shù)1.取絕對(duì)值函數(shù)ABS()格式:ABS(<數(shù)值表達(dá)式>)示例:ABS(-20)、ABS(10-30)2.最大值函數(shù)MAX()格式:MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>,……)示例:?MAX(10,20)?MAX(-10,-20)1.數(shù)值函數(shù)Page362.4函數(shù)3.最小值函數(shù)MIN()格式:MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>,……)示例:?MIN(10,20)?MIN(-10,-20,-30)4.取整函數(shù)INT()格式:INT(<數(shù)值表達(dá)式>)示例:?INT(5.96)?INT(-8.66)?INT(10.98-2.43)Page372.4函數(shù)計(jì)算數(shù)值表達(dá)式的值,并返回其整數(shù)部分5.求余數(shù)函數(shù)MOD()格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)說(shuō)明:函數(shù)返回值的符號(hào)與除數(shù)的符號(hào)相同;示例:?MOD(23,5)?MOD(23,-5)?MOD(-23,5)?MOD(-23,-5)
數(shù)值部分取值:
同號(hào):mod(abs(n1),abs(n2))
異號(hào):abs(n2)-mod(abs(n1),abs(n2))3-22-3Page372.4函數(shù)6.四舍五入函數(shù)ROUND()格式:ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)示例:?ROUND(345.6799,3)?ROUND(345.6799,0)?ROUND(345.6799,-2)Page372.4函數(shù)345.6803463007.求平方根函數(shù)SQRT()格式:SQRT(<數(shù)值表達(dá)式>)示例:?SQRT(16)8.隨機(jī)數(shù)函數(shù)RAND()格式:RAND()說(shuō)明:返回一個(gè)0~1之間的隨機(jī)數(shù)。示例:?RAND()Page382.4函數(shù)小數(shù)位數(shù),默認(rèn)為2位,可用SETDECIMALTO命令設(shè)置小數(shù)位數(shù)2.刪除字符串尾部空格函數(shù)TRIM()格式:TRIM(<字符表達(dá)式>)示例:a="visual"?trim(a)+"foxpro"1.刪除字符串最左邊和最右邊的所有空格函數(shù)格式:ALLTRIM(<字符表達(dá)式>)示例:a="VFP"?alltrim(a)2.字符函數(shù)Page382.4函數(shù)Ltrim()刪除左側(cè)空格3.計(jì)算字符串長(zhǎng)度函數(shù)LEN()格式:LEN(<字符表達(dá)式>)示例:
?LEN("ABCDF")?LEN("ABCDF")X="中國(guó)礦業(yè)大學(xué)"?LEN(X)5812Page382.4函數(shù)4.返回位置函數(shù)AT()格式:AT(<字符表達(dá)式1>,<字符表達(dá)式2>,<數(shù)值表達(dá)式>)注意:數(shù)值表達(dá)式用于指定第幾次出現(xiàn),默認(rèn)為1示例:?AT("is","nowisthetime")?AT("e","nowisthetime",1)?AT("e","nowisthetime",2)?AT("are","now
isthetime")?AT("E","nowisthetime")5101500未出現(xiàn),返回0區(qū)分大小寫Page392.4函數(shù)5.取子字符串函數(shù)SUBSTR()格式:SUBSTR(<字符表達(dá)式>,<數(shù)值表達(dá)式1>[,<數(shù)值表達(dá)式2>])
示例:?SUBSTR("社會(huì)經(jīng)濟(jì)學(xué)",5,4)
?SUBSTR("社會(huì)經(jīng)濟(jì)學(xué)",5,2)
?SUBSTR("社會(huì)經(jīng)濟(jì)學(xué)",5)經(jīng)濟(jì)經(jīng)經(jīng)濟(jì)學(xué)Page392.4函數(shù)6.LEFT()格式:
LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)示例:?LEFT("ABDF",2)
"AB"
7.RIGHT()格式:
RIGHT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)示例:?RIGHT("abde",2)"de"
8.生成空格函數(shù)SPACE()格式:SPACE(<數(shù)值表達(dá)式>)示例:?"北京"+SPACE(3)+"首都"Page392.4函數(shù)3.日期和時(shí)間處理函數(shù)1.系統(tǒng)當(dāng)前日期函數(shù)DATE()
系統(tǒng)當(dāng)前日期時(shí)間函數(shù)DATETIME()系統(tǒng)當(dāng)前時(shí)間函數(shù)TIME()格式:DATE()、DATETIME()、TIME()2.第幾天函數(shù)DOW()格式:DOW(<日期/日期時(shí)間表達(dá)式>)?DOW(DATE())注:星期天為1Page402.4函數(shù)3.日期函數(shù)DAY()格式:DAY(<日期表達(dá)式>/<日期時(shí)間表達(dá)式>)4.月份函數(shù)MONTH()格式:MONTH(<日期表達(dá)式>/<日期時(shí)間表達(dá)式>)5.年份函數(shù)YEAR()格式:YEAR(<日期表達(dá)式>/<日期時(shí)間表達(dá)式>)Page412.4函數(shù)4.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
1.字符轉(zhuǎn)換成ASCII碼函數(shù)ASC()格式:ASC(<字符表達(dá)式>)示例:?ASC("ABCD")
注:A的ASC碼652.ASCII碼值轉(zhuǎn)換成字符函數(shù)CHR()格式:CHR(<數(shù)值表達(dá)式>)示例:?CHR(67)CPage422.4函數(shù)3.字符型轉(zhuǎn)換成數(shù)值型函數(shù)VAL()格式:VAL(<字符表達(dá)式>)說(shuō)明:1)轉(zhuǎn)換時(shí),從左到右返回字符表達(dá)式中的數(shù)字,如果遇到非數(shù)值型字符則停止。如果字符型表達(dá)式的第一個(gè)字符即非數(shù)值型字符,則轉(zhuǎn)換停止,返回0;2)轉(zhuǎn)換后的小數(shù)位數(shù),默認(rèn)為2位,可用SETDECIMALTO命令設(shè)置小數(shù)位數(shù)。示例:?VAL("8769.3456")?VAL("8769AB21")?VAL("AB8769.3421")8769.358769.000.00Page422.4函數(shù)6.數(shù)值型轉(zhuǎn)換為字符型函數(shù)STR()格式:STR(<數(shù)值表達(dá)式1>[,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式3>]])說(shuō)明:1)如果缺省<數(shù)值表達(dá)式2>和<數(shù)值表達(dá)式3>,其輸出結(jié)果將取固定長(zhǎng)度為10位,且只取其整數(shù)部分;示例:?str(314.15)值:“314”
?str(1234567890123)值:“1.234E+12”
返回長(zhǎng)度小數(shù)位數(shù)Page432.4函數(shù)2)<數(shù)值型表達(dá)式2>指定轉(zhuǎn)換后的字符串長(zhǎng)度,<數(shù)值表達(dá)式3>指定轉(zhuǎn)換后的小數(shù)位數(shù),默認(rèn)為0位;總長(zhǎng)度不夠時(shí),首先保證整數(shù)。示例:?str(314.15,5)?str(314.15,5,1)?str(314.15,5,2)3)如果<數(shù)值表達(dá)式2>的值小于整數(shù)部分的數(shù)字位數(shù),將返回一串星號(hào),表示數(shù)值溢出。示例:?str(12345.6789,3)值:***
314314.2314.2Page432.4函數(shù)4.字符型轉(zhuǎn)換成日期型函數(shù)CTOD()格式:CTOD(<字符表達(dá)式>)說(shuō)明:<字符表達(dá)式>必須是一個(gè)有效的日期格式。示例:?CTOD("09/23/01")5.日期型轉(zhuǎn)換成字符型函數(shù)DTOC()格式:DTOC(<日期型表達(dá)式>/<日期時(shí)間型表達(dá)式>[,1])說(shuō)明:如果有1選項(xiàng),則按照年月日的格式輸出,無(wú)分隔符。示例:?DTOC(date())?DTOC(date(),1)Page432.4函數(shù)當(dāng)前日期格式與傳統(tǒng)的日期格式設(shè)置要一致2.4函數(shù)常用函數(shù)數(shù)值函數(shù)
abs()、max()、min()、int()、mod()、round()、
sqrt()、rand()2.字符函數(shù)
alltrim()、trim()、len()、at()、substr()、left()、
right()、space()3.日期/時(shí)間函數(shù)
date()、datetime()、time()、dow()、day()、
month()、year()4.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
asc()、chr()、val()、str()、dtoc()、ctod()Page355.其他常用函數(shù)1.BETWEEN()格式:
BETWEEN(表達(dá)式1,表達(dá)式2,表達(dá)式3)說(shuō)明:判斷表達(dá)式1是否在表達(dá)式2和表達(dá)式3的值之間,包含等于的情況;三個(gè)表達(dá)式為相同類型;返回邏輯型數(shù)據(jù)示例:
?BETWEEN(3,10,15)?BETWEEN(10,10,15)?BETWEEN('a','A','b')?BETWEEN('A','a','P').F..T..F..T.Page442.4函數(shù)3.數(shù)據(jù)類型函數(shù)TYPE()格式:
TYPE(<表達(dá)式>)說(shuō)明:返回表達(dá)式值的類型,返回值是一個(gè)表示數(shù)據(jù)類型的大寫字母,表達(dá)式必須加引號(hào)。C:字符型,D:日期型,N:數(shù)值型,L:邏輯型,M:備注型,G:通用型,U:未定義。
示例:?TYPE('12345')?TYPE('"name"')?TYPE('3>4')?TYPE('answer=42')NCLUPage442.4函數(shù)VARTYPE()不需要加引號(hào)4.條件測(cè)試函數(shù)IIF()格式:
IIF(<lExp>,<eExp1>,<eExp2>)說(shuō)明:邏輯表達(dá)式lExp值為真(.T.),返回表達(dá)式eExp1的值,否則返回表達(dá)式eExp2的值。eExp1和eExp2可以是任意數(shù)據(jù)類型的表達(dá)式。示例:?IIF(DOW(DATE())=1ORDOW(DATE())=7,"今天休息","今天上班")Page452.4函數(shù)7.MESSAGEBOX()函數(shù)格式:MESSAGEBOX(顯示文本[,對(duì)話框類型[,對(duì)話框標(biāo)題])功能:顯示一個(gè)用戶自定義對(duì)話框。例如:
MessageBox("現(xiàn)在要輸入數(shù)據(jù)嗎?",4+32+256,"我的程序")注意:縮寫為MESSAGEB()Page452.4函數(shù)60MESSAGEBOX()函數(shù)按鈕設(shè)置
第3個(gè)按鈕為默認(rèn)512第2個(gè)按鈕為默認(rèn)256第1個(gè)按鈕為默認(rèn)0默認(rèn)按鈕信息圖標(biāo)64警告信息圖標(biāo)48詢問(wèn)信息圖標(biāo)32停止圖標(biāo)16圖標(biāo)類型重試、取消按鈕5是、否按鈕4是、否、取消按鈕3終止、重試、忽略按鈕2確定、取消按鈕1確定按鈕0按鈕數(shù)目描述值分組Page462.4函數(shù)61MESSAGEBOX()函數(shù)所選按鈕返回值7否6是5忽略4重試3終止2取消1確定返回值被單擊的按鈕Page462.4函數(shù)5.其他常用函數(shù)1.BETWEEN()Page442.4函數(shù)3.數(shù)據(jù)類型函數(shù)TYPE()4.條件測(cè)試函數(shù)IIF()7.MESSAGEBOX()函數(shù)2.7程序設(shè)計(jì)基礎(chǔ)
一、VFP程序設(shè)計(jì)概述
二、順序結(jié)構(gòu)
三、分支結(jié)構(gòu)
四、循環(huán)結(jié)構(gòu)
五、過(guò)程和用戶自定義函數(shù)Page512.7程序設(shè)計(jì)基礎(chǔ)Page512.7程序設(shè)計(jì)基礎(chǔ)程序是為了完成某一具體任務(wù)而編寫的一系列指令程序設(shè)計(jì)是利用系統(tǒng)所提供的設(shè)計(jì)工具,按照程序語(yǔ)言的規(guī)范,編寫程序代碼的過(guò)程程序自動(dòng)執(zhí)行多條命令程序可被修改并重新運(yùn)行,且可多次運(yùn)行VFP程序文件是擴(kuò)展名為.PRG的文本文件VFP程序設(shè)計(jì)概述Page522.7程序設(shè)計(jì)基礎(chǔ)2.7.1創(chuàng)建與運(yùn)行程序創(chuàng)建與修改:“文件”+“新建”或“打開”MODIFYCOMMAND<程序文件名>項(xiàng)目管理器+“代碼”運(yùn)行:“運(yùn)行”按鈕DO<程序文件名>項(xiàng)目管理器:“程序”+“運(yùn)行”Page522.7程序設(shè)計(jì)基礎(chǔ)
根據(jù)不同的情況和條件,控制程序去執(zhí)行相應(yīng)操作的語(yǔ)句序列。順序
由語(yǔ)句行組成,執(zhí)行時(shí)語(yǔ)句順序執(zhí)行分支
根據(jù)條件表達(dá)式的值執(zhí)行不同的操作循環(huán)
使得一組語(yǔ)句組重復(fù)執(zhí)行若干次2.7.2程序結(jié)構(gòu)Page532.7程序設(shè)計(jì)基礎(chǔ)1.順序結(jié)構(gòu)
順序語(yǔ)句由語(yǔ)句序列組成,程序執(zhí)行時(shí),按照語(yǔ)句的順序,從上而下,一條一條地順序執(zhí)行。例如:store"Mary"tonameAge=18?"Hisnameis"+name+",heis";+str(Age,2)+"yearsold."例如:編寫程序,計(jì)算圓的面積
#DefinePI3.1415926&&創(chuàng)建常量
r=2&&給半徑賦值
s=PI*r*r&&計(jì)算圓面積
?s&&輸出圓面積值
#undefinePI&&釋放常量
cancel&&程序運(yùn)行結(jié)束Page532.7程序設(shè)計(jì)基礎(chǔ)1.順序結(jié)構(gòu)分支語(yǔ)句根據(jù)一定的條件決定執(zhí)行哪一部分的語(yǔ)句序列。有兩種分支語(yǔ)句:If語(yǔ)句有一個(gè)或兩個(gè)分支,由條件表達(dá)式選擇執(zhí)行case語(yǔ)句有一個(gè)或多個(gè)分支,執(zhí)行第一個(gè)符合條件的分支2.分支結(jié)構(gòu)Page532.7程序設(shè)計(jì)基礎(chǔ)條件分支結(jié)構(gòu)(if語(yǔ)句)Page532.7程序設(shè)計(jì)基礎(chǔ)1.簡(jiǎn)單分支結(jié)構(gòu)格式:IF<條件表達(dá)式><語(yǔ)句序列>ENDIF注意事項(xiàng):條件表達(dá)式的值必須是邏輯型的語(yǔ)句序列可以是一個(gè)或若干個(gè)語(yǔ)句IF與ENDIF必須成對(duì)出現(xiàn),缺一不可
例:若變量nWaterTemp(水溫度)的值大于100,顯示“水沸騰”,否則不執(zhí)行任何操作。Page532.7程序設(shè)計(jì)基礎(chǔ)1.簡(jiǎn)單分支結(jié)構(gòu)Accept"請(qǐng)輸入水溫值:"to
nWaterTemp
IF
val(nWaterTemp)>=100?"水已沸"ENDIF條件分支結(jié)構(gòu)(if語(yǔ)句)Accept在主窗口顯示其后文本,在接受輸入數(shù)據(jù)后,將其保存到to指定的變量中在主窗口輸入的數(shù)據(jù)默認(rèn)為字符型2.選擇分支結(jié)構(gòu)格式:IF<條件表達(dá)式><語(yǔ)句序列1>ELSE<語(yǔ)句序列2>ENDIFPage532.7程序設(shè)計(jì)基礎(chǔ)條件分支結(jié)構(gòu)(if語(yǔ)句)2.選擇分支結(jié)構(gòu)Page532.7程序設(shè)計(jì)基礎(chǔ)條件表達(dá)式IF語(yǔ)句序列1語(yǔ)句序列2ENDIF.T..F.條件分支結(jié)構(gòu)(if語(yǔ)句)2.選擇分支結(jié)構(gòu)Page532.7程序設(shè)計(jì)基礎(chǔ)例:根據(jù)變量X的正負(fù)符號(hào)情況決定變量Y的值為1或-1:
accept"請(qǐng)輸入數(shù)字X的值:"toXIFval(X)>0Y=1ELSEY=-1ENDIF?Y條件分支結(jié)構(gòu)(if語(yǔ)句)Page532.7程序設(shè)計(jì)基礎(chǔ)例:查找姓名是“王一平”的教師,顯示其工號(hào)、姓名、性別
usejslocateforxm='王一平'iffound()displaygh,xm,xb
endifuseDisplay顯示記錄指針?biāo)赣涗洍l件分支結(jié)構(gòu)(if語(yǔ)句)Page532.7程序設(shè)計(jì)基礎(chǔ)例:查找姓名是“王一平”的教師,如找到,顯示其工號(hào)、姓名、性別,如沒(méi)有找到,顯示“查無(wú)此人”
usejslocateforxm='王一平'iffound()displaygh,xm,xbelse@12,6say'查無(wú)此人'
endifuse屏幕輸出格式命令:@<行,列>say<表達(dá)式>條件分支結(jié)構(gòu)(if語(yǔ)句)Page532.7程序設(shè)計(jì)基礎(chǔ)條件分支結(jié)構(gòu)(case語(yǔ)句)格式:DOCASECASE<條件表達(dá)式1><語(yǔ)句序列1>
…CASE<條件表達(dá)式N><語(yǔ)句序列N>[OTHERWISE<語(yǔ)句序列N+1>]ENDCASE條件1DOCASEENDCASE語(yǔ)句序列1其他語(yǔ)句序列語(yǔ)句序列2條件2語(yǔ)句序列n條件n…Page532.7程序設(shè)計(jì)基礎(chǔ)條件分支結(jié)構(gòu)(case語(yǔ)句)注意事項(xiàng)從第一個(gè)CASE開始,計(jì)算條件表達(dá)式的值,若某個(gè)表達(dá)式結(jié)果為.T.,則執(zhí)行相應(yīng)的語(yǔ)句組,然后跳過(guò)以后的語(yǔ)句,直到ENDCASE后繼續(xù)執(zhí)行。如果所有的條件表達(dá)式值都為.F.,則執(zhí)行OtherWise部分的語(yǔ)句組,然后執(zhí)行ENDCASE后的語(yǔ)句。CASE語(yǔ)句只執(zhí)行第一個(gè)符合條件的語(yǔ)句組。Page542.7程序設(shè)計(jì)基礎(chǔ)條件分支結(jié)構(gòu)(case語(yǔ)句)例1:判斷系統(tǒng)當(dāng)前日期是星期幾.Page542.7程序設(shè)計(jì)基礎(chǔ)today=DOW(DATE())DOCASE
CASEtoday=1 weekday="星期天"
CASEtoday=2 weekday="星期一"
CASEtoday=3 weekday="星期二"
CASEtoday=4 weekday="星期三"
CASEtoday=5
weekday="星期四"
CASE
today=6
weekday="星期五"
CASE
today=7 weekday="星期六"ENDCASE?"今天是"+weekdayPage522.7程序設(shè)計(jì)基礎(chǔ)順序
由語(yǔ)句行組成,執(zhí)行時(shí)語(yǔ)句順序執(zhí)行分支
根據(jù)條件表達(dá)式的值執(zhí)行不同的操作If語(yǔ)句case語(yǔ)句
程序結(jié)構(gòu)Delta=b*b-4*a*cDOCASE
CASE
delta>0?"方程有兩個(gè)不等的實(shí)數(shù)根:" ??(-b+sqrt(delta))/(2*a)??(-b-sqrt(delta))/(2*a)CASE
delta=0?"方程有兩個(gè)相等的實(shí)數(shù)根:"??-b/(2*a)CASE
delta<0?"方程無(wú)實(shí)數(shù)根"ENDCASEPage542.7程序設(shè)計(jì)基礎(chǔ)例2:根據(jù)一元二次方程的系數(shù)a,b,c,判斷方程根IF…ENDIF與DOCASE…ENDCASE必須配對(duì)使用條件表達(dá)式-其值必須是邏輯值語(yǔ)句行序列-可以是一個(gè)或多個(gè)命令組成,也可以是條件控制語(yǔ)句組成的嵌套結(jié)構(gòu)DOCASE…ENDCASE每次只能執(zhí)行一個(gè)對(duì)應(yīng)的語(yǔ)句序列,若多個(gè)條件為真,則執(zhí)行第一個(gè)后,執(zhí)行ENDCASE后的語(yǔ)句注意:2.分支結(jié)構(gòu)Page532.7程序設(shè)計(jì)基礎(chǔ)Page542.7程序設(shè)計(jì)基礎(chǔ)循環(huán)結(jié)構(gòu)
循環(huán)語(yǔ)句使同一個(gè)語(yǔ)句組根據(jù)一定的條件執(zhí)行若干次FOR……ENDFORDOWHILE……ENDDOSCAN……ENDSCAN1.FOR…ENDFOR循環(huán)語(yǔ)句適用場(chǎng)合:循環(huán)次數(shù)已知格式:FOR
<循環(huán)變量>=<初值>
TO
<終值>[STEP<步長(zhǎng)>]<語(yǔ)句組>ENDFOR/NEXTPage552.7程序設(shè)計(jì)基礎(chǔ)循環(huán)結(jié)構(gòu)循環(huán)體Page552.7程序設(shè)計(jì)基礎(chǔ)執(zhí)行流程循環(huán)變量在初值與終值之間?FOR初值賦給循環(huán)變量執(zhí)行循環(huán)體循環(huán)變量=循環(huán)變量+步長(zhǎng)ENDFOR.T..F.例1:計(jì)算S=1+2+……+100
S=0&&用于存放累加和
FORI=1TO100STEP1S=S+I
ENDFOR?SPage552.7程序設(shè)計(jì)基礎(chǔ)1.FOR…ENDFOR循環(huán)語(yǔ)句100以內(nèi)的奇數(shù)和、偶數(shù)和?例2:計(jì)算S=1*2*……*100
P=1&&用于存放累乘積
FORI=1TO100P=P*IENDFOR?“100的階乘=",allt(str(p))Page552.7程序設(shè)計(jì)基礎(chǔ)1.FOR…ENDFOR循環(huán)語(yǔ)句例3:計(jì)算N的階乘
Accept"N="toNP=1&&用于存放累乘積
FORI=1TOval(N)P=P*IENDFOR?N,"的階乘=",allt(str(p))Page552.7程序設(shè)計(jì)基礎(chǔ)1.FOR…ENDFOR循環(huán)語(yǔ)句例4:計(jì)算P=3*5*7*9*11*……*25
P=1FORI=3TO25STEP2P=P*IENDFOR?allt(str(p))Page552.7程序設(shè)計(jì)基礎(chǔ)1.FOR…ENDFOR循環(huán)語(yǔ)句注意事項(xiàng)FOR與ENDFOR/NEXT必須成對(duì)出現(xiàn),缺一不可步長(zhǎng)可正可負(fù)可省略(缺省時(shí)為1)。當(dāng)初值大于終值時(shí),步長(zhǎng)為負(fù)數(shù)例如:
FORi=10to1step-4??iENDFORPage552.7程序設(shè)計(jì)基礎(chǔ)2.DOWHILE…ENDDO循環(huán)語(yǔ)句適用條件:循環(huán)次數(shù)未知格式:DOWHILE<條件表達(dá)式><語(yǔ)句組>ENDDOPage552.7程序設(shè)計(jì)基礎(chǔ)循環(huán)結(jié)構(gòu)循環(huán)體執(zhí)行流程條件表達(dá)式執(zhí)行循環(huán)體DOWHILE.T..F.ENDDO循環(huán)體中要有使得條件表達(dá)式最終為.F.的語(yǔ)句或通過(guò)EXIT強(qiáng)制退出Page562.7程序設(shè)計(jì)基礎(chǔ)循環(huán)語(yǔ)句常用的條件表達(dá)式DOWHILEX>5DOWHILE.NOT.BOF():記錄指針不在文件頭時(shí)為.T.DOWHILEBOF():記錄指針在文件頭時(shí)為.T.DOWHILE.NOT.EOF():記錄指針未到文件尾部DOWHILEEOF():記錄指針已到文件尾部DOWHILE.T.:
永真循環(huán),死循環(huán),需強(qiáng)制退出Page562.7程序設(shè)計(jì)基礎(chǔ)例1:計(jì)算S=1+2+……+100I=1S=0DOWHILE
I<=100
S=S+II=I+1ENDDO?SPage562.7程序設(shè)計(jì)基礎(chǔ)2.DOWHILE…ENDDO循環(huán)語(yǔ)句100以內(nèi)的奇數(shù)和、偶數(shù)和?例2:將ASC字符組成的字符串反序顯示變量c變量pabcdeffedcbaLEFT(c,1)SUBSTR(c,2)c=+pp=LEN(c)=0退出循環(huán)!循環(huán)條件?LEN(c)>0Page562.7程序設(shè)計(jì)基礎(chǔ)2.DOWHILE…ENDDO循環(huán)語(yǔ)句Store"abcdef"tocP=space(0)DoWhile
LEN(c)>0P=LEFT(c,1)+Pc=SUBSTR(c,2)Enddo?PPage562.7程序設(shè)計(jì)基礎(chǔ)2.DOWHILE…ENDDO循環(huán)語(yǔ)句例3:統(tǒng)計(jì)教師表中女教師的人數(shù)USEjsrs=0DOWHILE
.NOT.EOF()
IF
js.xb="女"
rs=rs+1
ENDIF
SKIPENDDO@2,10SAY"女教師的人數(shù):"@2,30SAYrsUSEPage562.7程序設(shè)計(jì)基礎(chǔ)2.DOWHILE…ENDDO循環(huán)語(yǔ)句3.SCAN…ENDSCAN循環(huán)語(yǔ)句適用條件:僅用于處理表中的記錄格式:
SCAN[<范圍>][FOR<條件>]<語(yǔ)句組>ENDSCAN循環(huán)控制條件:EOF()的值Page562.7程序設(shè)計(jì)基礎(chǔ)循環(huán)結(jié)構(gòu)例1:掃描JS表中全部記錄,顯示女教師的工號(hào)和姓名。USEJSSCAN
FORXB="女" ?JS.GH,JS.XMENDSCANPage562.7程序設(shè)計(jì)基礎(chǔ)3.SCAN…ENDSCAN循環(huán)語(yǔ)句USEJSDOWHILE
NOTEOF()
IFXB="女" ?JS.GH,JS.XM
ENDIF
SKIPENDDO上頁(yè)的SCAN部分與下面的語(yǔ)句等價(jià):Page562.7程序設(shè)計(jì)基礎(chǔ)例2:掃描JS表中全部記錄,逢記錄號(hào)為雙號(hào)的,顯示其工號(hào)和姓名。USEJSSCAN
FORRECNO()%2=0 ?JS.GH,JS.XMENDSCANPage562.7程序設(shè)計(jì)基礎(chǔ)3.SCAN…ENDSCAN循環(huán)語(yǔ)句循環(huán)結(jié)構(gòu)中的EXIT命令和LOOP命令執(zhí)行EXIT語(yǔ)句,不管程序執(zhí)行到什么位置,都強(qiáng)制退出循環(huán),使程序轉(zhuǎn)去執(zhí)行ENDDO/ENDSCAN/ENDFOR后面的部分。執(zhí)行LOOP語(yǔ)句,直接跳過(guò)本次循環(huán)中剩余的語(yǔ)句,使程序轉(zhuǎn)去執(zhí)行下一次循環(huán)。DOWHILE循環(huán),跳到條件表達(dá)式FOR和SCAN循環(huán),跳到計(jì)算增量的部分Page572.7程序設(shè)計(jì)基礎(chǔ)例,求1~100之間非3的倍數(shù)的所有奇數(shù)之和
S=0 FORI=1TO100STEP2
IFMOD(I,3)=0 LOOP ENDIF
S=S+I ENDFOR?SPage572.7程序設(shè)計(jì)基礎(chǔ)LOOP命令(短路語(yǔ)句):跳出本次循環(huán)例,隨機(jī)產(chǎn)生一個(gè)要求在70~80之間的數(shù)
DoWhile.t. x=rand()*100
ifx>70andx<80exit
endif
Enddo?xEXIT命令(循環(huán)退出語(yǔ)句)Page572.7程序設(shè)計(jì)基礎(chǔ)4、結(jié)構(gòu)的嵌套所謂嵌套就是在一種程序結(jié)構(gòu)中包含另一種程序結(jié)構(gòu)控制結(jié)構(gòu)相互間可以嵌套Page572.7程序設(shè)計(jì)基礎(chǔ)Page542.7程序設(shè)計(jì)基礎(chǔ)循環(huán)結(jié)構(gòu)
循環(huán)語(yǔ)句使同一個(gè)語(yǔ)句組根據(jù)一定的條件執(zhí)行若干次FOR……ENDFORDOWHILE……ENDDOSCAN……ENDSCAN循環(huán)結(jié)構(gòu)中的EXIT命令和LOOP命令Page572.7程序設(shè)計(jì)基礎(chǔ)2.7.3過(guò)程和用戶自定義函數(shù)(UDF)將經(jīng)常執(zhí)行的功能對(duì)應(yīng)的一段代碼獨(dú)立出來(lái),創(chuàng)建一個(gè)過(guò)程或函數(shù)(代碼量、維護(hù))過(guò)程
PROCEDURE
過(guò)程名語(yǔ)句組
[return[eExpression]]
ENDPROC函數(shù)
FUNCTION
函數(shù)名語(yǔ)句組
[return[eExpression]]
ENDFUNC向過(guò)程或函數(shù)傳遞參數(shù)使過(guò)程和函數(shù)可以接受參數(shù)第一個(gè)可執(zhí)行語(yǔ)句必須為:
PARAMETERS參數(shù)表最多可傳遞27個(gè)參數(shù),用逗號(hào)分隔Page582.7程序設(shè)計(jì)基礎(chǔ)2.7.3過(guò)程和用戶自定義函數(shù)(UDF)從過(guò)程或函數(shù)得到返回值用RETURN語(yǔ)句返回一個(gè)值給調(diào)用程序;省略RETURN,其缺省的返回值為真(.T.)過(guò)程和函數(shù)的調(diào)用DO過(guò)程名/函數(shù)名過(guò)程名/函數(shù)名()調(diào)用時(shí)使用參數(shù)
DO過(guò)程名/函數(shù)名WITH
...
(無(wú)返回值)
過(guò)程名/函數(shù)名(...
)
Page592.7程序設(shè)計(jì)基礎(chǔ)2.7.3過(guò)程和用戶自定義函數(shù)(UDF)Page582.7程序設(shè)計(jì)基礎(chǔ)2.7.3過(guò)程和用戶自定義函數(shù)(UDF)例1:定義一個(gè)函數(shù)ntoc,當(dāng)傳遞給一個(gè)0~9之間的數(shù)字時(shí),返回一個(gè)中文的”零~九”.FUNCTION
ntoc
PARAMETERSi
cString="零一二三四五六七八九"
RETURN
substr(cString,i*2+1,2)ENDFUNCModi
comm
ntoc執(zhí)行?ntoc(3)例2:將日期型數(shù)據(jù)轉(zhuǎn)換為形如“xxxx年xx月xx日”的中文日期字符串在命令窗口鍵入命令Modi
comm
dtocc輸入以下程序段FUNCTION
dtocc
PARAMETERSdeDate
cYear=str(year(deDate),4)+"年"
cMonth=str(month(deDate),2)+"月"
cDay=str(day(deDate),2)+"日"
RETURN
cYear-cMonth-cDayENDFUNC按<ctrl>+w保存程序,返回到命令狀態(tài)執(zhí)行?dtocc(date())Page592.7程序設(shè)計(jì)基礎(chǔ)過(guò)程或自定義函數(shù)存儲(chǔ)方式位于程序文件的最后每一個(gè)保存在一個(gè)單獨(dú)文件中多個(gè)保存在一個(gè)單獨(dú)文件中若函數(shù)或過(guò)程存在于單獨(dú)文件(過(guò)程文件)中,則應(yīng)使用如下命令訪問(wèn):SETPROCEDURETO過(guò)程文件名Page592.7程序設(shè)計(jì)基礎(chǔ)2.7.3過(guò)程和用戶自定義函數(shù)(UDF)Input"請(qǐng)輸入圓的半徑:"tor?"圓的面積為:",erea(r)Function
erea
ParametersiPI=3.14159S=PI*i*i
returnS
EndfuncPage592.7程序設(shè)計(jì)基礎(chǔ)例3下列程序通過(guò)調(diào)用函數(shù)erea()來(lái)計(jì)算圓的面積Input[提示信息]to<內(nèi)存變量>
將從鍵盤輸入的數(shù)據(jù)賦值給內(nèi)存變量,input可以接收任何類型的數(shù)據(jù)位于程序文件的最后s=0FORi=1TO5s=s+fjC(i)ENDFOR?sFUNCTION
fjC
PARAMETERSxp=1FORn=1TOxp=p*nENDFOR
RETURNpENDFUNC例4下列程序用于計(jì)算s=1!+2!+3!+4!+5!Page592.7程序設(shè)計(jì)基礎(chǔ)位于程序文件的最后Wait"請(qǐng)輸入你的選擇:(1~3)"totbDOCASE
CASE
tb="1"
usejs brow
CASE
tb="2"
usexs brow
CASE
tb="3"
usecj brow
ENDCASE例5:根據(jù)選擇打開不同的表(optb1.prg)Page592.7程序設(shè)計(jì)基礎(chǔ)wait命令--顯示信息并暫停VisualFoxPro的執(zhí)行,按某個(gè)鍵或單擊鼠標(biāo)后繼續(xù)執(zhí)行。Wait"請(qǐng)輸入你的選擇:(1~3)"totbDOCASE
CASE
tb="1"
dojs1
CASE
tb="2"
doxs1CASE
tb="3"
docj1
ENDCASEusejsbrowJs1.prgxs1.prgusexsbrowusecjbrowcj1.prg例5:根據(jù)選擇打開不同的表(optb1.prg)Page592.7程序設(shè)計(jì)基礎(chǔ)每一個(gè)保存在一個(gè)單獨(dú)文件中SetproceduretojsxscjWait"請(qǐng)輸入你的選擇:(1~3)"totbDOCASE
CASE
tb="1"
dojs2CASE
tb="2"
doxs2
CASEtb="3"
docj2
ENDCASEJsxscj.prgProcJs2usejsBrowendprocProcxs2usexsBrowendprocProccj2usecjBrowendproc例5:根據(jù)選擇打開不同的表(optb2.prg)多個(gè)保存在一個(gè)單獨(dú)文件中2.7程序設(shè)計(jì)基礎(chǔ)
一、VFP程序設(shè)計(jì)概述
二、順序結(jié)構(gòu)
三、分支結(jié)構(gòu)
四、循環(huán)結(jié)構(gòu)
五、過(guò)程和用戶自定義函數(shù)Page512.7程序設(shè)計(jì)基礎(chǔ)2.7程序設(shè)計(jì)基礎(chǔ)IF……ENDIF語(yǔ)句2.7程序設(shè)計(jì)基礎(chǔ)練習(xí)題
由鐵路托運(yùn)行李,設(shè)每張車票托運(yùn)行李不超過(guò)50kg時(shí),運(yùn)費(fèi)為0.8元/kg,如果超過(guò)50kg,則超過(guò)部分的運(yùn)費(fèi)為1.2元/kg,編寫程序,要求給出行李重量W,計(jì)算應(yīng)繳納運(yùn)費(fèi)X.計(jì)算公式:X=0.8×WW≤50KG0.8×50+1.2×(W-50)W>50KG2.7程序設(shè)計(jì)基礎(chǔ)IF……ENDIF語(yǔ)句2.7程序設(shè)計(jì)基礎(chǔ)練習(xí)題Input"請(qǐng)輸入行李的重量:"toWIFW<=50X=0.8*WELSEX=0.8*50+1.2*(W-50)ENDIF?"托運(yùn)費(fèi)用為:",X2.7程序設(shè)計(jì)基礎(chǔ)DOCASE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書講座系列策劃方案計(jì)劃
- 班級(jí)工作計(jì)劃順利推進(jìn)
- 2025年離合器主缸項(xiàng)目合作計(jì)劃書
- 2025年高密度聚乙烯土工膜合作協(xié)議書
- 綠色建筑項(xiàng)目2024年合作意向書
- 金融科技公司風(fēng)控系統(tǒng)設(shè)計(jì)與優(yōu)化措施研究報(bào)告
- 消防維修工程合同協(xié)議書
- 房地產(chǎn)營(yíng)銷合作項(xiàng)目協(xié)議書
- 工業(yè)機(jī)器人班級(jí)文化建設(shè)方案設(shè)計(jì)
- 季度市場(chǎng)營(yíng)銷工作計(jì)劃與執(zhí)行步驟
- 小升初、小學(xué)生滿分優(yōu)秀作文匯編100篇
- 次聲波在臨床醫(yī)學(xué)及麻醉中的作用 次聲波在臨床麻醉中的作用
- 2022年云南省中考數(shù)學(xué)試題及答案解析
- 完整版新能源汽車充電站應(yīng)急預(yù)案
- TS16949五大工具:SPC
- 五年級(jí)下冊(cè)-綜合實(shí)踐教案
- 貴州出版社小學(xué)五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案全冊(cè)
- 依據(jù)FEM9851所作堆垛機(jī)循環(huán)時(shí)間計(jì)算
- 牛津大學(xué)劍橋大學(xué)介紹課件
- 胎心監(jiān)護(hù)及判讀學(xué)習(xí)教案
- SAP-ABAP-實(shí)用培訓(xùn)教程
評(píng)論
0/150
提交評(píng)論