體驗順序分支結(jié)構(gòu)程序設(shè)計(全國一等獎)-完整精講版課件_第1頁
體驗順序分支結(jié)構(gòu)程序設(shè)計(全國一等獎)-完整精講版課件_第2頁
體驗順序分支結(jié)構(gòu)程序設(shè)計(全國一等獎)-完整精講版課件_第3頁
體驗順序分支結(jié)構(gòu)程序設(shè)計(全國一等獎)-完整精講版課件_第4頁
體驗順序分支結(jié)構(gòu)程序設(shè)計(全國一等獎)-完整精講版課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、體驗順序、分支結(jié)構(gòu)程序設(shè)計第八節(jié)一、變量基礎(chǔ) VB中一個功能相對獨立的程序段一般包括三個部分,第一部分為變量提供數(shù)據(jù),第二部分進(jìn)行運(yùn)算處理,第三部分結(jié)果輸出。為使初學(xué)者能盡早進(jìn)入程序設(shè)計狀態(tài),本章就程序中第一部分和第三部分在VB下常用技術(shù)和方法進(jìn)行講述。 提供數(shù)據(jù)輸出數(shù)據(jù)消息框變量:變量本質(zhì)上是代表的是某內(nèi)存單元,而存儲在內(nèi)存單元里的值是可以改變的,故變量就是可變的量。為變量提供數(shù)據(jù)數(shù)據(jù)運(yùn)算變量輸出一、提供數(shù)據(jù)的基本方法(一)使用賦值語句 賦值語句是任何程序設(shè)計語言中最基本的語句,VB中賦值語句有兩種格式: 格式1: Let 變量名=表達(dá)式 格式2: Let 對象名.屬性名=表達(dá)式 第一種格式

2、用于給一個變量賦值,第二種用于修改對象的屬性值。先計算右邊表達(dá)式的值,再賦給左邊的變量或?qū)傩浴?說明: Let 是賦值語句的關(guān)鍵字,是一個可選項,通常省略。 表達(dá)式的類型應(yīng)與變量名的類型一致,即同時為數(shù)值型或同時為字符型。當(dāng)同時為數(shù)值型但精度不相同時,強(qiáng)制轉(zhuǎn)換。例如:iA% = 4.7(4舍5入)iA是整型變量,iA中的結(jié)果是5,當(dāng)表達(dá)式和變量的類型不同時,將出現(xiàn)編譯錯誤。 可以把字符串或數(shù)值表達(dá)式的值賦給Variant變量,但反過來不一定正確。 ! 使用賦值語句應(yīng)注意如下問題1語句格式要正確 (1) 賦值號左邊只能是變量名或?qū)ο蟮膶傩灾?,不能是函?shù)或表達(dá)式。 例如以下形式的賦值語句就是錯誤的

3、: cos(x)=y 應(yīng)為 y =os(x) 5=y 應(yīng)為 y=5 x+3=y 應(yīng)為 x=x+3 ! 使用賦值語句應(yīng)注意如下問題(2) “=”為賦值號,而不是數(shù)學(xué)上的等號。 例如,依次執(zhí)行x=1和x=3兩個語句后,變量x的值為3,這就是變量賦值具有時序性,最后一次賦值的值就是變量的值,將“=”理解為數(shù)學(xué)上的等號,結(jié)果將是不成立的。請大家深入理解三個重要模型:n=n+1 將當(dāng)前變量n的值加1后再賦給變量n (計數(shù)器原理)s=s+x 將當(dāng)前變量s的值加x后再賦給變量s (累加器原理)f=f*i 將當(dāng)前變量f的值乘i后再賦給變量f (累乘器原理)這些在數(shù)學(xué)上都是不成立的,但在程序設(shè)計中卻是非常重要的

4、。! 使用賦值語句應(yīng)注意如下問題(3) 不能在同一個賦值語句中給多個變量賦值。 如要對x,y,z三個變量賦初值均為1,則必須分別賦值。如寫成x=1: y=1: z=1的形式,也可寫成x=1: y=x: z=y的形式。但不能寫成x=y=z=1的形式。x=y=z=1表示什么意思?比較如下程序:x=2 t=xy=3 x=yx=y y=tPrint x,y print x,y! 使用賦值語句應(yīng)注意如下問題2數(shù)據(jù)類型問題 當(dāng)賦值號左邊變量類型與右邊表達(dá)式類型不一致時,分下面四種情況: (1) 若均為數(shù)值型,而類型不同時,以變量類型為準(zhǔn)。 (2) 當(dāng)變量為數(shù)值型,而表達(dá)式為數(shù)字字符串,則自動轉(zhuǎn)換成數(shù)值型再

5、賦值。當(dāng)表達(dá)式中有非數(shù)字字符或是空字符串時,出現(xiàn)“類型不匹配”。 (3) 當(dāng)變量為數(shù)值型,而表達(dá)式為邏輯型時,True轉(zhuǎn)換成-1,F(xiàn)alse轉(zhuǎn)換成0,反之,數(shù)值型數(shù)據(jù)賦給邏輯型變量時,非0轉(zhuǎn)換為True,0轉(zhuǎn)換成False。 (4) 任何非字符類型賦值給字符型變量,均自動轉(zhuǎn)換為字符型。! 使用賦值語句應(yīng)注意如下問題3變量之間的賦值與交換變量值需借助一個中間變才能進(jìn)行交換數(shù)據(jù)。程序設(shè)計中一個常見的任務(wù)是交換兩個變量的值。例如設(shè)計程序交換兩個變量的值.思考:有兩個瓶子x和y,分別裝有醋和豆油,如何交換兩個瓶子的液體?方法:借用第3個瓶子t算法:T=x:x=y:y=T設(shè)計界面:代碼:Private

6、Sub Command1_Click()x = Text1y = Text2T = xx = yy = TText1 = xText2 = yEnd Sub(二) 使用InputBox函數(shù) 在程序設(shè)計時,有時要求動態(tài)地輸入數(shù)據(jù),根據(jù)輸入的數(shù)據(jù)進(jìn)行相應(yīng)的處理。InputBox()函數(shù)是實現(xiàn)這種功能最常用的一個函數(shù)。InputBox()函數(shù)可以彈出一個對話框接由用戶從鍵輸入的信息,其使用格式為:變量=InputBox(提示信息,標(biāo)題,默認(rèn)值,x坐標(biāo),y坐標(biāo)) 其中: (1) 變量 用于指定接收輸入信息的變量。由于該函數(shù)接收的是字符串信息,因此變量如要接收數(shù)值型數(shù)據(jù)時,需要用Val( )函數(shù)將數(shù)字字

7、符串轉(zhuǎn)換成數(shù)值型數(shù)據(jù)。 (2) 提示信息 為字符串表達(dá)式,用于指明在對話框中的提示信息,一般用于對要接收的值加以說明。當(dāng)內(nèi)容太多需要多行顯示時,可在每行行末加回車Chr(13)或換行Chr(10)控制符。 (3) 標(biāo)題 是一個字符串表達(dá)式,指明窗口標(biāo)題內(nèi)容,如P63圖4-4中,由于沒有指明標(biāo)題,則顯示工程名“工程1”。 (4) 默認(rèn)值 字符串表達(dá)式。指明當(dāng)在輸入對話框中無輸入時,則該值作為輸入的內(nèi)容。 (5) x坐標(biāo)與y坐標(biāo) 整型表達(dá)式,用于指定對話框的位置(相對于屏幕左上角),若省略,則出現(xiàn)在屏幕中央。 如:x=InputBox(“請輸入你的Email信箱地址”+Chr(10)+ “請注意地

8、址應(yīng)寫完整!”),程序運(yùn)行時出現(xiàn)對話框窗口,如圖4-4所示。輸入內(nèi)容后單擊“確定”按鈕或按回車鍵,輸入的內(nèi)容就賦給變量x。標(biāo)題部分 提示信息注意: 函數(shù)中的各項參數(shù)次序必須一一對應(yīng),除了“提示”一項不能省略外,其余各項均為可選項,如果要省略某些參數(shù),則必須加入相應(yīng)的逗號分割符。 strName= InputBox$(“請輸入你的姓名然后單擊確定”, “輸入框”, , 100,100) 例 雞兔同籠問題。我們可將在程序運(yùn)行過程中,總頭數(shù)與總腳數(shù)通過InputBox函數(shù)輸入,最后結(jié)果通過Print方法直接輸出在窗體上。程序代碼可寫在窗體的Click事件中,代碼如下:Private Sub Form

9、_Click() Dim h As Integer, f As Integer, x As Integer, y % h = Val(InputBox(請輸入總頭數(shù), 雞兔同籠, 0) f = InputBox(請輸入總腳數(shù), 雞兔同籠, 0) x = (4 * h - f) / 2 y = (f - 2 * h) / 2 Print 若總頭數(shù)為 & h & ;若總腳數(shù)為 & f & 則 Print 雞有 & x & 只 Print 兔有 & y & 只End Sub結(jié)果為字符型數(shù)值型數(shù)據(jù)(三) 使用文本框 在程序運(yùn)行時為變量提供數(shù)據(jù),除了使用InputBox函數(shù)外,還有應(yīng)用最廣泛的是使用文本

10、框,將文本框的Text屬性的值賦給給變量,格式為:變量名=對象名.Text其作用是將文本框的值賦給某一變量。同InputBox函數(shù)一樣,文本框的值也是字符型數(shù)據(jù)。在應(yīng)用中,若要得到數(shù)值型數(shù)據(jù),可通過轉(zhuǎn)化函數(shù)Val將字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型。二、輸出數(shù)據(jù)的基本方法1.通過Print方法輸出到窗體2.通過print方法輸出到圖片框 3.通過標(biāo)簽(Label)輸出結(jié)果通過Print方法輸出到窗體 關(guān)于Print方法,我們在前面已經(jīng)使用過,使用Print方法控制輸出位置最常用的是兩個函數(shù):Tab()函數(shù)和Spc()函數(shù)1. Tab(n)函數(shù) 在Print方法中,Tab(n)是用于確定輸出項列位置的函數(shù),

11、通常和輸出項之間用分號隔開,格式為: Print Tab(n); 輸出項 表示在某一行第n列輸出數(shù)據(jù) 參見例4-12.Spc(n)函數(shù) 和Tab函數(shù)類似,Spc(n)函數(shù)也是控制輸出項輸出的列位置,其語法要求也基本相同,不同的是Spc函數(shù)用來確定輸出項之間的空格數(shù)。 如:Print Spc(4); 學(xué)號; Spc(6); 姓名; Spc(5); 性別 表示“學(xué)號”和窗體左邊界相隔4個空格,“姓名”和“學(xué)號”之間相隔6個空格,“性別”和“姓名”之間相隔5個空格。通過Print方法輸出到圖片框 圖片框(PictureBox)控件可以輸出圖形、圖像和文本,還可以像窗體一樣作為容器包含其它控件,不僅如

12、此,圖片框控件具有和窗體相似的屬性和方法,圖片框主要的方法有Print、Cls等。通過Print方法輸出到圖片框的格式為: 圖片框名.Print Tab(n); 輸出項 Print方法如果省略了對象名,則表示默認(rèn)的對象為窗體(Form)。通過標(biāo)簽(Label)輸出結(jié)果 通過標(biāo)簽(Label)輸出結(jié)果,是通過標(biāo)簽的Caption屬性值來實現(xiàn)。例 雞兔同籠問題。已知雞和兔的總頭數(shù)與總腳數(shù)分別為16和40。問籠中雞和兔子各幾只?分析:設(shè)有雞x只,兔y只,雞和兔的總頭數(shù)為h,總腳數(shù)為f,根據(jù)數(shù)學(xué)知識可以寫出下面的方程式標(biāo)簽、文本框可不可以使用Print、CLS方法? 習(xí)題:指出執(zhí)行下面賦值語句后各變量

13、的數(shù)據(jù)類型 (1) a=6=5 (2) a=5+3 (3) a=#11/26/1999# (4) a=Not 5 8 (5) a=5:b=6:c=b=a=8 (6) a=5“:b=6 c=b=a=8加油,努力!二、程序結(jié)構(gòu)例:輸入三角形的三條邊a,b,c,輸出三角形的面積。(a,b,c是正整數(shù)c)and(a+cb)and(b+ca) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s:0:2); end else writeln(No answer);end.無“;”選擇結(jié)構(gòu):if 語句有兩種形式的IF語句:(1) i

14、f then ;(2) if then else ; IF語句是由一個布爾表達(dá)式和一個或兩個供選擇的操作序列組成。運(yùn)行時根據(jù)布爾表達(dá)式的求值結(jié)果,選取其中之一的操作序列執(zhí)行。 當(dāng)布爾表達(dá)式的值為TRUE,則執(zhí)行then后面的語句,值為FALSE 時有兩種情況: (1)什么也不做;(2)執(zhí)行else后面的語句。注意: 1、else前面的語句不能有分號;2:如果語句部分是復(fù)合語句(多于一條語句),則必須用begin與end括起來。二、選擇結(jié)構(gòu) 布爾表達(dá)式:由關(guān)系運(yùn)算符和邏輯運(yùn)算符連接成的表達(dá)式(判斷)。結(jié)果是布爾類型:TRUE或FALSE例1:輸入一個整數(shù),判斷他的奇偶性。(是偶數(shù)輸出“”,奇數(shù)輸

15、出“”)。 方法一:Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) ; if a mod 2 0 then writeln(no); End. 方法二:Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) else writeln(no); End. 無“;”例2、計算下列函數(shù) ,輸入x,輸出y的值(精確到小數(shù)點后兩位小數(shù))。 var x:real;begin readln(x); if x0 then writeln(x*x:0:2) el

16、se if x=0 then writeln(0) else writeln(sqrt(x):0:2);end.IF語句的嵌套: 在if語句中,如果then子句或else子句仍是一個if語句, 則稱為if語句的嵌套。var x:real;begin readln(x); if x0 then writeln(sqrt(x):0:2);end.例3:已知方程: ax2+bx+c=0輸入系數(shù)a,b,c,a0,輸出方程的解(考慮各種情況)。保留兩位小數(shù)。(1):如果無實數(shù)解輸出:no answer;(2):相同的實數(shù)解:輸出一個即可。(3):兩個不同的實數(shù)解:分別輸出。如:輸入:1 3 2輸出:X1

17、=-1.00X2=-2.00輸入:2 1輸出:X=-1.00var a,b,c:integer; d,x1,x2:real;begin readln(a,b,c); d:=b*b-4*a*c; if d0 then begin x1:=(-b+sqrt(d)/(2*a); x2:=(-b-sqrt(d)/(2*a); writeln(x1=,x1:0:2); writeln(x2=,x2:0:2); end;end. 關(guān)系運(yùn)算、邏輯運(yùn)算及布爾表達(dá)式1.關(guān)系運(yùn)算符(表示數(shù)值大小關(guān)系的運(yùn)算符號) 運(yùn)算符運(yùn)算結(jié)果類型=等于布爾型 不等于布爾型大于布爾型= 大于等于布爾型如:a:=1;b:=2; 則表

18、達(dá)式:ab的值是FALSE; a+1=b的值是TRUE;Var f:boolean; f:=ab; Write(f); 輸出:FALSE數(shù)據(jù)類型:布爾型 (boolean) :描述判斷的正確與錯誤一個布爾型數(shù)據(jù)用來存放邏輯值(布爾值)。布爾型的值只有兩個:false(錯誤)和true(正確),并且false的序號是0,true的序號是1。false 和true都是預(yù)定義常數(shù)標(biāo)識符,分別表示邏輯假和邏輯真。并且truefalse。boolean是布爾型的標(biāo)識符。如: var f:boolean;2、邏輯運(yùn)算 (布爾運(yùn)算)運(yùn)算符運(yùn)算 運(yùn)算對象結(jié)果類型not邏輯非(取反)布爾型布爾型and 邏輯與(

19、并且)布爾型布爾型or 邏輯或(或者)布爾型布爾型xor邏輯異或 布爾型布爾型如:a:=1;b:=2;c:=3;1)、Not(ab) 2)、(ab)and (bc)3)、(ac)4)、(ab)or (bc) 5)、(ac)6)、(ab)xor(bc)7)、(ac)例4:輸入兩個運(yùn)正算數(shù)0.30000和一個運(yùn)算符號(+、-、*、/)。/的結(jié)果小數(shù)點后保留3位小數(shù)。輸出運(yùn)算結(jié)果。樣例輸入:10 20+樣例輸出:30var a,b:integer; k:char;begin readln(a,b); readln(k); if k=+ then writeln(a+b); if k=- then writeln(a-b); if k=* then writeln(a*b); if k=/ then writeln(a/b:0:2);end.var a,b:integer; k:char;begin readln(a,b); readln(k); case k of +: writeln(a+b); -: writeln(a-b); *: writeln(a*b); /: writeln(a/b:0:2); end;end.選擇結(jié)構(gòu):c

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論