VFox程序設(shè)計電子教案_第1頁
VFox程序設(shè)計電子教案_第2頁
VFox程序設(shè)計電子教案_第3頁
VFox程序設(shè)計電子教案_第4頁
VFox程序設(shè)計電子教案_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VFox程序設(shè)計(專升本)但愿她是你知識大廈的又一塊基石。但愿她是開啟你智慧的又一把鑰匙!電子教案2目 錄VFox基本知識控制結(jié)構(gòu)及程序設(shè)計應(yīng)用舉例3clears=0for i=1 to 100 s=s+iendfor? “s=”,sreturn 例1 編程求 1+2+3+100第一講 VFox基本知識初始化部分數(shù)據(jù)處理(循環(huán))部分輸出部分結(jié)束語句 程序:是計算機能夠分析執(zhí)行的命令序列的集合。 程序設(shè)計:是計算機用戶將解決某一實際問題所用的命令按一定的邏輯順序編制成程序,并以文件的形式存放于磁盤的過程。執(zhí)行程序時,計算機按順序自動執(zhí)行程序文件中的命令。1.1 程序的概念4字符型:英文、漢字、數(shù)

2、字、空格和標(biāo)點符等組成的一串字符 數(shù)值型:由數(shù)字0-9以及正負號(+和-)和小數(shù)點(.)組成。 邏輯型:存入的值為真(T)和假(F)兩種狀態(tài),長度固定為1位1.2 VFox語言基礎(chǔ)數(shù)據(jù)類型數(shù)值型(常數(shù)):如12、3.1345、-6.78、5.87E12 。 字符型(字符串):其表示方法用定界符將字符串括起來,定界符有、 和 。注意,這些定界符必須配對使用, 邏輯型:用.Y.、.y.或.T.、.t.表示邏輯真值,用.N.、.n.或.F.、.f.表示邏輯假值,邏輯型數(shù)據(jù)只占一個字節(jié)。 常量內(nèi)存變量:是一種臨時變量,是在程序執(zhí)行中用于存放臨時數(shù)據(jù)(中間結(jié)果或最終結(jié)果)的內(nèi)存工作單元。他具有字符型、數(shù)

3、值型、日期型、邏輯型和屏幕型5種數(shù)據(jù)類型。 數(shù)組變量:具有相同名稱而下標(biāo)不同的一組有序內(nèi)存變量。允許定義一維和二維數(shù)組,數(shù)組在使用之前需要先定義。變量5運算符:用來進行運算的符號;表達式:是指用運算符將變量、數(shù)組元素、常量、函數(shù)連接組合得到的一組有物理意義的式子。表達式分為算術(shù)表達式、字符表達式、關(guān)系表達式和邏輯表達式4類。表達式和常量一樣,是具有數(shù)據(jù)類型的數(shù)據(jù)(求值之后),因此一個表達式中的各項必須具有相同類型。運算符及表達式算術(shù)運算符:( ) *或 % 模數(shù)(除法的余數(shù)) *、/ +、- 算術(shù)表達式:10+3*4-15 12*2 x3/y+a%5 表達式求值時,先按運算符的優(yōu)先級別高低次序

4、執(zhí)行. 字符表達式:完全連接“+” 不完全連接“-” 包含運算“$” “I have a ” +“Book” “計算機 ”-“ 世 界 “ABC”$“abcdef” 關(guān)系運算符: = = = ,!=,#關(guān)系表達式: 1244.33=a(2) abb A B 邏輯運算符: !, NOT 或 .NOT. OR 或 .OR. AND 或 .AND.邏輯表達式: x5 OR y10 .T.或者.F.,取決于x,y的值6取整函數(shù): INT()功能:將數(shù)值表達式的值去掉小數(shù)部分取其整數(shù)(只舍不入)求余函數(shù): MOD(,)功能:返回除以所得的余數(shù)。 取子串函數(shù): SUBSTR(,)功能: 從指定表達式值的指

5、始位置取指定長度的字符串作為函數(shù)值。字符串轉(zhuǎn)換為數(shù)值函數(shù): VAL()功能: 將數(shù)字字符串(包括正負號、小數(shù)點)轉(zhuǎn)換為相應(yīng)的數(shù)值型數(shù)據(jù)。數(shù)值轉(zhuǎn)換成字符串函數(shù): STR(,)功能: 將的值轉(zhuǎn)換成字符串,轉(zhuǎn)換時根據(jù)需要自動四舍五入。常用函數(shù)7補充:隨機函數(shù)RAND 格式:RAND(N) 功能:系統(tǒng)產(chǎn)生一個純小數(shù)(01) N=0每次產(chǎn)生一個不同的純小數(shù),默認為0 0N=1每次產(chǎn)生一個相同的純小數(shù) 例:隨機生成一個60到250內(nèi)的整數(shù)。 ? Int(60+rand()*190) 隨機生成兩個兩位整數(shù),并相減。 a=(10+Int(rand()*90) b= (10+Int(rand()*90) ? a

6、-b81.3 Vfox程序設(shè)計基本語句賦值語句格式: STORE TO | 或:|=賦值語句格式 :DIME (),(,) 如:DIME A(2), B(2,2) 表示數(shù)組A有兩個元素,分別是A(1)和A(2)。數(shù)組B有4個元素,分別為B(1,1),B(1,2),B(2,1),B(2,2)。引用:數(shù)組中每個有序變量構(gòu)成數(shù)組的成員,稱之為數(shù)組元素。數(shù)組元素的名稱使用數(shù)組名和用括號括起來的下標(biāo)組成。數(shù)組下標(biāo)可以是常量、變量和表達式,如A(l),A(b1),A(a+b);數(shù)組的第一個下標(biāo)是1,也就是說數(shù)組下標(biāo)是從1開始的;數(shù)組定義語句格式:?|? 功能:先計算各表達式值(逗號間隔)并按標(biāo)準(zhǔn)格式輸出結(jié)

7、果.? 表示先顯示輸出,后回車換行;? 表示不回車換行輸出;顯示輸出語句9格式:INPUT TO |功能:在屏幕上顯示,并等待用戶從鍵盤上輸入表達式,再把表達式的值賦給指定的。說明: 可接受任何類型的表達式的值。 選項省略時,屏幕上無提示信息而直接等待用戶的輸入。例如:PName=“張三”INPUT “請輸入姓名為”+Pname+“的學(xué)生成績:” TO SCORE若接收字符型常量,則需要把該常量兩邊的定界符同時輸入。若接收表達式,則得到的值為該表達式計算后的值。 INPUT輸入語句格式:ACCEPT TO |功能:在屏幕上顯示,等待用戶從鍵盤上輸入,再把輸入內(nèi)容作為字符串常量賦值給指定的變量。

8、只能接受字符型數(shù)據(jù)。接受的字符型數(shù)據(jù)在輸入時不需要加定界符。 ACCEPT輸入語句 其它語句 clear 清屏 retrun返回 cancel 終止10第二講 控制結(jié)構(gòu)及程序設(shè)計應(yīng)用舉例程序流程圖:以特定的圖形符號加上說明,表示算法的圖,稱為流程圖或框圖。規(guī)則:從上到下,從左到右。符號及其意義:流程線處理框判斷框I/O框順序結(jié)構(gòu):就是計算機要按照程序中語句出現(xiàn)的先后次序依次執(zhí)行各條語句的結(jié)構(gòu)。順序結(jié)構(gòu)是程序設(shè)計中最常見、使用最多的結(jié)構(gòu)。 2.1 順序結(jié)構(gòu)clearinput “請輸入圓的半徑:” to r s=3.14159*r*r? “圓面積s=”, sreturn 例2 編程求圓面積AB入

9、口出口112.2 選擇結(jié)構(gòu)條件判斷 雙(單)分支選擇格式:IF THEN ELSE EDNIF條件真序列1假序列2入口出口說明:IF和ENDIF必須成對出現(xiàn),否則程序?qū)o法執(zhí)行。在IFELSEENDIF中,還可嵌套IFELSEENDIF命令。例3 判斷某一年是否是潤年。clearinput “請輸入年份:” to yif y/4=int(y/4) .and. y/100int(y/100) .or. y/400=int(y/400) ?y,”是閏年”else ?y,”不是閏年”endifcancel潤年條件:如是潤年則能被4整除但不能被100整除,或能被400整除。 12多分支選擇格式:DO

10、CASE CASE 邏輯表達式1 命令序列1 CASE 邏輯表達式2 命令序列2 CASE 邏輯表達式n 命令序列N OTHERWISE 命令序列ENDCASE邏1真序列1假邏2真序列2出口假邏n真序列N假序列說明:從第一個條件開始,當(dāng)找到一個邏輯表達式的值為.T.時,就執(zhí)行緊跟其后的命令序列,直到下一個CASE或者ENDCASE語句為止,并跳出DO CASE語句。如果所有CASE語句后的邏輯表達式的值都為.F.,此時,如果有OTHERWISE子句,則執(zhí)行OTHERWISE后面的命令序列。如果沒有OTHERWISE子句,就退出該結(jié)構(gòu)執(zhí)行EDNCASE語句后面的語句,如圖所示。13例4 輸入一個

11、成績,將百分制轉(zhuǎn)化為五分制。 CLEARINPUT “請輸入學(xué)生成績:” TO scDO CASE CASE sc=90 ? “優(yōu)秀” CASE sc=80 ? “良好” CASE sc=70 ? “中等” CASE sc=60 ? “及格” OTHERWISE ? “不及格”ENDCASEcancel142.3 循環(huán)結(jié)構(gòu)程序經(jīng)常會重復(fù)執(zhí)行某些相同的操作,如:求:s=1+2+3+4+100算法描述:s=0;i=1;s+=i; i+;判斷i是否小于等于100 如果i小于等于100,重復(fù); 否則,結(jié)束。 此類根據(jù)某個條件重復(fù)執(zhí)行相同算法的結(jié)構(gòu),稱為循環(huán)。初始化部分循環(huán)體,含有趨假的語句循環(huán)條件,循

12、環(huán)應(yīng)在有限次完成clears=0for i=1 to 100 s=s+iendfor? “s=”,sreturn 程序:15當(dāng)循環(huán)DO WHILE LOOP EXITENDDO功能:根據(jù)的值決定是否執(zhí)行DO WHILEENDDO之間的命令序列(這個序列稱為循環(huán)體),如果邏輯表達式的值為.T.,則執(zhí)行循環(huán)體,否則退出循環(huán),如圖所示。條件真循環(huán)體語句LOOPEXIT假含有使條件趨假的語句cleari=1s=0do while i=100 s=s+i i=i+1enddo? “s=”, sreturn 用當(dāng)循環(huán)改寫例1程序16FOR循環(huán)FOR TO STEP EXIT &無條件退出循環(huán) LOOP &

13、無條件返回到FOR循環(huán)體的開始位置ENDFOR|NEXTii超過終值否循環(huán)體loopexiti=i+步長是功能:當(dāng)FOR后的在和之間時,執(zhí)行FOR與ENDFOR之間的循環(huán)體,如果的值超過時退出循環(huán);STEP后的步長為的增加幅度,每執(zhí)行一次循環(huán),的值就自動增加一個步長,當(dāng)STEP省略時,默認步長為1。當(dāng)在執(zhí)行FOR循環(huán)體中的語句遇到LOOP時,無條件回到FOR循環(huán)的開始位置,遇到EXIT時,無條件退出循環(huán),執(zhí)行ENDFOR后面的語句。 17例5 輸入10個自然數(shù),統(tǒng)計其中偶數(shù)的個數(shù)及偶數(shù)值。clearis=0ic=0For i=1 to 10 input “請輸入第”+str(i,2)+“個數(shù):

14、” to x if i%2=0 is=is+x ic=ic+1 endifendfor?”偶數(shù)個數(shù)為:”, ic?”偶數(shù)之和為:”, iscancel18例6 求100到200之間的所有素數(shù)(只能被1和自身整除的數(shù))。clear?“100200間的素數(shù)有:“ for k=101 to 200 step 2 f=0 for j=2 to int(sqrt(k) if k % j=0 f=1 exit endif endfor if f=0 ? k endifendfor如:設(shè)置變量f用于記錄是否為素數(shù), f=0是素數(shù); f=1不是素數(shù)。在程序設(shè)計中,經(jīng)常要記錄一些狀態(tài),作為判斷的條件。因此需要在

15、程序中設(shè)置一些標(biāo)志,通常標(biāo)志是整型變量。多重循環(huán)結(jié)構(gòu)多重循環(huán)結(jié)構(gòu):是指循環(huán)體中又包含其它循環(huán)的復(fù)雜程序結(jié)構(gòu)。 19排序算法例7 選擇排序程序(降序):clearinput “請輸入數(shù)據(jù)個數(shù): to ndime x(n)for k=1 to n input “請輸入第”+str(k,2)+“個數(shù)據(jù): to x(k)endfor for i=1 to n-1 for j=i+1 to n if x(i)x(j) temp=x(i) x(i)=x(j) x(j)=temp endif endfor endfor ? ”排序后數(shù)據(jù):”for i=1 to n ? x(i), endfor 外層循環(huán)i變

16、化內(nèi)層循環(huán)j變化比較交換排序是將一組隨機排放的數(shù)按從大到小或從小到大重新排列。20選擇排序的改進 選擇排序改進算法的基本思路,每輪排序?qū)(i)假定為極,每次在x(i)到 x(max)中找出其極值,記錄其位置,最后讓極值位置的元素與x(i)交換。保證每輪排序只有一次交換,且為有效的交換!clearinput “請輸入數(shù)據(jù)個數(shù): to ndime x(n)for k=1 to n input “請輸入第”+str(k,2)+“個數(shù)據(jù): to x(k)endfor for i=1 to n-1 k=i for j=i+1 to n if x(k)x(j) k=j endif endfor if ki temp=x(i) x(i)=x(k) x(k)=temp endif endfor ? ”排序后數(shù)據(jù):”for i=1 to n ? x(i), endfor 排序循環(huán)假定最大值位置循環(huán)比較找出最大值位置與本次比較的第一個元素交換21cleastore 0 to max,mininput

溫馨提示

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

最新文檔

評論

0/150

提交評論