九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
從零開始,步入Word宏編程的世界(第三講)

實例三:“猜數(shù)游戲”

知識點:
   1、學習變量的類型與轉換;
   2、掌握程序的循環(huán)與判斷;
   3、學習隨機數(shù)的生成。

 

   通過對前面兩個實例的學習,相信您對自己掌握VBA編程已充滿了信心。今天,我們將編寫一個小小的游戲程序。這個游戲程序中既包含了新的知識點,又要考驗您對前兩課知識運用的熟練程度,就讓我們靜下心來克服這個小難關吧。

   游戲內(nèi)容是這樣的:電腦生成一個0到99之間的整數(shù),請您來猜這個數(shù)是多少,每猜一次,電腦都給您一個提示,直到您猜中為止。

   程序思路:
1、電腦首先生成一個0到99之間的整數(shù);
2、請您輸入您所猜的數(shù);
3、把您輸入的數(shù)與電腦所生成的數(shù)進行比較,并給出“您猜大了”或“您猜小了”的提示;
4、如果您猜對了,則退出程序;如果您沒有猜對,則循環(huán)回第二步重復運行,讓您再次輸入自己所猜的數(shù)。

 





 

   請看代碼,必要的地方已添加了注釋。程序中退格與對齊是為了便于理解。請您先試著自己把代碼讀一讀,看看能不能讀懂。)
’ ’=========程序名“您猜”=========
Sub 您猜()
Dim a, b, c, d’申明了四個變量,變量間用英文逗號分開,與前面實例二申明變量的寫法不同,結果相同。
a = 0’這個變量用于計算您猜了多少次。
Randomize’準備生成一個隨機的數(shù)字,先初始化隨機數(shù)生成器。
b = Int(100 * Rnd) ’生成一個百以內(nèi)的隨機數(shù),“Rnd”就是“隨機數(shù)生成函數(shù)”。
Do’開始循環(huán)
a = a + 1’您猜的次數(shù)增添一次。當再次循環(huán)到這兒時,次數(shù)會繼續(xù)往上加。
c = InputBox("請輸入您所猜的數(shù)")’將取得的值賦予變量“c”,“c”是字符串!
d = CInt(c) ’將變量“c”轉化為整數(shù),再將值賦給“d”。
If b < d Then’進行比較,如果猜大了。
MsgBox ("您猜的數(shù)大了")’顯示比較的結果。
ElseIf b > d Then’進行比較,如果猜小了。
MsgBox ("您猜的數(shù)小了")’顯示比較的結果。
Else: b = d’進行比較,如果猜對了。
MsgBox ("哈哈,您猜對了!") ’顯示比較的結果。
Exit Do’既然已經(jīng)猜對了,就跳出循環(huán)。
End If’結束比較。
Loop’回到前面的Do,繼續(xù)循環(huán)。
MsgBox ("您猜了" & a & "次!") ’彈出消息框,并使用了字符串連接。
End Sub’結束程序。

 

運行本程序,看看效果。并根據(jù)注釋,體會循環(huán)與判斷在本程序中的作用。

代碼解說:

   a這個變量,用于計算您所猜的次數(shù)。每多猜一次,它就在自身的基礎上加1,其相應的代碼是:a = 0與a = a +1兩句。程序結尾時,將在消息框中顯示“a”的值。

   b這個變量,用于記錄一個隨機生成的數(shù)字。其相應代碼為:Randomize與b = Int(100 *Rnd)這兩句。其中,Randomize這個語句在本程序中非常重要,如果您去掉這個函數(shù),再多運行本程序幾次的話,您就會發(fā)現(xiàn)猜測的答案居然是有規(guī)律的??!換句話說,只要我知道了電腦所出數(shù)字的規(guī)律我就可以“百發(fā)百中”地一次猜中這個數(shù)!所謂“隨機數(shù)”顧名思義就應該是“隨機”產(chǎn)生的數(shù),在沒有Randomize語句的情況下,這些產(chǎn)生的數(shù)看似很“隨機”,其實有規(guī)律,這種隨機數(shù)就是“偽”隨機數(shù)。所以,Randomize語句的作用就是生成“真正”的隨機數(shù)。
   Rnd函數(shù)是生成一個介于0與1之間的小數(shù),乘以100是讓這個小數(shù)成為一個介于0到100之間的數(shù);Int函數(shù)的作用是將一個數(shù)的小數(shù)部分去掉,只保留它的整數(shù)部分,即“取整”。通過這樣一個可能大家覺得有點復雜的過程,我們得到了一個0到99之間的整數(shù)(大于99而小于100的小數(shù)在取整后即是99,所以前面我們說“乘以100是為了生成一個介于0到100之間的數(shù)”,而真正取整之后最大的數(shù)只能是99。),并將它的值賦予了變量“b”。
生成隨機數(shù),是很多程序中要用到的功能(特別是游戲,比如游戲中隨機生成不同的怪物或不同的寶物等。),上面的內(nèi)容希望大家能悉心地體會。

   c這個變量,是取得輸入框中我們所猜測的數(shù)字。其相應代碼是“c =InputBox("請輸入您所猜的數(shù)")”,但計算機并不認為我們所輸入的是一個數(shù)字(整數(shù)),它把我們輸入的內(nèi)容看成是文字(字符串)。顯然,文字是沒有辦法去與數(shù)字比較大小的,所以,我們要用到變量d。

   d這個變量,是一個整數(shù)。它是利用了“轉換函數(shù)”——“CInt”,將我們所取得的字符串變量“c”轉換成了一個整數(shù)。其相應代碼是“d =CInt(c)”。也就是說,本程序中最終進行比較的,是兩個整數(shù)“b”與“d”。這里涉及到VBA數(shù)據(jù)類型的知識。

對于VBA的數(shù)據(jù)類型,這里主要為大家介紹兩種:
Integer——包含 -32,768 到 32,767 之間的整數(shù)。該類型的數(shù)值基本上可以滿足我們通常使用整數(shù)時的需要;
String——包含變長字符串,最大長度可為 20 億個字符。該類型的值其實就是我們常用的字符串。
我們在程序當中用的CInt函數(shù),就是將一個String類型(字符)的值,轉換成了一個Integer類型(整數(shù))的值。所以我們稱CInt函數(shù)為“轉換函數(shù)”。
與CInt類似的常用轉換函數(shù)還有:Clin、CSng、CStr等??梢园裋BA幫助文件中的“轉換函數(shù)”與“數(shù)據(jù)類型”相互參照進行學習。(相信這個時候您看幫助文件中的這部分內(nèi)容,將不會再是一件難事。)

 

感覺到困難了嗎?如果感覺到了困難,就請將上面的內(nèi)容再體會體會。準備進入下一個知識點。
程序中的DO、Exit Do以及Loop為一個整體。其中,Do是開始進入循環(huán); Loop是指回到Do語句處,再次進行循環(huán); ExitDo是指當符合某一個條件時就直接退出循環(huán)。在本程序中,Exit Do是指當猜中了(即b=d)時,退出循環(huán);而無論是猜大了(b>d),還是猜小了(b

程序中數(shù)字的比較,是利用If語句來實現(xiàn)的。在實例二中,我們已接觸過 If 語句,If語句的基本格式是:

If(條件)Then(結果)End If’(結束If判斷語句)
在 If 語句判斷的過程當中,還可以有子判斷語句:Elseif then 。
對于一個具有多重判斷的語句,我們大致可以這樣理解:如果(If),那么(Then),否則(Elseif),那么(Then),再否則(Elseif),那么(Then)……(ElseIf根據(jù)情況可以套嵌很多層)最終(Else),結束判斷(EndIf)。

 

本實例的知識擴展:
   1、試一試自己在程序結尾處再添幾句,判斷所猜的次數(shù):如果小于六次,給出一個評價“優(yōu)”;等于六次,給出一個評價“良”;大于六次,給出一個評價“您還需努力!”。
   2、試一試給程序補充部分內(nèi)容,其功能為:在猜完一次后,詢問游戲人“您還愿意再玩一次嗎?”,并根據(jù)游戲者的響應,再次運行程序或退出程序。
   3、如果在剛開始游戲讓我們輸入數(shù)字時,我們選擇了“取消”就會出錯,您現(xiàn)在能利用自己已有的知識來解決這個問題嗎?

 

好了,到這里,我們再回過頭來看一看這個程序,理解起來還有困難嗎?本實例可能比前兩個實例稍難一點。如果您能順利完成知識擴展中的問題題,那么祝賀您,您已過了入門的第一個小難關,可以進入下一步的實例四了,如果您還存在疑問,則再請多動手把前三個實例練一練!!

附:完善的猜數(shù)游戲——
Sub 您猜()
Dim a, b, c, d, e, f
e=6’該數(shù)字用于計算所猜次數(shù)是否為優(yōu)、良等
Do
a = 0
Randomize
b = Int(100 * Rnd)
Do
a = a + 1
c = InputBox("請輸入您所猜的數(shù)")
d = CInt(c)
If b < d Then
MsgBox ("您猜的數(shù)大了")
ElseIf b > d Then
MsgBox ("您猜的數(shù)小了")
Else: b = d
MsgBox ("哈哈,您猜對了!")
Exit Do
End If
Loop
MsgBox ("您猜了" & a & "次!")
If a>e
MsgBox ("您還需努力!")
Elseif aMsgBox ("您的猜數(shù)能力:優(yōu)!")
Else a=e
MsgBox ("您的猜數(shù)能力:良!")
End if
f=MsgBox ("您還愿意繼續(xù)玩嗎?",4,”繼續(xù)游戲”)’’注意此處常數(shù)的使用
if f=7 then’’注意此處消息框返回值的使用
exit do
else
end if
loop
End Sub

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBScript入門
vbscript基本語法
C語言入門教程-數(shù)組
【小懶のVBA】程序結構之IF...Then...Elseif多重判斷
轉貼:EXCEL表中RAND函數(shù)的妙用
一個Randbetween函數(shù),讓你做測量資料“事半功倍”
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服