预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三講VB資料型態與宣告授課重點資料型別、宣告與轉換1.資料的型別資料的型別資料的型別資料的型別最有效率的資料型別依資料結構分 單一資料(Scalar):單一項目存在的資料 例,DimAAsInteger 結構化資料 組合資料(Structure):一單元中有不同之次資料項組合 ex.要先宣告userdefinedtype如下: StructurePointXY DimXAsDouble DimYAsDouble EndStructure 之後,才可以用PointXY作為一結構性的點資料型別 ex.DimPoint1AsPointXY為一點資料的型別依資料長度固定否分 以陣列的長度是否可以動態宣告變化其長度而言 固定:不能動態更換長度 例,DimA(10)AsInteger 動態:可以動態宣告更換長度,ex: ReDimA(10)AsInteger I=100 ReDimA(I)AsInteger ex: DimA()AsInteger I=100 ReDimA(I)AsInteger資料的含意 資料皆存在特定的記憶空間中,不同的資料型別表示了其記憶體單元的大小、排列的對應與內容的詮釋(見圖1)。 圖1、共16bytes的記憶體其可為:16字元的String、4個Integer、2個Long、4個Single、2個Double,亦可以是16個Boolean元素的陣列2.資料型別宣告與轉換b.資料型別宣告符號 布林:Boolean 字串:String 數值: 整數:Integer 長整數:Long 單精度浮點數:Single 雙精度浮點數:Double 日期:Date 不定型:Object資料間轉換與運算 自行轉換法則 存入低精度資料時 高低精度資料同時運作時 強迫轉換 加入Type強轉函數(如CStr.CInt,CDbl等)但是若轉換內容超出此函數的資料型態允許的範圍,則會發生錯誤。例如: DimsAsString DimbAsInteger PrivateSubCommand1_Click(…)... s="test" b=CInt(s) EndSub資料型別轉換錯誤但是下列寫法則可正常執行 DimsAsString DimbAsInteger PrivateSubCommand1_Click(…)… b=123 s=CStr(b) EndSub p.s.當小數部分恰好為0.5時,Cint和CLng函數會將它轉換成最接近的偶數值。例如,0.5轉換成0、1.5轉換成2。CInt和CLng函數不同於Fix和Int函數,Fix和Int會將小數部分去除,然後轉回整數值。(詳細差別請參考MSDN) c.已宣告之資料不可再重新宣告,除ReDim以外資料內部元素或性質的處理 a.檢驗資料型別 例如: DimPAsObject DimSAsInteger P=1234 S=VarType(P)‘傳回一整數值對應資料型態 S3(代表整數)資料型別宣告與轉換易犯錯誤 a.資料TruncateError: 太長的有效小數點被截掉,存到精度角小的資料中。 b.4捨5入: 實數轉整數時,但如為0.5則前數為奇數則近位,否則不進 c.溢位錯誤: 資料容量太小無法存入新資料值 DimiAsShort=32767 i=i+1 若i大於32767則會溢位(運算結果大於Short的容量)溢位錯誤d.宣告一次只能有一個資料項 若超過一個以上則只有最後一個被宣告,其餘則未為宣告 例,‘DimA,B,CAsInteger 則只有C被宣告了,A及B皆未被宣告 若要全部宣告則要撰寫如下: DimAAsInteger DimBAsInteger DimCAsInteger 或是DimAAsInteger,BAsInteger,CAsInteger 3.網格與向量資料的案例網格式資料影像與向量資料的案例向量式資料4.自己動手作!自己動手作!iTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPh