第二篇:
我真沒想到, 第一次的作業竟然有人不會.
看來要講的非常非常細緻才行, 嗯, 今天講各種"量"和基本運算
先說常量, 這個比較簡單.
什麼是常量呢, 常量就是其值不可變化的量.
常量分為兩種:第一種, 自然常量. 這叫是因為它們本身就是常量, 你怎麼更改21的值呢? 他永遠都是21, 不可能變成46
如果你在程式中使用"21=46", 這樣的語句將會引發一個錯誤. 同樣的, 字串也是常量 (還記得字串嗎? 就是包裹在""之間的一串字元), "Hello World"就是一個例子, 如果你使用"Hello World"="Bye"這樣的語句同樣會引發一個錯誤. 你能舉出自然常量的更多例子嗎?
第二種, 是我們自己定義的常量,這種量也使用代號, 他們也被賦值, 但和變數的不同點在於, 他們在定義的時候被賦值,以後就不能改變了,如果企圖改變將會引發一個錯誤. 定義一個變數,我們使用"const"這個關鍵字(關鍵字的意思是系統定義了有特殊功能的字, 不能作為變數名或常量名使用),格式是:const 常量名=常量值.
例如:
const PI=3.1415926
const NAME="記憶片段"
這樣我們就定義了兩個常量, PI和NAME, 一般說來, 常量名全部使用大寫, 但也可以不用, 隨你喜好. 將一些在程式中不需要改變的值定義為常量是個好習慣, 這樣能防止不必要的意外. 另外, 使用自訂常量也可以減少你的工作量. 比如:
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
msgbox("Hello World")
這個程式輸出五次Hello World, 如果你想要改變輸出為Bye-Bye, 就必須修改全部程式, 當然你可以手動修改5次, 但如果你要輸出1000次呢? 常量就可以替我們解決這個問題:
const hw="Hello World"
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
msgbox(hw)
這樣當你要修改輸出的時候只要修改hw的值就行了.
好了, 現在我們來看看編程的第一塊重要"基石":變數. 解釋變數最好的辦法我覺得是"盒子", 一個變數好像一個盒子, 裡面只能裝一個東西, 當你要裝進去別的東西的時候必須把原有的東西拿出來. 這個"盒子"是有名稱的, 當你在程式中使用變數的時候, 系統會開啟盒子取出裡面的東西, 讓這些東西參與處理, 而不是盒子. 有些語言是很依賴"盒子"裡面裝些什麼東西, 這樣才能找到合適的"盒子"(比如C語言), 但VBS給我提供的是能夠自動調整的"魔術盒", 我們不用關心裝進去的是什麼東西,
VBS會自動調整盒子的大小. 例如:
Dim a1,a2,a3
a1=14
a2=12.23
a3="Hello"
而不用像C語言那樣麻煩: 或者是VB的正規聲明(VB可以聲明也可以不用)那樣:
int a1; Dim a1 as integer
float a2; Dim a2 as Double
char* a3; Dim a3 as strnig
a1=14; a1=14
a2=12.23; a2=12.23
a3="Hello"; a3="Hello"
嗯……扯遠了……
變數有什麼用呢? 哇, 那用處可大了. 最簡單, 你並不能確定程式運行時變數的值, 比如前一節課我們編的輸入姓名的程式, 你不能確定InputBox返回的是什麼(還記得Inputbox的傳回值嗎? 就是你輸入的內容), 所以你就沒有辦法應對各種情況, 但我們用name這個"盒子"把使用者的名字裝起來, 到用的時候我們只要知道name這個盒子的名字就行了, 系統會自己開啟他並把裡面的內容拿出來用. 再舉個例子, 我們編寫一個程式計算一個矩形的面積, 比如這個程式要發給小學生使用:
dim a,b,s
a=15
b=12
s=a*b
msgbox(s)
這樣就可以求出長為15,寬為12的矩形的面積了, 是不是很簡單? 當然, 這個程式也可以這樣寫:
dim s
s=15*12
msgbox(s)
這樣看起來程式短了許多, 也節約記憶體, 但並不是鼓勵的做法, 為什麼? 請看下面.
現在, 我們的程式要變得像點樣子才行, 誰的程式寫出來還要別人修改原始碼才能用啊?
所以, 我們要接受使用者的輸入, 還記得嗎? InputBox函數.
修改後程式如下:
dim a,b,s
a=inputbox("請輸入矩形的長:")
b=inputbox("請輸入矩形的寬:")
s=a*b
msgbox(s)
ok, 這麼一修改, 無論使用者輸入怎樣的資料, 我們都能計算出矩形的面積了. 如果你用s=15*12能改嘛? 當然不行.
我想你已經發現了, vbs中的數學計算和真正的算術沒有什麼不同, +,-,*,/,(),[],{}都是一樣的用法, 比如:
dim ans
ans=12+32/4+[(23-10)*2]
msgbox(ans)
四則運算的法則在編程中同樣生效, 你可以在編程中重新獲得小學時候的樂趣(你恨數學?那就別學電腦了).
在編程中有一個有趣的運算子是"mod", 這個運算子叫做"取餘運算子", 就是取得一次除法的餘數, 例如
dim a
a=16 mod 5
你知道a等於幾嗎? Bingo! 沒錯, 就是1. 因為16 / 5 =3....1, 所以mod計算的結果就是1.
還有一個運算子是"^"(就是鍵盤"6"上面的小箭頭), 他表示"乘冪"(或者是"方") 比如:
dim a,b,c
a=2
b=a^2
c=a^3
msgbox(a)
msgbox(c)
則b=a*a=4, c=a*a*a=8
我們一次不要講太多, 這次就講到這裡, 現在總結一下.
要點:
1) 常量分為自然常量和自訂常量, 常量的值不可修改
2) 變數就像盒子, 我們不在乎盒子裡裝的是什麼, 但一定要知道盒子的名字
3) 四則運算在編程中沒有任何不同
4) MOD是取餘運算
作業:
1) 編一個程式, 計算圓形的面積, 半徑由使用者給出 (使用Inputbox) PI取值3.14159
2) 編一個程式取得20 / 3 的餘數