




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 基本數(shù)據(jù)類型王德俊 上海交通大學繼續(xù)教育學院第2章 基本數(shù)據(jù)類型2.1 一個簡單的程序 2.2 基本數(shù)據(jù)類型2.3 變量與常量2.4 基本運算2.5 數(shù)組的定義和使用 (數(shù)組類與數(shù)組列表類 結構 枚舉)選擇排序過程:(1)首先通過n-1次比較,從n個數(shù)中找出最小的,將它與第一個數(shù)交換-第一趟選擇排序,結果最小的數(shù)被安置在第一個元素位置上(2)再通過n-2次比較,從剩余的n-1個數(shù)中找出關鍵字次小的記錄,將它與第二個數(shù)交換-第二趟選擇排序(3)重復上述過程,共經(jīng)過n-1趟排序后,排序結束用簡單選擇法對n個數(shù)排序數(shù)組類與數(shù)組列表類 static void Main(string args)
2、 const int n = 10; int a=new intn; int i,j,k,x; Console.WriteLine(Input 10 numbers:); for(i=0;i=n-1;i+) ai=int.Parse(Console.ReadLine(); Console.WriteLine(); /輸入數(shù)組元素 數(shù)組類與數(shù)組列表類(續(xù)) for(i=0;i=n-2;i+) k=i; /記錄最小的數(shù)所在的位置 for(j=i+1;j=n-1;j+) if(ajak) k=j; if(i!=k) x=ai;ai=ak;ak=x; /簡單選擇排序 Console.WriteLine
3、(The sorted numbers:); for(i=0;i=n-1;i+) Console.Write(0 , ai); Console.WriteLine(); Console.ReadLine(); /輸出數(shù)組元素數(shù)組類與數(shù)組列表類(續(xù))C#通過.NET框架中的數(shù)組類來支持數(shù)組,因此,可以使用該類的屬性與方法操作數(shù)組數(shù)組列表類(ArrayList)是一個集合類,由該類聲明的對象也可以當做數(shù)組來使用數(shù)組類與數(shù)組列表類(續(xù))類類提供創(chuàng)建、操作、搜索和排序數(shù)組的方法,因而在CLR中用作所有數(shù)組的基類。列舉常用屬性和方法如下:1)Length屬性2)IsReadOnly屬性3)Clone方法
4、4)CopyTo方法5)Sort方法6)Reverse方法類(續(xù))Length屬性: 是數(shù)組對象的一個只讀屬性,表示數(shù)組包含多少個元素在操作數(shù)組時,可利用Length屬性避免下標越界,例如:int A=new int10;for(int i=0;i;i=i+1) Ai=i;IsReadOnly屬性,此屬性對于所有數(shù)組總是 false。Clone方法實現(xiàn)克隆數(shù)組功能,使用格式:目標數(shù)組名=(數(shù)組類型名)源數(shù)組名.Clone( );例如:int A=new int510,8,6,4,2;/ 聲明并初始化數(shù)組A,該數(shù)組將作為源數(shù)組int B;/ 聲明數(shù)組B,該數(shù)組將作為目標數(shù)組B=(int )A.C
5、lone();/ 使用Clone方法使用克隆方法時,將得到一個與源數(shù)組一模一樣的數(shù)組,且目標數(shù)組不需要再實例化Clone方法創(chuàng)建 Array的淺表副本。即僅復制 Array的元素(無論它們是引用類型還是值類型),但不復制這些引用所引用的對象。 CopyTo方法實現(xiàn)數(shù)組拷貝功能,使用格式:源數(shù)組名.CopyTo(目標數(shù)組名,起始位置);例如:int A=new int56,7,8,9,10; / 聲明并初始化數(shù)組A,該數(shù)組將作為源數(shù)組int B=new int101,2,3,4,5,1,2,3,4,5;/ 聲明并初始化數(shù)組B,該數(shù)組將作為目標數(shù)組A.CopyTo(B,5);將數(shù)組A中的各元素值6
6、、7、8、9、10合并到數(shù)組B中,合并后數(shù)組B中的各元素值為1、2、3、4、5、6、7、8、9、10利用“起始位置”參數(shù),可以將一個元素較少的數(shù)組中的元素值合并到一個元素較多的數(shù)組中Sort方法實現(xiàn)數(shù)組排序功能,使用格式為: Array.Sort(數(shù)組名);例如: int A=new int510,8,6,4,2; Array.Sort(A);排序后,數(shù)組A中各元素值的排列順序為:2、4、6、8、10Reverse方法將數(shù)組名對應的數(shù)組元素順序反轉,格式如下: Array.Reverse(數(shù)組名);例如: Array. Reverse(A);如果數(shù)組A中各元素值原來為:2、46、6、8、10,
7、則反轉后為:10、8、6、46、2示例ArraySort例1 創(chuàng)建Windows應用程序在程序中聲明包含10個元素的雙精度型數(shù)組為數(shù)組元素賦值為0100之間的隨機實數(shù)單擊“升序”按鈕,數(shù)組按升序排序單擊“降序”按鈕,數(shù)組按降序排序輸出排序前后數(shù)組的元素值在Form1類定義中聲明一個double類型的數(shù)組和一個string類型的變量:double A=new double10;string s;窗體的Load事件代碼:private void Form1_Load(object sender, System.EventArgs e)Random rn=new Random( ); / 聲明一個隨
8、機數(shù)生成對象for(int i=0;i;i=i+1) Ai=Math.Round(rn.NextDouble( )*100,1); / 賦予數(shù)組各元素隨機值 s+=Ai+ ; / 將數(shù)組元素值的原順序保存為一個字符串s+=nn;label1.Text=數(shù)組原順序為:n+s;“升序”按鈕的Click事件代碼:private void button1_Click(object sender, e) / 升序 Array.Sort(A);label1.Text=數(shù)組原順序為:n+s;label1.Text+=數(shù)組升序排序:n;for(int i=0;i;i+) label1.Text+=Ai+ ;
9、/ 升序處理結束“降序”按鈕的Click事件代碼:private void button2_Click(object sender, System.EventArgs e) / 降序Array.Sort(A);Array.Reverse(A);label1.Text=數(shù)組原順序為:n+s;label1.Text+=數(shù)組降序排序:n;for(int i=0;iA.Length;i+) label1.Text+=Ai+ ; / 降序處理結束在程序代碼中使用了隨機數(shù)生成對象rn的NextDouble方法,該方法能夠生成一個之間的實數(shù)為了使生成的隨機數(shù)只保留一位小數(shù),使用了Math(數(shù)學)類中的Rou
10、nd方法以確定小數(shù)點后保留幾位小數(shù)Round方法的使用格式為:Math.Round(雙精度類型數(shù)據(jù),需要保留的小 數(shù)位數(shù)).ArrayList類ArrayList是動態(tài)數(shù)組,它的好處:可動態(tài)增加和減少元素,可靈活設置數(shù)組的大小。ArrayList類屬于命名空間ArrayList類常用的方法和屬性1) Count屬性2) IsReadOnly屬性3) Clone與CopyTo方法4) Add 方法5) BinarySearch 方法6) Sort方法和Reverse方法類在聲明ArrayList類對象時,可以用一個已經(jīng)實例化的數(shù)組來初始化,其格式為:ArrayList 對象名=new Array
11、List(數(shù)組名);其中,“數(shù)組名”為已經(jīng)實例化的數(shù)組例如:int A=new int5;/ 聲明并實例化數(shù)組ArrayList AL=new ArrayList(A); / 聲明并實例化數(shù)組列表這樣,AL相當于包含5個元素的整型數(shù)組類1 ) ArrayList類的Count屬性在數(shù)組列表ArrayList類中,表示包含元素個數(shù)的屬性為Count,其性質(zhì)與用法與數(shù)組的Length屬性相同2) IsReadOnly屬性數(shù)組列表均具有IsReadOnly屬性,利用該屬性可以獲知數(shù)組列表中的元素是否為只讀的IsReadOnly屬性值默認為false(假)3) Clone與CopyTo方法克隆(Clo
12、ne)與拷貝(CopyTo)方法的功能均為數(shù)組復制操作:使用格式如下:目標數(shù)組列表名=(ArrayList)源數(shù)組列表名.Clone( );源數(shù)組列表名. CopyTo(目標數(shù)組名)/ Array必須具有從零開始的索引。 4 )Add 方法將對象添加到 ArrayList的結尾處。使用格式:數(shù)組列表名.Add(object對象);如: ArrayList myAL = new ArrayList(); for (int i = 0; i = 4; i+) myAL.Add(i * 2);5)BinarySearch 方法使用默認的比較器在整個已排序的 ArrayList中搜索元素,并返回該元素
13、從零開始的索引,沒找到則返回小于零的值。使用格式:數(shù)組列表名. BinarySearch(object對象);如: int myIndex = myAL.BinarySearch(6); if (myIndex 0) Console.WriteLine(沒找到); else Console.WriteLine(找到0, myIndex);ArrayList方法使用例子 ArrayList myAL = new ArrayList(); for (int i = 0; i = 4; i+) myAL.Add(i * 2); ArrayList myBL = (ArrayList)myAL.Clo
14、ne(); int A=new int5; myAL.CopyTo (A); int myIndex = myBL.BinarySearch(6); if (myIndex 0) Console.WriteLine(沒找到); else Console.WriteLine(找到0, myIndex);Sort方法使用格式為:數(shù)組列表名稱.Sort( );Reverse方法使用格式為:數(shù)組列表名稱.Reverse( );例如:int A=new int55,4,3,2,1;ArrayList AL=new ArrayList(A);AL.Sort( );AL.Reverse();排序后,數(shù)組列表
15、AL中各元素值的排列順序為:1、2、3、4、5反轉后,各元素值的排列順序為:5、4、3、2、16) Sort方法和Reverse方法4 自定義數(shù)據(jù)類型自定義的數(shù)據(jù)類型包括結構與枚舉結構與枚舉都屬于值類型,而數(shù)組是引用類型(1) 結構類型(2) 枚舉類型(1) 結構類型結構類型可以用來處理一組類型不同、內(nèi)容相關的數(shù)據(jù)1) 定義結構2) 聲明結構變量3) 訪問結構變量1) 定義結構結構的定義需要使用struct關鍵字,格式如下:struct 結構類型名public 類型名1 結構成員名1;public 類型名2 結構成員名2;.“結構類型名”表示用戶定義的新數(shù)據(jù)類型名稱一對大括號之間定義結構成員“
16、類型名”可以是基本數(shù)據(jù)類型,也可以是另一個已定義的結構類型例如:struct datepublic uint year,month,day;struct employeepublic string name;public bool sex;public date birthday;public string phone;public decimal pay;2) 聲明結構變量定義結構后,可以用結構來聲明變量例如:date d1;/ 聲明一個結構變量d1可以在聲明結構變量的同時,為結構變量賦值,實質(zhì)上是為結構變量中的成員賦值,如: date d1 = new date(); d1.year =
17、2012; d1.month = 10; d1.day = 8; date d2 = d1; / 用結構變量d1為d2賦值 又如:employee jerry;jerry=tom;/ 用結構變量tom為結構變量jerry賦值3) 訪問結構變量使用結構中的成員必須指出訪問的結構變量方法是在結構變量和成員之間通過運算符“.”連接在一起:結構變量名.成員名例如:=湯姆;tom.sex=true;tom.birthday.year=1980;tom.birthday.month=5;tom.birthday.day=26;tom.pay=1500;(2) 枚舉類型枚舉類型是由用戶定義的一組整型符號常量使用枚舉可以將一組相關的有限常量組織在一起,保證變量只能具有預定的值由于常量都有名稱,易于辨認,從而提高了程序的可讀性1) 定義枚舉類型2) 聲明與訪問枚舉變量1) 定義枚舉類型定義枚舉類型使用關鍵字enum,定義枚舉類型的一般格式為:enum 枚舉類型名符號常量1,符號常量2,枚舉類型的成員均為符號常量,常量名之間用逗號分隔例如:enum SolarSystemSun,Earth,Moon枚舉常量成員的默認值為0、1、2,可以在定義枚舉類型時為成員賦予特定的整數(shù)值例如:enum SolarSystemSun=700000,/ 太陽半徑E
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 簽訂婚后協(xié)議書
- 老人搭伙協(xié)議書
- 退貨補貨協(xié)議書
- 心愿俱樂部授權協(xié)議書
- 船舶代開協(xié)議書
- 移動框架協(xié)議書
- 自愿承債協(xié)議書
- 大閘蟹供貨保障協(xié)議書
- 積極賠償協(xié)議書
- 美團酒店協(xié)議書
- 中國現(xiàn)代文學思潮智慧樹知到期末考試答案章節(jié)答案2024年杭州師范大學
- 畢業(yè)論文《1kta土霉素車間酸化、提煉、干燥工段設計》
- 《水泥用鐵質(zhì)校正料》
- 慈善公益基金會協(xié)會章程兩篇
- LY/T 1612-2023甲醛釋放量檢測用1 m3氣候箱技術要求
- 2024年山東省高中會考數(shù)學題學業(yè)水平考試(有答案)
- 急救器械與設備的使用與維護
- 企業(yè)采購合規(guī)風險與合規(guī)風險防控
- 心理健康教育實訓室建設方案
- 如何做消防銷售員培訓課件
- 中國抗血栓藥物相關出血診療規(guī)范專家共識(2022年版)解讀
評論
0/150
提交評論