- N 位元 CPU(N 位元電腦)
- WORD(字組)為 N 位元(bit)
- CPU一次可處理 N 位元資料
2011年1月11日
各種比較
◎ 記憶體存取速度(由快到慢)
暫存器(Register) > 快取記憶體(L1>L2>L3, SRAM) > DRAM(DDR2>DDR>SDRAM) > 硬碟 > 隨身碟 > 光碟(BD>DVD>CD) > 軟碟 > 磁帶
◎ I/O 連接埠速率比較(由快到慢)
SATA > SCSI > IDE > 1394 > USB > 平行埠(LPT1) > 序列埠(COM1, COM2)
PCI-E(8GB~250MB) > USB 3.0(4.8Gb) > eSATA(3Gb) > Ultra SCSI(640MB) > SATA 3.0(450MB) > IEEE 1394b(3200Mb) > SCSI(320MB) > SATA 2.0(300MB) > SATA 1.0(150MB) > IDE(133MB) > USB 2.0(480Mb) > IEEE 1394a(400Mb) > LPT(2MB) > RS232(COM1,115.2K) 待轉換Byte、Bit。
◎ ASCII 碼字元的大小順序(由大到小)
中文字 > 小寫(a) > 大寫(A) > 數字(0) > 空白
◎ 未完待續…
暫存器(Register) > 快取記憶體(L1>L2>L3, SRAM) > DRAM(DDR2>DDR>SDRAM) > 硬碟 > 隨身碟 > 光碟(BD>DVD>CD) > 軟碟 > 磁帶
◎ I/O 連接埠速率比較(由快到慢)
SATA > SCSI > IDE > 1394 > USB > 平行埠(LPT1) > 序列埠(COM1, COM2)
◎ ASCII 碼字元的大小順序(由大到小)
中文字 > 小寫(a) > 大寫(A) > 數字(0) > 空白
◎ 磁碟結構的大小順序(由大到小)
磁柱 > 磁軌 > 磁簇 > 磁區
◎ 資料庫結構的大小順序(由大到小)
資料庫(Database) > 檔案(File) > 記錄(Record) > 欄位(Field) > 位元組(Byte) > 位元(Bit)
其中
「檔案(File)」又稱為「表格(Table)」。
「記錄(Record)」又稱為「Tuples」。
「欄位(Field)」又稱為「屬性(Attribute)」。
「欄位(Field)」又稱為「屬性(Attribute)」。
◎ 未完待續…
【自定函數】遞迴函數
自己呼叫自己的函數稱為「遞迴函數」(Recursive)。以下以二個題目說明解法。
◎ 執行下列程式片段後,K值為何?(A) 1 (B) 5 (C) 15 (D) 120 [商業語文]
【答案】 (D)
【解析】
GAME(5) = 5 * GAME(4)
GAME(4) = 4 * GAME(3)
GAME(3) = 3 * GAME(2)
GAME(2) = 2 * GAME(1)
接著開始代入:
GAME(1) = 1
GAME(2) = 2 * GAME(1) = 2 * 1
GAME(3) = 3 * GAME(2) = 3 * (2 * 1)
GAME(4) = 4 * GAME(3) = 4 * (3 * 2 * 1)
GAME(5) = 5 * GAME(4) = 5 * (4 * 3 * 2 * 1) = 120。
◎ 執行下列程式片段後,K值為何?(A) 1 (B) 5 (C) 15 (D) 120 [商業語文]
Rem MAIN PROGRAM K = GAME(5) Print K End Function GAME(X) If (X > 1) Then GAME = X * GAME(X - 1) Else GAME = 1 End If End Function
【答案】 (D)
【解析】
GAME(5) = 5 * GAME(4)
GAME(4) = 4 * GAME(3)
GAME(3) = 3 * GAME(2)
GAME(2) = 2 * GAME(1)
接著開始代入:
GAME(1) = 1
GAME(2) = 2 * GAME(1) = 2 * 1
GAME(3) = 3 * GAME(2) = 3 * (2 * 1)
GAME(4) = 4 * GAME(3) = 4 * (3 * 2 * 1)
GAME(5) = 5 * GAME(4) = 5 * (4 * 3 * 2 * 1) = 120。
陣列
陣列+迴圈一向是統測計概程式題的最愛,同學應在這二大部份認真的準備。
單純陣列的應考重點在於「計算陣列元素的個數」(搭配迴圈時考法會有所不同)。
VB的陣列預設由0開始,例如 Dim A(5) As Integer,其實含有 0, 1, 2, 3, 4, 5 共6個元素。
陣列也可以自己訂定,例如: Dim B(2 To 5) As Integer,則含有 2, 3, 4, 5 共4個元素。
計算的公式為 (5 - 2 + 1),亦即 (最大 - 最小 + 1)。
二維陣列如 C(2, 3) 則有 (0 To 2) × (0 To 3) 共 12 個元素。計算的公式為(2-0+1)×(3-0+1)=12,
三維、四維或更多維的陣列元素計算方式都是如此。
陣列註標的起始值可以為0或是為1,如果要從1開始,只要在第一行鍵入 Option Base 1 即可。要注意的是只能是0或1,不能有其他的值。如果已經使用 Option Base 1,又想要從2或3之類的開始呢?那…就用上面說過的 Dim D(3 To 8) As Integer就可以啦…^_^。
請問下列的程式會有幾個元素呢?
Option Base 1
Dim A(0 To 3) As Integer
答案是 0,1,2,3 共4個,原因是這種有指定 m To n 的方式,是不受 Option Base 1 的限制的。
單純陣列並不會太難, 最後引一題 94 年統測的題目做為練習。
◎ 執行下列BASIC程式片段時,請問陣列A占用記憶體多少 Bytes 的儲存空間?
Dim A(3, 4) As Double
(A) 160 (B) 96 (C) 80 (D) 48
【答案】 (A)
【解析】
(3 - 0 + 1) × (4 - 0 + 1) = 20 個元素,Double 倍精準型態每個元素佔 8 Bytes,
共占用 20 × 8 = 160 Bytes。
陣列宣告後若未賦予初值,則預設的初值視宣告時的資料型態而定,
數值型態 → 初值為:「0」
字串型態 → 初值為:「空字串」
自由型態 → 初值為:「Empty」
【註】如果題目要求印一個沒有宣告的變數,例如: Print A,那是不會印出任何東東滴…^_^
單純陣列的應考重點在於「計算陣列元素的個數」(搭配迴圈時考法會有所不同)。
VB的陣列預設由0開始,例如 Dim A(5) As Integer,其實含有 0, 1, 2, 3, 4, 5 共6個元素。
陣列也可以自己訂定,例如: Dim B(2 To 5) As Integer,則含有 2, 3, 4, 5 共4個元素。
計算的公式為 (5 - 2 + 1),亦即 (最大 - 最小 + 1)。
二維陣列如 C(2, 3) 則有 (0 To 2) × (0 To 3) 共 12 個元素。計算的公式為(2-0+1)×(3-0+1)=12,
三維、四維或更多維的陣列元素計算方式都是如此。
陣列註標的起始值可以為0或是為1,如果要從1開始,只要在第一行鍵入 Option Base 1 即可。要注意的是只能是0或1,不能有其他的值。如果已經使用 Option Base 1,又想要從2或3之類的開始呢?那…就用上面說過的 Dim D(3 To 8) As Integer就可以啦…^_^。
請問下列的程式會有幾個元素呢?
Option Base 1
Dim A(0 To 3) As Integer
答案是 0,1,2,3 共4個,原因是這種有指定 m To n 的方式,是不受 Option Base 1 的限制的。
單純陣列並不會太難, 最後引一題 94 年統測的題目做為練習。
◎ 執行下列BASIC程式片段時,請問陣列A占用記憶體多少 Bytes 的儲存空間?
Dim A(3, 4) As Double
(A) 160 (B) 96 (C) 80 (D) 48
【答案】 (A)
【解析】
(3 - 0 + 1) × (4 - 0 + 1) = 20 個元素,Double 倍精準型態每個元素佔 8 Bytes,
共占用 20 × 8 = 160 Bytes。
陣列宣告後若未賦予初值,則預設的初值視宣告時的資料型態而定,
數值型態 → 初值為:「0」
字串型態 → 初值為:「空字串」
自由型態 → 初值為:「Empty」
【註】如果題目要求印一個沒有宣告的變數,例如: Print A,那是不會印出任何東東滴…^_^
【函數】字串函數
字串運算函數(在VB字串函數中,無論中英文皆視為一個字元,非Byte)
| |||
函數
|
功能
|
範例
|
結果
|
Asc(X$)
|
將字元或字串中的第一個字元轉成ASCII碼
|
Asc(“Abc”)
|
65
|
Chr(X)
|
將ASCII碼轉換為代表的字元
|
Chr(97)
|
a
|
UCase(X$)
LCase(X$)
|
將字串中的英文轉換為【大寫】
將字串中的英文轉換為【小寫】
|
UCase(“aBc”)
LCase("QoO")
|
ABC
qoo
|
Left(X$)
Right(X$)
|
取回字串【左起】第 n 個字元
取回字串【右起】第 n 個字元
|
Left(“美麗Taiwan”, 3)
Right(“美麗Taiwan”, 3)
|
美麗T
wan
|
Mid(X$)
|
由字串第 m 個字元起,取回 n 個字
|
Mid("美麗Taiwan", 2, 4)
|
麗Tai
|
Instr(n,X$, Y$)
|
由X字串第 n 個字元起,找出
Y$第一個出現的位置,找不到傳回0 |
Instr(1, “VB is Best!”, “B”)
Instr(4, “VB is Best!”, “B”)
|
2
7
|
HEX(X)
|
將X轉成家六進位字串資料
|
Hex(16)
|
10
|
Oct(X$)
|
將X轉成八進位字串資料
|
Oct(8)
|
10
|
【函數】數值函數
函數
|
功能
|
範例
|
結果
|
Abs(X)
|
求X的絕對值
|
Abs(-20)
|
20
|
Sqr(X)
|
求X的平方根
|
Sqr(4)
|
2
|
Rnd(X)
|
產生小於1,大於等於0的亂數
|
Int(Rnd*(max-min+1)+min) ☆
| |
Int(X)
|
若X<0,取小於等於X的負整數
|
Int(5.6)
Int(-5.4)
|
5
-6
|
Fix(X)
|
取X的整數部分。Fix(5.6) = 5,Fix(-5.4) = -5
| ||
CInt(X)
轉(長)整數
|
小數以四捨六入取整數值
小數=5,整數為偶數→小數捨去
奇數→整數+1
|
CInt(-3.6)
A%=5.5, Print A%
B%=6.5, Print B%
B%=6.51,Print B%
C%= -3.5, Print C%
|
-4
6
6
7
-4
|
Round(X, n)
|
將X數值轉換成小數位數n位的格式
未設表示整數。
進位部份同 CInt(逢5奇進偶吐)
|
Round(4.144, 2)
Round(4.145, 2)
Round(4.155, 2)
|
4.14
4.14
4.16
|
Val(X$)
|
將X$轉為數值,碰到非數值字元則忽略其後字元(不包括空格、正負號)
|
Val(“
Val(“
Val("-1 2 3") |
99
5247
-123 |
SGN(X)
|
X為正 → 1,X為負 → -1,X為零 → 0
|
【註】以下三種情況,一樣使用CInt(逢5奇進偶吐)
- \ :例如 5.45 \ 2 = 2 , 5.5 \ 2 = 3。
- Mod :例如 32.5 Mod 2 = 0 , 33.5 Mod 2 = 0。
- 宣告為整數型態的變數:
Dim A as Integer
A = 28.5
Print A
A 的值為28。 ← CInt(逢5奇進偶吐)
不過下面的例子有點不同,請同學留意:
Dim A as Integer
A = Sqr(8) ← 求 8 的平方根
Print A
A 的值為3。 ← 原因是 Sqr(8) = 2.82842712474619…,為無理數。
2011年1月10日
Select Case 子句用法
◎ 在 Select Case 敘述中,下列有關 Case 子句的用法,何者錯誤?
(A) Case 0 To 10 (B) Case Is > 10 (C) Case Is > 10 And Is < 50 (D) Case 3, 5, Is > 10
【答案】 (C)
【解析】
(A) Case 0 To 10 (B) Case Is > 10 (C) Case Is > 10 And Is < 50 (D) Case 3, 5, Is > 10
【答案】 (C)
【解析】
(C)選項的答案,並不符合Select Case的用法。
- Select Case 的子句大抵有3種用法:
- 運算式,運算式,… → 例如: Case 1, 3, 5
- 運算式1 To 運算式2 → 例如: Case 40 To 60
(注意:運算式2必須大於運算式1,否則不成立!)
- Is 關係運算式(<, <=, =, >=, >) → 例如: Case Is <= 100
- 以上三項可以混合使用 → 例如: Case 2, 8, 10 To 12, Is > 20
- 若符合多個 Case 條件,僅會執行第一個符合的 Case。
Select Case 條件判斷式
◎執行下列程式,若輸入「12.8」,則輸出結果為何? (A)12.8 (B)12 (C)11.8 (D)15.8
Private Sub Form_Activate()
A = InputBox("請輸入一個數")
Select Case (A Mod 3)
Case (6 ^ 2 = True)
A = A + 1 Rem 這樣的條件式並不會成立!
Case 1
A = A - 1
Case 2
A = A - 2
Case Else
A = A + 3
End Select
Print A
End Sub
【答案】 (C)
【解析】
Private Sub Form_Activate()
A = InputBox("請輸入一個數")
Select Case (A Mod 3)
Case (6 ^ 2 = True)
A = A + 1 Rem 這樣的條件式並不會成立!
Case 1
A = A - 1
Case 2
A = A - 2
Case Else
A = A + 3
End Select
Print A
End Sub
【答案】 (C)
【解析】
- 同學解題時,凡運算式遇到「\(整除)」、「Mod」時,必須將小數以「CInt(逢5奇進偶吐)」的方式轉成整數。本題中的(A Mod 3) = (12.8 Mod 3) = 1。
- 注意其中的 A 仍為12.8,並未被改變,故 12.8 - 1 = 11.8。
訂閱:
文章 (Atom)