版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、16.1 一維數(shù)組 6.1.1 一維數(shù)組的創(chuàng)建及初始化 一維數(shù)組的聲明與分配語句的語法形式: 數(shù)據(jù)類型 數(shù)組名 = new 數(shù)據(jù)類型符長度;或者: 數(shù)據(jù)類型 數(shù)組名; 數(shù)組名=new 數(shù)據(jù)類型符長度; 示例: double score=new double300 ;或者: double score; score=new double 300 ; 第1頁/共40頁26.1.1 一維數(shù)組的創(chuàng)建及初始化 為數(shù)組元素賦初值的語法形式:數(shù)據(jù)類型符 數(shù)組名 = 初值列表;或者:數(shù)據(jù)類型符 數(shù)組名= new 數(shù)據(jù)類型符 初值列表; 示例:int x=1,2,3,4;int x=new int 1,2,3,4
2、;第2頁/共40頁36.1.2 一維數(shù)組的簡單應(yīng)用示例:double aver = 0.0;double score=new double300 ;for(int i=0;i300;i+) scorei=i;for (int j = 0; j 300; j+) aver = aver + scorej; aver = aver / 300;第3頁/共40頁46.2 二維數(shù)組 6.2.1 二維數(shù)組的創(chuàng)建及初始化 二維數(shù)組的定義與分配語法形式:數(shù)據(jù)類型符 , 數(shù)組名 =new數(shù)據(jù)類型符長度1,長度2; 或者數(shù)據(jù)類型符 , 數(shù)組名;數(shù)組名=new 數(shù)據(jù)類型符 長度1,長度2; 示例: int , a
3、=new int 3,4; 或者 int , a; a=new int 3,4; /為數(shù)組分配存儲(chǔ)空間 第4頁/共40頁56.2.1 二維數(shù)組的創(chuàng)建及初始化 為數(shù)組元素賦初值的語法形式:數(shù)據(jù)類型符 , 數(shù)組名 =new int , 初始列表1,初始列表2, ,初始列表n ;或者數(shù)據(jù)類型符 , 數(shù)組名 =初始列表1,初始列表2,初始列表n ; 示例: int,a=new int ,1,2,3,4,5,6; 或者: int,a=1,2,3,4,5,6;第5頁/共40頁66.2.2 二維數(shù)組的簡單應(yīng)用示例:某班有M名同學(xué),本學(xué)期開了N門課,期末考試后,要統(tǒng)計(jì)每個(gè)學(xué)生的平均分,請編寫程序代碼實(shí)現(xiàn)該功能
4、,要求對于每個(gè)學(xué)生要輸入學(xué)號和N門課的成績。static void Main(string args) const int M = 2; const int N = 2; int, score= new intM, N + 1; int i, j; double aver = new doubleM; for (i = 0; i M; i+) Console.WriteLine(請輸入第0個(gè)人的學(xué)號和成績:,i+1); score i , 0 = Convert.ToInt32(Console.ReadLine(); for ( j=1;j=N ;j+) score i, j = Conver
5、t.ToInt32(Console.ReadLine(); 第6頁/共40頁76.2.2 二維數(shù)組的簡單應(yīng)用接上頁for (i = 0; i M; i+) averi = 0; for ( j = 1; j = N; j+) averi = averi + score i, j; averi = averi /N ; for (i = 0; i M; i+) Console.WriteLine(); for ( j=0;j=N ;j+) Console .Write (0 , score i,j ); Console.Write(0 ,aver i ); Console.Read(); 第7頁
6、/共40頁86.3 交錯(cuò)數(shù)組數(shù)組也屬于多維數(shù)組,只是其每行的列數(shù)均不同。 交錯(cuò)數(shù)組的定義一般分為兩步,以二維數(shù)組為例。首先定義二維數(shù)組占用的行數(shù),并分配行,然后定義每一個(gè),并分配空間。第8頁/共40頁96.3.1 交錯(cuò)數(shù)組的創(chuàng)建及初始化分配行:數(shù)據(jù)類型符 數(shù)組名=new 數(shù)據(jù)類型符 行數(shù) ;示例:int b=new int 3 ; /定義具有3行的交錯(cuò)數(shù)組各行數(shù)組元素個(gè)數(shù)的分配 :數(shù)組名i=new 數(shù)據(jù)類型符 長度; b0=new int 2;/首行具有兩個(gè)元素 b1=new int 3; /第二行具有3個(gè)元素 b2=new int 4; /第三具有有4個(gè)元素第9頁/共40頁106.3.1 交
7、錯(cuò)數(shù)組的創(chuàng)建及初始化交錯(cuò)數(shù)組可以在聲明時(shí)進(jìn)行初始化。示例:int a=new int new int 1,2, new int 3,4,5, new int 6,7,8,9;或者: int a= new int 1,2, new int 3,4,5, new int 6,7,8,9 ;第10頁/共40頁116.3.2 交錯(cuò)數(shù)組的簡單應(yīng)用 示例: 編程輸出楊輝三角的前五行。楊輝三角的前五行值如下。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1第11頁/共40頁126.3.2 交錯(cuò)數(shù)組的簡單應(yīng)用static void Main(string args) const int M = 5
8、; int yhsj = new intM ; int i, j; for (i = 0; i 5; i+) yhsji = new inti + 1; for (i = 0; i M; i+) yhsji0 = 1; yhsjii = 1; for (i = 2; i 5; i+) for ( j = 1; j i; j+) yhsji j = yhsji - 1 j - 1 + yhsji - 1 j; for (i = 0; i M; i+) Console.WriteLine(); for ( j=0;j=i;j+) Console .Write(0 ,yhsj i j ); 第12頁
9、/共40頁136.4 遍歷數(shù)組6.4.1 使用for循環(huán)遍歷 在遍歷數(shù)組時(shí),最常用的3種方式就是使用Array類提供的Length屬性、GetUpperBound方法和GetLength方法。遍歷一維數(shù)組 示例:int a = 1, 2, 3, 4, 5, 6 ;for (int i = 0; i a.Length; i+) Console.Write(0,-4, ai);Console.Read();第13頁/共40頁146.4.1 使用for循環(huán)遍歷示例:通過GetUpperBound方法獲取數(shù)組的最高下標(biāo)。int a = 1, 2, 3, 4, 5, 6 ;for (int i = 0;
10、 i a.GetUpperBound(0)+1; i+) Console.Write(0,-4, ai);Console.Read();注: GetUpperBound方法中的參數(shù)0表示0維,一維數(shù)組的維數(shù)就是0。第14頁/共40頁156.4.1 使用for循環(huán)遍歷遍歷二維數(shù)組示例:int, a = 1, 2, 3, 4, 5, 6 ;int n = a.Length;Console.WriteLine(一共有0個(gè)元素!,n );for (int i = 0; i a.GetLength(0)+1; i+) Console.WriteLine(); for (int j = 0; j a.Ge
11、tLength(1)+1;j+ ) Console.Write(0,-4, ai,j ); Console.Read();第15頁/共40頁166.4.1 使用for循環(huán)遍歷遍歷交錯(cuò)數(shù)組 示例:int a = new int 2 ;a0=new int 1,2,3;a1=new int 4,5;int n = a.Length;Console.WriteLine(一共有0個(gè)元素!,n );for (int i = 0; i a.Length; i+) Console.WriteLine(); for (int j = 0; j a i .Length ; j+) Console.Write(0
12、,-4, aij);Console.Read();第16頁/共40頁17 注意Array類的Length屬性在二維數(shù)組和交錯(cuò)數(shù)組中的用法區(qū)別。第17頁/共40頁186.4.2 使用foreach遍歷一維數(shù)組示例:int numbers = 4, 5, 6, 1, 2, 3, -1, -2, 0 ;foreach (int i in numbers) Console.WriteLine(i);第18頁/共40頁196.4.2 使用foreach遍歷二維數(shù)組示例:int , numbers =new int3,2 4,44 ,5,55 ,6,66;foreach (int i in numbers
13、) Console.Write(0,-3 , i );Console.Read();第19頁/共40頁206.5 常用集合 6.5.1 ArrayList類 ArrayList是一個(gè)集合,使用方法與Array類似,但Array是數(shù)組,有維數(shù)且大小固定,而ArrayList沒有維數(shù),大小不固定,故ArrayList又稱為動(dòng)態(tài)數(shù)組。 常用屬性: Count:獲取動(dòng)態(tài)數(shù)組中實(shí)際所包含的元素?cái)?shù) Item:獲取或設(shè)置指定索引處的元素 Capacity:獲取動(dòng)態(tài)數(shù)組的容量大小第20頁/共40頁216.5.1 ArrayList類常用方法:Add、Remove、RemoveAt、Clear、Insert、I
14、ndexOf、Reverse、Sort、ToArray、Contains。示例: ArrayList li = new ArrayList(8);注意,這里的8指,容量與元素的個(gè)數(shù)是兩個(gè)完全不同的概念,集合中的元素個(gè)數(shù)通過屬性Count獲取,而容量則是通過Capacity屬性獲取。容量總是大于或等于元素的個(gè)數(shù)。 第21頁/共40頁226.5.1 ArrayList類示例:static void Main(string args) ArrayList Li = new ArrayList(2); Console.WriteLine(Li中的元素的個(gè)數(shù)為0, Li.Count); Console.
15、WriteLine(Li中的容量為0, Li.Capacity ); int arr = new int 10; Console.WriteLine(arr中的元素的個(gè)數(shù)為0,arr.Length ); Console.Read();第22頁/共40頁23添加元素 Add方法,添加元素,自動(dòng)添加到列表的末尾。示例:static void Main(string args) ArrayList Li = new ArrayList (); Li.Add(a); Li.Add(nihao ); Li.Add(1); for (int i = 0; i Li.Count; i+) Console.W
16、rite(0,-4,Lii ); Console.Read(); 第23頁/共40頁24插入元素ArrayList提供了一個(gè)用于插入操作的方法Insert,該函數(shù)的語法形式如下: public void Insert( int index, Object value)示例:ArrayList Li = new ArrayList();string arr = new string wo, men, shi, peng, you ;Li.Add(a);Li.Add(nihao );Li.Add(1);Li.AddRange(arr); /注意與Li.Add (arr)的區(qū)別; Li.Add(21
17、);Console.WriteLine (Li.Count);Console.WriteLine(Li.Capacity);Console.WriteLine(排序前的順序?yàn)椋?;第24頁/共40頁25插入元素 代碼接上頁for (int i = 0; i Li.Count; i+) Console.Write(0,-8 , Lii); if (i+1) % 5 = 0) Console.WriteLine();Li.Insert(0,hehe);Console.WriteLine();Console.WriteLine(插入后的順序?yàn)椋?;for (int i = 0; i Li.Count
18、; i+) Console.Write(0,-8 , Lii); if (i +1)% 5 = 0) Console.WriteLine();Console.Read();第25頁/共40頁26刪除元素對于ArrayList類的實(shí)例不再需要的元素,可以通過Remove和RemoveAt刪除。示例:static void Main(string args) ArrayList Li = new ArrayList(); string arr = new string wo, men, shi, peng, nihao ; Li.Add(a); Li.Add(nihao); Li.Add(1);
19、Li.AddRange(arr); Li.Add(21); Console.WriteLine(排序前的順序?yàn)椋?;第26頁/共40頁27刪除元素代碼接上頁for (int i = 0; i Li.Count; i+) Console.Write(0,-8 , Lii); if (i+1) % 5 = 0) Console.WriteLine(); Li.Remove(nihao); Console.WriteLine(); Console.WriteLine(排序后的順序?yàn)椋?; for (int i = 0; i Li.Count; i+) Console.Write(0,-8 , Lii
20、); if (i + 1) % 5 = 0) Console.WriteLine(); Console.Read();注意:Remove方法負(fù)責(zé)移除ArrayList對象的第一個(gè)匹配項(xiàng)RemoveAt的參數(shù)不是要?jiǎng)h除的元素,而是其下標(biāo),例如RemoveAt(1)第27頁/共40頁28元素的排序Sort方法用于排序。示例:static void Main(string args) ArrayList Li = new ArrayList(); string arr = new string wo, men, shi, peng, you ; Li.Add(a); Li.Add(nihao); L
21、i.Add(1); Li.AddRange(arr); Li.Add(21); Console.WriteLine(排序前的順序?yàn)椋?;第28頁/共40頁29元素排序 代碼接上頁 for (int i = 0; i Li.Count; i+) Console.Write(0,-8 , Lii); if (i+1) % 5 = 0) Console.WriteLine(); Li.Sort(); Console.WriteLine(); Console.WriteLine(排序后的順序?yàn)椋?; for (int i = 0; i Li.Count; i+) Console.Write(0,-8
22、, Lii); if (i + 1) % 5 = 0) Console.WriteLine(); Console.Read(); 注意:元素類型必須相同,否則排序會(huì)出錯(cuò)!第29頁/共40頁306.5.2 哈希表 哈希表,是按照鏈表的形式進(jìn)行存儲(chǔ)的,不需要順序排列,而ArrayList類是按照順序進(jìn)行排列的。對于鏈表存儲(chǔ)的結(jié)構(gòu),需要通過索引進(jìn)行訪問。第30頁/共40頁31 Hashtable類表示哈希表,是一個(gè)鍵/值對的集合。 常用屬性:Keys,Values ,Count。 常用方法:Add、Remove、Clear、 ContainKey、ContainValue 第31頁/共40頁326.
23、5.2 哈希表示例:static void Main(string args) Hashtable ht = new Hashtable(); ht.Add(001,number); ht.Add (002,grade); ht.Add(003, name); Console.WriteLine(輸出ht的鍵/值的對數(shù)為:0, ht.Count ); Console.WriteLine(請輸入要查找的鍵:); string a = Console.ReadLine(); if (ht.ContainsKey(a) Console.WriteLine(找到鍵0所對應(yīng)的值1, a, hta); e
24、lse Console.WriteLine(在ht中沒有找到要查找的鍵0,a); ht.Remove(003);第32頁/共40頁336.5.2 哈希表 Console.WriteLine(請輸入要查找的鍵:); string b = Console.ReadLine(); Console.WriteLine(“鍵0所對應(yīng)的值1在哈希表中”, b, ht.ContainsKey(b)?”包含”:”沒有包含”); String value=“name”; Console.WriteLine(“值0所對應(yīng)的鍵1在哈希表中”, value, ht.ContainsValue(value)?”包含”:
25、”沒有包含”); Console.WriteLine(“在沒有使用方法clear前輸出ht的鍵/值的對數(shù)為:0” ,ht.Count); ht.Clear(); Console.WriteLine(“使用了clear方法后,輸出的鍵/值的對數(shù)為:0”,ht.Count); Console.ReadLine();第33頁/共40頁34遍歷哈希表 遍歷哈希表通過foreach語句來實(shí)現(xiàn),有兩種方式。一種是使用DictionaryEntry結(jié)構(gòu)體訪問Hashtable中的元素;另一種就是使用普通的類型作為只讀變量,通過鍵的下標(biāo)來訪問。 第34頁/共40頁35遍歷哈希表使用DirectonaryEnt
26、ry遍歷哈希表 示例:static void Main(string args) Hashtable ht = new Hashtable(); ht.Add(001,number); ht.Add (002,grade); ht.Add(003, name); ht.Add(004,age); ht.Add(005, sex); Console.WriteLine(輸出ht的鍵/值的對數(shù)為:0,ht.Count ); foreach (DictionaryEntry de in ht) Console.Write(0,-4,de.Key); Console.Write(0,-4,de.Value); Console.WriteLine(); Console .ReadLine ();第35頁/共40頁36遍歷哈希表通過鍵的下標(biāo)遍歷哈希表示例:static void Main(string args) Hashtable sh = new Hashtable(); sh.Add(001, str1); sh.Add(002, str2); sh.Add(003, str3); Console.WriteLine(code string ); foreach (string s in sh.Keys) Console
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- QC/T 686-2024摩托車和輕便摩托車發(fā)動(dòng)機(jī)組合式曲軸連桿總成
- 2025-2030年中國智能公交行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 新形勢下餐飲食材配送行業(yè)可持續(xù)發(fā)展戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國有色金屬礦產(chǎn)采選行業(yè)開拓第二增長曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 高層領(lǐng)導(dǎo)戰(zhàn)略管理培訓(xùn)課件
- 四川省綿陽市2024屆高三下學(xué)期第三次診斷性考試(三模)英語試題
- 中國錄音復(fù)制行業(yè)競爭格局分析及投資戰(zhàn)略咨詢報(bào)告
- 一年級數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)匯編
- 實(shí)驗(yàn)小學(xué)學(xué)年第一學(xué)期班主任參考計(jì)劃二年級3班
- 疫情防控視角下的社區(qū)多元主體協(xié)同治理研究
- 2024年危險(xiǎn)化學(xué)品生產(chǎn)經(jīng)營單位其他從業(yè)人員考試題庫附答案
- 信號分析與處理課程設(shè)計(jì)課程教學(xué)大綱基本要求及規(guī)范(集中實(shí)踐環(huán)節(jié))
- 2024年中考物理真題及分類匯編-考點(diǎn)25:磁現(xiàn)象-電生磁
- 2024年更新版:精準(zhǔn)農(nóng)業(yè)無人機(jī)植保服務(wù)合同
- 2024年度中國醫(yī)院人力資源現(xiàn)狀調(diào)研報(bào)告
- 【MOOC】有機(jī)化學(xué)-華中農(nóng)業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 二水石膏轉(zhuǎn)化為半水石膏的研究
- 中醫(yī)特色治療進(jìn)修匯報(bào)
- 闌尾炎內(nèi)鏡治療
- 《2025年日歷》電子版模板年歷月歷工作學(xué)習(xí)計(jì)劃橫版整年帶農(nóng)歷
- 2023-2024學(xué)年廣東省廣州市白云區(qū)九年級(上)期末語文試卷
評論
0/150
提交評論