- Visual FoxPro 程序設計實驗教程
- 孫瑜
- 1804字
- 2020-09-11 09:55:32
實驗1 Visual FoxPro中的數據與運算
一、實驗目的
1.熟悉Visual FoxPro 6.0主窗口。
2.掌握內存變量的賦值和顯示方法。
3.熟悉數組的定義和賦值。
4.掌握表達式的計算方法。
5.掌握常用函數的使用方法。
二、實驗內容
實驗1.1 啟動Visual FoxPro 6.0
單擊“開始”菜單,選擇“程序”|“Microsoft Visual FoxPro 6.0”“| Microsoft Visual FoxPro 6.0”命令。
問題1:如何關閉和顯現命令窗口?
實驗1.2 內存變量
1.賦值與顯示內存變量
在命令窗口輸入下列命令。
STORE 15 TO a1,a2 &&將數值15賦值給2個內存變量
xm="李強" &&將字符型數據賦值給內存變量xm
rq={^2015-06-05} &&將日期型數據值賦值給內存變量rq
團員否=.F. &&將邏輯型數據賦值給內存變量團員否
a2=a1+1 &&a1加1后再賦值給a2
?a1,a2 &&換行顯示a1,a2的值
?xm &&換行顯示xm
??rq,團員否 &&不換行顯示rq和團員否的值
LIST MEMO LIKE a? &&顯示以a開頭的內存變量信息
顯示結果參見圖1-1。
問題2:在初次賦值之后,哪些內存變量的值又發生了變化?
2.清除內存變量
在命令窗口輸入下列命令。
CLEAR &&清屏幕
RELEASE ALL LIKE a* &&清除以a開頭的所有內存變量
DISPLAY MEMO LIKE * &&顯示全部內存變量

圖1-1 內存變量的賦值、顯示操作結果
顯示結果參見圖1-2。

圖1-2 內存變量的清除操作結果
3.數組
在命令窗口輸入下列命令。
CLEAR &&清屏幕
RELEASE ALL &&清除全部內存變量
DIME a(3) &&定義數組
a(1)=10 &&給數組元素a(1)賦值
a(2)=20 &&給數組元素a(2)賦值
LIST MEMO LIKE a* &&顯示a開頭的所有內存變量
顯示結果參見圖1-3。

圖1-3 數組的定義、賦值操作結果
問題3:如果執行a(3)=a(2),請問a(2)、a(3)的值分別是多少?可以定義三維數組嗎?
4.表達式
(1)算術運算表達式
?65-(2+8)*4^2/5 &&結果為:33.00
問題4:求6+(5×3)2÷4的值,請寫出表達式和計算結果。
(2)字符運算表達式
?"更快 "+"更高"+"更強"
?"更快 "-"更高"+"更強"
顯示結果參見圖1-4。

圖1-4 字符運算操作結果
問題5:如果a="123"、b="xyz"、c="天地人",則a+b+c和a-b-c的結果各是什么?
(3)日期運算表達式
?{^2015-06-05}+10
?{^2015-06-05}-{^2014-06-05}
?{^2015/06/05 8:10}+120
顯示結果參見圖1-5。

圖1-5 日期運算操作結果
問題6:從北京奧運會開幕到今天已經過去多少天?
(4)關系運算表達式
?"a">"b","馬">"羊" &&字母、漢字比較
?6#7,"a"<>"b" &&不等號的應用
?{^2015/01/01}>{^2015/01/02} &&兩個日期比較
?"abc"$"ab","ab"$"abc" &&包含運算
?"abc"="ab","abc"=="ab" &&單等號與雙等號比較
顯示結果參見圖1-6。

圖1-6 關系運算操作結果
技巧解析:同類型數據才能比較大小。
問題7:"大"與"abcd"誰大?
(5)邏輯運算表達式
?3>6.or.5<7.and.not.T. &&結果為:.F.
技巧解析:各類運算符優先級從高到低順序是:圓括號()→算術運算→字符和日期運算→關系運算→邏輯運算。
問題8:寫出"張三"大于等于"李四"并且3不等于2的邏輯表達式和計算值。
5.常用函數
(1)數值運算函數
?INT(7.8) &&取整數函數INT()
?ROUND(45.345,2) &&四舍五入函數ROUND()
?MOD(10,3) &&求余數函數
?MAX(15,8,27),MIN(15,8,27) &&求最大、最小值函數MAX()、MIN()
?SIN(PI()/4) &&正弦函數SIN()和圓周率函數PI()
顯示結果參見圖1-7。

圖1-7 數值運算函數操作結果
問題9:求INT(8.8)和INT(8.1)的值。
(2)字符處理函數
?LEN("abc"),LEN("中國") &&求字符串長度函數LEN()
?RIGHT("abc",2) &&取右子串函數RIGHT()
?SUBSTR("china",2,3) &&取子串函數SUBSTR()
?"天"+SPACE(2)+"地" &&空格函數SPACE()
?AT("cd","abcdef"),AT("cf"," abcdef") &&求字串位置函數AT()
顯示結果參見圖1-8。

圖1-8 字符處理函數操作結果
問題10:請寫出從"dgtadastabcdagdt"字符串中截取"abc"的命令。
(3)日期時間函數
?DATE() &&系統日期函數DATE()
?YEAR({^2015/01/05}) &&求年份函數YEAR()
問題11:通過你本人的出生日期計算你現在的年齡,請寫出相應命令。
(4)轉換函數
?DTOC({^2015/06/05}) &&日期型轉換成字符型函數DTOC()
?DTOC({^2015/06/05},1) &&日期型轉換成字符型函數DTOC()
?STR(10.456,5,2) &&數值型轉換成字符型函數STR()
?VAL("10.456")+2 &&字符型轉換成數值型函數VAL()
顯示結果參見圖1-9。

圖1-9 轉換函數操作結果
問題12:如果rq={^2015/06/05},則如何將變量rq轉換成字符串"2015年6月5日"?請寫出相應命令。
(5)測試函數
API=120
?IIF(API>100,"空氣有污染","空氣質量較好")
問題13:X=90,IIF(X>100,X-50,X+50)的值是多少?
6.提高性實驗
根據下列問題,寫出相應命令及命令運行的結果。
(1)計算的值,設x=7.8,y=15.3。
(2)今天距今年的圣誕節還有多少天?
三、思考題
1.為什么要使用內存變量?清除內存變量的意義是什么?
2.Visual FoxPro 6.0有幾大類常用函數?
3.使用表達式的目的是什么?
- WildFly:New Features
- Mobile Web Performance Optimization
- 密碼學原理與Java實現
- Hands-On Image Processing with Python
- 無代碼編程:用云表搭建企業數字化管理平臺
- Redis Essentials
- C語言程序設計教程
- MySQL入門很輕松(微課超值版)
- Java零基礎實戰
- Building Wireless Sensor Networks Using Arduino
- C# and .NET Core Test Driven Development
- JSP程序設計與案例實戰(慕課版)
- 創意UI Photoshop玩轉移動UI設計
- Application Development with Parse using iOS SDK
- Python硬件編程實戰