計算機基礎(chǔ)與Visual Basic程序設(shè)計(第二版)第八章 數(shù)組_第1頁
計算機基礎(chǔ)與Visual Basic程序設(shè)計(第二版)第八章 數(shù)組_第2頁
計算機基礎(chǔ)與Visual Basic程序設(shè)計(第二版)第八章 數(shù)組_第3頁
計算機基礎(chǔ)與Visual Basic程序設(shè)計(第二版)第八章 數(shù)組_第4頁
計算機基礎(chǔ)與Visual Basic程序設(shè)計(第二版)第八章 數(shù)組_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第八章 數(shù) 組 數(shù)組定義及引用方法,與數(shù)組有關(guān)的一些常用算法 本章要求: 重點: 、二維)的定義及其引用, 4. 掌握與數(shù)組有關(guān)的常用算法,如排序、查找、插入等。 難點: 與數(shù)組有關(guān)的一些常用算法 數(shù)組的概念 在實際應(yīng)用中 , 常常需要處理相同類型的一批數(shù)據(jù) 。 例如 , 為了處理 100個員工的工資 , 可以用 S( 1) , S( 2) , , S( 100) 來分別代表每個員工的工資 , 其中 S( 1) 代表第一個員工的工資 , S( 2)代表第二個員工的工資 。 在 把一組相互關(guān)系密切的數(shù)據(jù)放在一起并用一個統(tǒng)一的名字作為標志 , 這就是數(shù)組 。 數(shù)組中的每一個數(shù)據(jù)稱為數(shù)組元素 , 用數(shù)組名和該數(shù)據(jù)在數(shù)組中的序號來標識 。 序號又稱為下標 , 數(shù)組元素又稱為下標變量 。 例如 , S( 2) 是一個數(shù)組元素 , 其中的 2是下標 。 在使用數(shù)組元素時 , 必須把下標放在一對緊跟在數(shù)組名之后的括號中 。 S( 3)是一個數(shù)組元素 , 而 數(shù)組的概念 數(shù)組的概念: 數(shù)組并不是一種數(shù)據(jù)類型,而是 一組相同類型數(shù)據(jù) 的集合。用一個統(tǒng)一的名字( 數(shù)組名) 代表邏輯上相關(guān)的一批數(shù)據(jù),每個元素用 下標變量 來區(qū)分;下標變量代表元素在數(shù)組中的位置。 其表示形式: A(1), A(10) X(1,1), ,10), X(2,10) Y(0,0,0), Y(1,2,5) 數(shù)組名、空間大小 數(shù)組元素及類型 下標,上界、下界、越界,缺省下界 數(shù)組維數(shù) 數(shù)組的概念 按數(shù)組的大小 ( 元素個數(shù) ) 是否可以改變來分為: 定長數(shù)組 、 動態(tài) ( 可變長 ) 數(shù)組 。 按元素的數(shù)據(jù)類型可分為: 數(shù)值型數(shù)組 、 字符串數(shù)組 、 邏輯數(shù)組 、 日期型數(shù)組 、 變體數(shù)組等 、 對象數(shù)組 。 按數(shù)組的維數(shù)可分為: 一維數(shù)組 、 二維數(shù)組 、 多維數(shù)組 數(shù)組的定義 1、數(shù)組必須“先聲明后使用”, 聲明一個數(shù)組就是聲明其 數(shù)組名 、 類型 、 維數(shù) 和 數(shù)組的大小 。 2、數(shù)組的維數(shù) ( 即下標的個數(shù) ) 各維下標之間用逗號分開。 在 維數(shù)組 、 二維數(shù)組 最多可以達到 60維 3、 靜態(tài)數(shù)組: 數(shù)組聲明時 , 數(shù)組的大小固定的數(shù)組稱為靜態(tài)數(shù)組 。 它指明了數(shù)組的 維數(shù) 和每一維的 下標范圍 , 在使用過程中 , 它的維數(shù)和下標范圍將不得改變 4、 動態(tài)數(shù)組: 數(shù)組聲明時 , 不指明數(shù)組的維數(shù)和每一維的下標范圍 , 僅用一對圓括號表示 , 這樣的數(shù)組稱為 動態(tài)數(shù)組 。 靜態(tài)數(shù)組的定義 靜態(tài)數(shù)組的聲明語法是: 數(shù)組名 ( 下界 上界 , ) 據(jù)類型 例如: 4) 14個元素的局部數(shù)組 。 1 0) 20個元素的模塊級數(shù)組 。 靜態(tài)數(shù)組的定義 說明: (1) 數(shù)組名的命名規(guī)則與變量的命名相同 , 但在同一過程中數(shù)組名不能和簡單變量名同名 , 否則會出錯 。 (2) 下標的最大值和最小值分別稱為數(shù)組的上界和下界 。 數(shù)組元素在上 、 下界內(nèi)是連續(xù)的 。 如: (o 20) 定義一個數(shù)組名為 A, 下界為 上界為 20的一維數(shù)組 , 數(shù)據(jù)類型為整型 ,共有 26個元素 , 即 A( A( A( A(20)。 (3) 缺省 為 0, 若希望下標從 1開始 , 可在模塊的通用部分使用 為 1, 其使用語法格式是: n 參數(shù) 或 1 不能出現(xiàn)在過程中 , 并且必須放在數(shù)組定義前 。 例如: 1 將數(shù)組聲明中缺省 下標設(shè)為 1 靜態(tài)數(shù)組的定義 ( 4) 如果省略 則數(shù)組的類型為變體類型 。 ( 5) 數(shù)組中各元素在內(nèi)存占一片連續(xù)的存儲空間 。 A(0) A(1) A(2) A(n) . 一維數(shù)組在內(nèi)存中存放的順序 二維數(shù)組則按先行后列的順序 。 (2, 3) ( 0 , 0 ) S ( 0 , 1 ) S ( 0 , 2 ) S ( 0 , 3 ) S ( 1 , 0 ) S ( 1 , 1 ) S ( 1 , 2 ) S ( 1 , 3 ) S ( 2 , 0 ) S ( 2 , 1 ) S ( 2 , 2 ) S ( 2 , 3 ) 第 0 行 第 1 行 第 2 行 第 0 列 第 1 列 第 2 列 第 3 列 靜態(tài)數(shù)組的定義 (6) 一維數(shù)組的元素個數(shù):上界 1;多維數(shù)組的元素個數(shù)等于每一維元素個數(shù)的乘積 。 如: x(1 0,3,1 5) 這是一個三維數(shù)組 , 第一維的元素個數(shù)為 10, 第二維的元素個數(shù)為 4, 第三維的元素個數(shù)為 15, 故整個數(shù)組的元素個數(shù)為:10 4 15 600個元素 。 (7) 關(guān)鍵字 具體內(nèi)容將在過程與函數(shù)一章進行講解 。 (8) 在數(shù)組定義后未賦值前 , 對于數(shù)值型數(shù)組各元素的初始值為0;字符型數(shù)組初始值為空字符串;邏輯型數(shù)組初始值為 動態(tài)數(shù)組的定義 創(chuàng)建動態(tài)數(shù)組的步驟: ( 1) 用 用數(shù)組 )、 模塊級數(shù)組 ) 或 部數(shù)組 )在過程中聲明數(shù)組。給數(shù)組 賦以一個空維數(shù)表,這樣就將數(shù)組聲明為動態(tài) 數(shù)組。 ( 2) 在過程中用 聲明的動態(tài)數(shù)組分配 說明: 若選擇 則在對數(shù)組重新說明時,將會保留原數(shù)組中的元素的內(nèi)容,并且只允許 句 改變動態(tài)數(shù)組的最后一維的上限。 如: 1 AS 0,2) 0,)+4) 數(shù)組的清除 經(jīng)過定義的數(shù)組將為其分配相應(yīng)的存儲空間,其大小不能改變。為了 重新初始化靜態(tài)數(shù)組的元素 ,或者 釋放動態(tài)數(shù)組的存儲空間 ,可以使用 句。 格式: 組名 ,數(shù)組名 功能: 重新初始化靜態(tài)數(shù)組的元素 ; 或者 釋放動態(tài)數(shù)組的存儲空間。 說明: 當 數(shù)組元素清空(即:賦默認值); 當 刪除整個數(shù)組結(jié)構(gòu)并釋放該數(shù)組所占用的內(nèi)存。 數(shù)組的清除 0) I=1 0 i)=I ); “” “I=1 0 ); 題: 試驗 數(shù)組的基本操作 1、數(shù)組元素引用 數(shù)組的引用通常是指對數(shù)組中的元素的引用 。 數(shù)組元素的語法格式為: 數(shù)組名 (下標 , 下標 ) 其中 , 下標可以是常量 、 變量或表達式 , 但表達式的值必須介于定義數(shù)組時指定的下標的下界和上界之間 , 否則將導致 “ 下標越界 ” 的錯誤 。 例如: A(1)=A(2)+B(1)+7 取數(shù)組元素運算 A(i)=B(i) 下標使用變量 B(i+1)=A(i+2) 下標使用表達式 C(3,4)=100 下標使用常量 數(shù)組的基本操作 2、給數(shù)組元素賦初值 可以使用 循環(huán)結(jié)構(gòu) 和 數(shù)組賦初值。 ( 1)使用循環(huán)結(jié)構(gòu) 如給數(shù)組 00)的元素賦初值: i = 1 00 i) = 0 2)使用 數(shù) 數(shù)用來為數(shù)組元素賦值,即把一個數(shù)據(jù)集讀入某個數(shù)組, 其語法格式為: = 數(shù)組的基本操作 1 聲明一個靜態(tài)的變體變量 ”5,6,7,8) 輸出數(shù)組的第 4個元素,以及數(shù)組的下界和上界 ), 意: 數(shù)組變量 不能是具體的數(shù)據(jù)類型, 只能是變體類型 。 數(shù)組的基本操作 3、數(shù)組的輸入 數(shù)組的輸入一般可以通過 文本框 輸入和 入。 4、數(shù)組的賦值 可以將一個已知數(shù)組元素的值的數(shù)組整體賦值給一個可調(diào)數(shù)組,并自動確定可調(diào)數(shù)組的大小。 例如: A(4) B() As A(0)=“王華” : A(1)=“黎明” : A(2)=“萬雪” A(3)=“劉芳” : A(4)=夏恬 B =A 將 數(shù)組且大小確定為 5。 注意: 兩數(shù)組的類型必須相同。 5 數(shù)組的輸出 輸出數(shù)組中的全部或部分元素,一般使用 循環(huán)結(jié)構(gòu) 數(shù)組的基本操作 6 、 數(shù)組元素的復制 單個數(shù)組元素可以像簡單變量一樣 , 通過對其賦值 , 也可以把它的值賦給其他的變量或數(shù)組元素 。 即數(shù)組元素之間可以互相復制 , 無論它們是否屬于同一個數(shù)組或維數(shù)是否相同 , 但數(shù)組類型必須相同 。 例如: a(4,8) b(6, 6) a(1, 2) = b(1, 1); a(2, 3) = b(2, 4) b(4, 4) =a (1, 2) 與數(shù)組有關(guān)的函數(shù) 1. 但它只能給聲明 值后的數(shù)組大小由賦值的個數(shù)決定。 例如,要將 1,2,3,4,5,6,7 這些值賦值給數(shù)組 a,可使用下面的方法賦值。 a() A=,2,3,4,5,6,7) a A=,2,3,4,5,6,7) 與數(shù)組有關(guān)的函數(shù) 2 求數(shù)組的上界 )函數(shù)、 下界 )函數(shù) )函數(shù)和 )函數(shù) 分別用來確定數(shù)組某一維的上界和下界值 。 使用形式如下: , ) , ) 其中: : 數(shù)組變量的名稱 , 遵循標準變量命名約定 。 :可選的;一般是整型常量或變量 。 指定返回哪一維的上界 。 1 表示第一維 , 2 表示第二維 , 如此等等 。 如果省略默認是 1。 句與 句類似 , 都是實現(xiàn)循環(huán)結(jié)構(gòu)的語句 。 但 句是專用于數(shù)組和對象集合的 。 其語法格式是: 員 組 循環(huán)體 員 說明: (1) 成員:為一個 是為循環(huán)提供的 , 在 句中代表數(shù)組中的每個元素 , 數(shù)組中有幾個元素 , 此成員就重復使用幾次 , 循環(huán)體就執(zhí)行幾遍 。 (2) 數(shù)組:在此之前經(jīng)過定義的數(shù)組 , 用在此處時僅僅是一個數(shù)組名 , 沒有括號和上下界 。 (3) 句可以對數(shù)組元素進行讀取 、 查詢 、 輸出等操作 , 它所重復執(zhí)行的次數(shù)由數(shù)組中的元素個數(shù)決定 。 例如: 00) x x ; x 此段 00個元素 , 循環(huán)體 (將執(zhí)行 100 次 , 即要輸出 100 次 , 但每次 組中的一個元素 , 所以這段代碼的功能就是輸出 (4) 不能在 因為 控件數(shù)組 1、控件數(shù)組的概念 一個窗體上可以包含多個 同種類型的控件 ,可以通過創(chuàng)建控件數(shù)組的方法使同一類型的控件 共享同一個事件過程 。使用控件數(shù)組的最大好處是編寫的代碼比較簡單且易于維護。 控件數(shù)組: 是具有相同名稱、類型以及事件過程的一組控件。 每一個控件具有一個唯一的索引 ( 。當數(shù)組中的一個控件識別某一事件時,它將調(diào)用此控件數(shù)組的相應(yīng)事件過程,并把相應(yīng)索引作為參數(shù)傳遞給事件過程 。 一個控件數(shù)組至少應(yīng)有一個元素 , 在控件數(shù)組中可用到的最大索引值為 32767。 同一控件數(shù)組中的元素有自己的屬性設(shè) 置值。 控件數(shù)組 2、控件數(shù)組的建立 控件數(shù)組中每一個元素都是控件,它的定義方式與普通數(shù)組不同。可以通過以下兩種方法建立控件數(shù)組。 方法一:復制已有的控件并將其粘貼到窗體上。 方法二:將窗體上已有的類型相同的多個控件的 控件數(shù)組 3、控件數(shù)組應(yīng)用舉例 建立了控件數(shù)組之后,控件數(shù)組中所有控件共享同一事件過程。例如,假定某個控件數(shù)組含有 10個標簽,則不管單擊哪個標簽,系統(tǒng)都會調(diào)用同一個 于每個標簽在程序中的作用不同,系統(tǒng)會將被單擊的標簽的 事件過程根據(jù)不同的 數(shù)組的應(yīng)用 1、求數(shù)組中元素的最大最小值及其所在下標 設(shè)計思想: 該類問題實際上是完成數(shù)組的順序查找,可以假設(shè)第一個元素為最大值,用 ;從數(shù)組第二個元素開始,逐個與 到數(shù)組的最后一個元素;一旦 時將該元素所對應(yīng)下標值賦值給 L,最后輸出 。 數(shù)組的應(yīng)用 2、數(shù)組元素倒置 設(shè)計思想: 該類問題實際上將第 1個元素和第 n I 1個元素交互,交互次數(shù)為 n2次。 例如: i =1 102 t=A(i) A(i)=A(10) A(10)=t 數(shù)組的應(yīng)用 3、排序問題 數(shù)據(jù)的排序就是將一批數(shù)據(jù)由小大到 (升序) 或由大到小 (降序)進行排列。常用的有 選擇法、冒泡法。 ( 1)冒泡法排序: 冒泡排序是常用的一種排序方法。假設(shè) 序思想為: 第一輪: 從數(shù)組的第一項開始,每一項( i)都與下一項( i+1)進行比較。如果下一項的值較小,就將這兩項的位置交換,直到最后第 最大的數(shù)排列在最后。 第二輪: 從數(shù)組的第一項開始,每一項( i)都與下一項( i+1)進行比較。如果下一項的值較小,就將這兩項的位置交換,直到最后第 第二大的數(shù)排列在倒數(shù)第二位。 依此類推, 直到只有第一項與第二項進行比較交換,完成遞增法排序。 數(shù)組的應(yīng)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論