如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三講VB資料型態與宣告授課重點資料型別、宣告與轉換1.資料的型別資料的型別資料的型別資料的型別最有效率的資料型別依資料結構分單一資料(Scalar):單一項目存在的資料例,DimAAsInteger結構化資料組合資料(Structure):一單元中有不同之次資料項組合ex.要先宣告userdefinedtype如下:StructurePointXYDimXAsDoubleDimYAsDoubleEndStructure之後,才可以用PointXY作為一結構性的點資料型別ex.DimPoint1AsPointXY為一點資料的型別依資料長度固定否分以陣列的長度是否可以動態宣告變化其長度而言固定:不能動態更換長度例,DimA(10)AsInteger動態:可以動態宣告更換長度,ex:ReDimA(10)AsIntegerI=100ReDimA(I)AsIntegerex:DimA()AsIntegerI=100ReDimA(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等)但是若轉換內容超出此函數的資料型態允許的範圍,則會發生錯誤。例如:DimsAsStringDimbAsIntegerPrivateSubCommand1_Click(…)...s="test"b=CInt(s)EndSub資料型別轉換錯誤但是下列寫法則可正常執行DimsAsStringDimbAsIntegerPrivateSubCommand1_Click(…)…b=123s=CStr(b)EndSubp.s.當小數部分恰好為0.5時,Cint和CLng函數會將它轉換成最接近的偶數值。例如,0.5轉換成0、1.5轉換成2。CInt和CLng函數不同於Fix和Int函數,Fix和Int會將小數部分去除,然後轉回整數值。(詳細差別請參考MSDN)c.已宣告之資料不可再重新宣告,除ReDim以外資料內部元素或性質的處理a.檢驗資料型別例如:DimPAsObjectDimSAsIntegerP=1234S=VarType(P)‘傳回一整數值對應資料型態S3(代表整數)資料型別宣告與轉換易犯錯誤a.資料TruncateError:太長的有效小數點被截掉,存到精度角小的資料中。b.4捨5入:實數轉整數時,但如為0.5則前數為奇數則近位,否則不進c.溢位錯誤:資料容量太小無法存入新資料值DimiAsShort=32767i=i+1若i大於32767則會溢位(運算結果大於Short的容量)溢位錯誤d.宣告一次只能有一個資料項若超過一個以上則只有最後一個被宣告,其餘則未為宣告例,‘DimA,B,CAsInteger則只有C被宣告了,A及B皆未被宣告若要全部宣告則要撰寫如下:DimAAsIntegerDimBAsIntegerDimCAsInteger或是DimAAsInteger,BAsInteger,CAsInteger3.網格與向量資料的案例網格式資料影像與向量資料的案例向量式資料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