Microsoft PowerPoint - vb_net8

Similar documents
(Microsoft PowerPoint - PHP_Ch07 [\254\333\256e\274\322\246\241])

Microsoft PowerPoint - Bronson-v3-ch07.ppt [相容模式]

Excel VBA Excel Visual Basic for Application

第六章 然而, 當我們建立了一種多重效應的變數陣列時, 你可在單一變數中儲存超過一個以上的值, 陣列的定義方式是在變數名稱後輸入陣列的大小, 因此若我們要定義長度為 10 的字串陣列, 我們可定義如下所示 : Dim s(9) As String 為何我們使用 (9) 而非 (10) 來代表陣列長度

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

HTML網頁基礎語言

Microsoft Word - part doc

!194 課程 大綱 陣列介紹 [P.195] 陣列的使 用 [1] - 多個同型變數 [P.196] 陣列的初始化 [P.198] 陣列的使 用 [2] - 循序存取 [P.199] 陣列的使 用 [3] - 隨機存取 [P.200] 陣列的複製 [P.203] 在函式間傳送陣列 [P.204]

投影片 1

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft PowerPoint - VB3

Microsoft PowerPoint - VB5

Microsoft PowerPoint - VB14.ppt

C/C++基礎程式設計班

投稿類別:資訊類

C Arrays

ACI pdf

jQuery實戰手冊


Microsoft PowerPoint - Class5.pptx

Microsoft PowerPoint - 04-array_pointer.ppt

Microsoft PowerPoint - 13_指標、資料傳遞2.pptx

Microsoft PowerPoint - chap10.ppt

Microsoft PowerPoint - 04_Array

Microsoft Word - 投影片ch11

Microsoft PowerPoint - CH07 Arrays and Vectors [相容模式]

C 語言—陣列及字串

Microsoft Word - ACL chapter02-5ed.docx

PowerPoint Presentation

C/C++基礎程式設計班

Microsoft PowerPoint - STU_C_Lang_CH13.ppt

jQuery實戰手冊

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Microsoft Word - ACI chapter00-1ed.docx

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

第四講 資料型態及變數、常數

資料結構之C語言重點複習

中北大学常规事项财务报销操作指南

05855BB07.indd

Microsoft Word - ACG chapter00c-3ed.docx

Slide 1

PowerPoint Presentation

投影片 1

- 延伸練習 7-2 一維陣列 如果要在本實例中, 增加可供使用者選擇題目難易度的選項功能, 則程式該如何 撰寫呢? 提示 : (1) 利用 InputBox( ) 讀使用者選擇題目難 中 易三個等級的選項 (2) 在表單 Load ( 載入 ) 事件程序中增加陣列宣告.用來存放不同難易度的 中 英

Microsoft PowerPoint - Class4.pptx

投影片 1

泛型演算法萃取實例

Microsoft PowerPoint - vb.net2.ppt

現在人類獲取地球內部訊息的方法, 是從可能影響我們身家性命安全的地震, 用數學模型把地震資料轉換成地震波速度, 進而獲得地底物質密度與深度的關係 地下世界知多少 km/s g/cm 3 P Gpa km S P S 3,000 3,000 ak K 透視地底 Percy Bridgma

Java 程式設計入門

10_String

Maasa停車場管理系統

C/C++基礎程式設計班

Microsoft PowerPoint - chap3

第 二 章 古 代 慢 慢 睁 开 眼 睛, 我 的 面 前 出 现 一 个 女 孩 子, 大 约 十 六 七 岁, 身 穿 淡 绿 色 布 裙, 头 上 两 个 小 圆 髻 特 别 娇 俏 可 爱 医 院 什 么 时 候 出 现 这 么 一 个 可 爱 的 古 装 护 士 啊! 这 医 院 真 有

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

3.1 num = 3 ch = 'C' 2

運算子多載 Operator Overloading

IsPostBack 2

踏出C++的第一步

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

運算子多載 Operator Overloading

C/C++基礎程式設計班

Microsoft Word - _m30.doc

(Microsoft PowerPoint - PHP_Ch11 [\254\333\256e\274\322\246\241])

The Embedded computing platform

Chapter 2 MATLAB基本功能介紹

Microsoft PowerPoint - pl_4.ppt

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

本章內容 2-1 陣列及陣列位址的計算一維陣列位址計算多維陣列位址計算 2-2 一維陣列的基本運算讀取 寫入 複製 輸出 插入資料 刪除 2-3 二維陣列及矩陣的儲存與運算矩陣輸出 矩陣轉置 矩陣相加 矩陣相乘 2-4 字串 ( 字元陣列 ) 計算字串長度 字串複製 字串比較 子字串擷取 2

VB控件教程大全

穨文件1

(Microsoft PowerPoint - \262\304\244\273\263\271)

Microsoft Word - 投影片ch03

Microsoft PowerPoint - Class2.pptx

Microsoft PowerPoint - chap13.ppt

Microsoft PowerPoint - Chapter4

TC35短信发送程序设计

程式設計入門

Win-GRAF-User_Manual-chinese V1.05

Hashing

Microsoft Word - PowerLanguage語法構造簡易說明.doc

101 年度的統測題目就以字串處理函數出題, 顯見字串處理的演算處理是不容小覷的, 其主要的代表的題目有括號配對問題 文字位置比對 以及字串取代問題 1. 括號配對問題 : 給一個只有包含小括號 () 及中括號 的字串 當字串將小括號和中括號一組一組取掉後該字串為一個空字串 Test Data:(

PowerPoint 簡報

(Microsoft Word - \263\346\244\2705VB.doc)

Chapter 16 集合

untitled

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

05855BT07.indd

函數的參數 陣列也可以用來作為函數的參數, 由於陣列的傳遞採用傳址的方式, 因此在函數中對陣列的修改將會是永久性的修改, 離開函數後並不會恢復成原先的數值 以練習 static void Main(string[] args) sum(10); sum(20); sum(30); static vo

第1章

Python_03

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

Strings

Microsoft Word - CH09

Microsoft Word - 4.doc

<4D F736F F D203938BEC7ACECBCD2C0C0B8D5A8F7AEE6A6A1C0C92DB57BA6A1B35DAD705FA6B3B8D1B5AA5F2E646F63>

Transcription:

字串與陣列 資訊科技系 林偉川 一維陣列的處理 陣列 (Array) 是一種基本的資料結構, 它是將相同資料型別的變數集合起來, 使用一個名稱代表, 然後使用索引值存取變數的值, 如下圖所示 : 2 1

宣告一維陣列 - 宣告 VB.NET 陣列同樣使用 Dim 指令宣告, 我們可以在宣告時同時指定陣列的尺寸, 一維陣列的宣告語法, 如下所示 : Dim 陣列名稱 ( 最大索引 ) As 資料型別 上述語法宣告名為 陣列名稱 的陣列, 元素個數為括號的最大索引數加一, 資料型別 是 VB.NET 基本資料型別 String 資料型別 結構和類別物件 陣列宣告的範例, 如下所示 : Dim arrscore(4) As Integer Dim arrname(4) As String 3 宣告一維陣列 - 初值 在宣告陣列時, 不指定陣列最大索引, 而是直接指定陣列各元素的初值, 如下所示 : Dim arrscore() As Integer = {60, 89, 75, 68, 90} 上述宣告的陣列大小是初值的個數, 陣列索引的最大值是初值個數減一 當然我們也可以使用指定敘述指定陣列值, 如下所示 : arrscore(0) = 60 arrscore(1) = 89 arrscore(2) = 75 arrscore(3) = 68 arrscore(4) = 90 4 2

宣告一維陣列 - 存取 取出陣列值的程式碼, 如下所示 : Dim score As Integer score = arrscore(3) 上述程式碼取得陣列索引 3 的值, 因為索引值從 0 開始, 也就是陣列的第 4 個元素值 68 5 For Each 迴圈存取陣列元素與邊界函數 - 語法 VB.NET 的 For Each 迴圈就可以輕鬆走訪整個陣列, 其語法如下所示 : For Each 變數 In 陣列程式區塊 Next 上述 變數 取得陣列的一個元素, 變數需要和陣列屬於相同的資料型別, 此迴圈自動從索引 0 開始, 每執行一次迴圈取得一個元素值並且自動移至下一個 6 3

For Each 迴圈存取陣列元素與邊界函數 - 範例 計算 arrscore 陣列各元素的總和, 如下所示 : For Each element In arrscore total += element Next 7 For Each 迴圈存取陣列元素與邊界函數 - 函數 VB.NET 提供函數可以取得陣列的邊界, 傳入的參數是陣列變數, 如下表所示 : 函數 LBound(Array) UBound(Array) 說明傳回整數值的陣列最小索引值, 因為 VB.NET 預設的索引是從 0 開始, 其傳回值是 0 傳回整數值的陣列最大索引值 8 4

字串的基礎 VB.NET 的字串是 String 資料型別的變數或字串值, 字串是 0 或多個依序的 Unicode 字元使用 ASCII 字碼的雙引號所括起的文字內容, 如下所示 : Dim str As String = "VB.NET 程式設計範例教本 " Dim str1 As String str1 = "ASP.NET 網頁製作徹底研究 " 9 字串長度與大小寫轉換 函數 Len(Stmt) 說明 傳回整數的字串長度, 擁有多少個字元或中文字 UCase(Stmt) 將參數字串或字元的英文字母轉換成大寫 LCase(Stmt) 將參數字串或字元的英文字母轉換成小寫 LTrim(Stmt) 刪除字串開頭的空白字元 RTrim(Stmt) 刪除字串結尾的空白字元 Trim(Stmt) Space(num) 刪除頭尾兩端的空白字元 傳回參數 num 個空白字元的字串 Asc(Stmt) 傳回參數 Stmt 字串第 1 個字元的 ASCII 碼, 例如 :Asc("A") 為 65 10 5

取出子字串與字串反轉 函數 Mid(Stmt, start[, length]) Left(Stmt, length) Right(Stmt, length) StrReverse(Stmt) 說明從參數 Stmt 字串的 start 位置 ( 從 1 開始 ) 取出長 length 的子字串, 如果沒有 length 參數, 就是從 start 位置到字串結尾的所有字元從參數 Stmt 字串從開頭起算共 length 長度的字元, 如果為 0 傳回空字串, 如果大於字串長度, 傳回整個字串從參數 Stmt 字串從右邊回頭起算共 length 長度的字元, 如果為 0 傳回空字串, 如果大於字串長度, 傳回整個字串將參數的 Stmt 字串反轉, 例如 :VB.NET 成為 TEN.BV 11 子字串的搜尋與取代 VB.NET 並沒有字串取代函數, 如下所示 : out = txtinput.text strleft = Mid(out, 1, pos) strright = Mid(out, pos + length + 1) txtinput.text = strleft & txtreplace.text & strright 函數 說明 InStr(start, Stmt1, Stmt2[, Type]) 在參數 Stmt1 字串的 start 位置 ( 從 1 開始 ) 開始找尋 Stmt2 字串, 如果找 到傳回找到的位置, 沒有找到傳回 0,Type 是 Option Compare 的 Text 或 Binary 的字串比較方式, 如果沒有指 定, 使用 Option Compare 的設定 12 6

多維陣列的處理 二維陣列 (Two-dimensional Array) 或多維陣列都是一維陣列的擴充, 如果將一維陣列想像成一度空間的線, 二維陣列就是一個二度空間的平面, 三維陣列即空間 13 多維陣列的處理 - 範例 學生成績的二維陣列, 如下所示 : Dim Scores(,) As Integer={{ 54, 68, 93 }, { 67, 78, 89} } 上述程式碼宣告二維陣列 Scores, 並且指定元素值, 在第一維共有 2 個元素, 每一個元素是一位學生成績的一維陣列 { 54, 68, 93 } 和 { 67, 78, 89 }, 各擁有 3 個元素, 分別是國文 數學和英文成績 14 7

多維陣列的處理 - 走訪 在設定好陣列值後, 可以使用巢狀迴圈存取二維陣列, 如下所示 : For i = 0 To 1 For j = 0 To 2 Sums(i) += Scores(i, j) Next Next 15 動態陣列與參數傳遞 VB.NET 陣列可以動態調整其大小, 換句話說, 如果當初宣告的陣列不夠用時, 可以擴充陣列大小, 如果太大時, 可以縮小尺寸, 幫助您有效的進行記憶體管理 因為字串與陣列都屬於參考型別, 就算使用 ByVal 傳值方式傳遞到函數, 函數仍然會更改變數值 16 8

動態陣列 VB.NET 的陣列可以使用 ReDim 指令在程式執行時重新調整大小, 不過 ReDim 指令並不能宣告陣列, 只能更改已經宣告的陣列尺寸, 如下所示 : Dim arrsize(4) As Integer ReDim arrsize(6) 上述程式碼將原來的 arrsize 陣列大小從 4 改為 6 Preserve 關鍵字保留原陣列的內容, 如下所示 : ReDim Preserve arrsize(6) 17 傳遞字串與陣列參數 資料型別 ByVal 方式數值型別無法變更變數和成員參考型別程序無法變更變數, 但可以變更成員 ByRef 方式 可以變更變數和成員 可以變更變數和成員 18 9

陣列的排序與搜尋 排序 (Sorting) 和 搜尋 (Searching) 在計算機科學屬於資料結構與演算法的範疇, 事實上, 電腦有相當多的執行時間都是在處理資料的排序和搜尋, 排序和搜尋實際應用在資料庫系統 編譯程式和作業系統之中 19 陣列的排序 排序的工作是將一些資料依照特定的原則排列成遞增或遞減的順序 例如 : 整數陣列 Data 的內容, 如下所示 : Data(0)=89 Date(1)=34 Date(2)=78 Date(3)=45 上述陣列以整數大小將陣列內容依遞增的順序排序, 排序的結果如下所示 : Data(0)=34 Date(1)=45 Date(2)=78 Date(3)=89 上述陣列 Data 已經排序, 其大小順序如下所示 :Data(0) < Data(1) < Data(2) < Data(3) 20 10

陣列的排序 - 泡沫排序法 泡沫排序法使用交換方式進行排序, 將較小的元素逐漸搬移到陣列的開始, 將較大的元素慢慢的浮往陣列的最後, 如同水缸中的泡沫, 慢慢往上浮, 故稱為泡沫排序法 原來的陣列內容, 如下所示 : Data(0)=89 Date(1)=34 Date(2)=78 Date(3)=45 交換陣列元素, 如下所示 : Data(0)=89 > Date(1)=34 => Data(0)=34 Date(1)=89 交換 Data(1)=89 > Date(2)=78 => Data(1)=78 Date(2)=89 交換 Data(2)=89 > Date(3)=45 => Data(2)=45 Date(3)=89 交換 21 陣列的搜尋 搜尋是在資料中找出是否存在與鍵值相同的資料, 如果資料存在, 就進行後續的資料處理 搜尋方法依照搜尋的資料分為兩種, 如下所示 : 沒有排序的資料 : 針對沒有排序的資料執行搜尋, 我們需要從資料內的第 1 個元素開始比較, 從頭到尾以確認資料是否存在 已經排序的資料 : 搜尋就不需要從頭開始一個個的比較 例如 : 在電話簿找電話, 相信沒有人是從電話簿的第一頁開始找, 而是直接從姓名出現的頁數開始找, 這是因為電話簿已經依照姓名排序好了 22 11

陣列的搜尋 - 線性搜尋法 線性搜尋法是從陣列的第 1 個元素開始走訪整個陣列, 然後一個一個比較是否擁有搜尋的鍵值, 因為需要走訪整個陣列, 所以陣列資料是否排序都無所謂 23 陣列的搜尋 - 二元搜尋法 二元搜尋法屬於一種分割資料的搜尋方法, 搜尋的資料需要是已經排序的資料, 二元搜尋法先檢查排序資料的中間元素, 如果等於鍵值就是找到, 如果小於鍵值, 表示資料是在前半段, 否則在後半段 例如 :Data 陣列索引的上下範圍分別是 low 和 high, 中間元素 mid 是 (low + high)\2 在執行二元搜尋時可以分成三種情況, 如下所示 : 搜尋鍵值小於陣列的中間元素 : 鍵值在資料陣列的前半部 搜尋鍵值大於陣列的中間元素 : 鍵值在資料陣列的後半部 搜尋鍵值等於陣列的中間元素 : 找到搜尋的鍵值 24 12

作業 以陣列顯示出一個數的各個數字切割後的結果 25 13