版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 數(shù)組和方法,數(shù)組 數(shù)組的概念 一維數(shù)組的定義、分配與初始化 二維數(shù)組的定義、分配與初始化 foreach語句的使用方法 方法 方法的概念 方法的定義 方法的調用 參數(shù)傳遞 方法的嵌套調用與遞歸調用,4.1 數(shù)組,4.1.1 數(shù)組的概念 很多個變量的集合,這些變量具有相同的類型,這些變量均具有相同的名稱,并且可以通過下標相互區(qū)分,每一個這樣的變量稱為數(shù)組元素。 例如:計算300個學生數(shù)學成績的平均分 aver=0.0; for(i=0;i300;i+) aver=aver+cji; aver=aver/300;,4.1.2 一維數(shù)組的定義、分配與使用,一維數(shù)組:只有一個下標的數(shù)組。 數(shù)組
2、在使用之前必須先定義(或稱聲明),然后才能使用數(shù)組元素。 1一維數(shù)組的定義與分配 數(shù)據(jù)類型符 數(shù)組名 = new 數(shù)據(jù)類型符長度; 例如: int a= new int 10; 也可以寫成下面兩條: int a; /定義數(shù)組 a=new int 10;/給數(shù)組分配存儲空間,2數(shù)組初始化 數(shù)據(jù)類型符 數(shù)組名 =初值列表; 例如: int a=1,2,3,4; 或: int a= new int 1,2,3,4; 3數(shù)組元素的引用 數(shù)組名下標 例如: a數(shù)組具有4個元素a0、a1、a2、a3 通常與循環(huán)配合,循環(huán)變量對應下標,例題:找10個數(shù)中的最大數(shù),static void Main(strin
3、g args) int x = new int 7,1, 22, 13, 4 ,5,7,8,5,6; int max; max = x0; for (int i = 0; i max) max = xi; Console.WriteLine(); Console.Write(最大值=0,max); ,例題:計算10個數(shù)的和及平均,static void Main(string args) int x = new int 7,1,22,13, 4,5,7,8,5,6; int sum=0; double ave; for (int i = 0; i 10; i+) Console.Write(0
4、 , xi); sum=sum+ xi; ave = sum / 10.0; Console.WriteLine(); Console.WriteLine(總和=0,sum); Console.WriteLine(平均=0,ave); ,4.1.3 二維數(shù)組,二維數(shù)組 有兩個下標的數(shù)組,適合處理如成績報告表、矩陣等具有行列結構的數(shù)據(jù) C#的二維數(shù)組的每一行的元素個數(shù)可以相等,也可以不相等。 相等的稱為方形二維數(shù)組,不同的稱為參差數(shù)組。,1方形二維數(shù)組,(1)定義 格式:數(shù)據(jù)類型符 , 數(shù)組名 = new 數(shù)據(jù)類型符長度1,長度2; 例如: int , a= new int 3,4; 或: in
5、t , a; a=new int 3,4;,(2)賦初值 (初始化),數(shù)據(jù)類型符 , 數(shù)組名 = 初值列表1,初值列表2,初值列表n; 例如: int ,b=1,2,3,4,5,6,7,8, 9,10,11,12; 或: int , a= new int3,4 1,2,3,4,5,6,7,8, 9,10,11,12;,(3)元素引用,格式:數(shù)組名下標1,下標2 下標放在一個方括號中 static void Main(string args) int, a = new int3, 41,2,3,4, 5,6,7,8, 9,10,11,12; int i, j; for (i = 0; i 3;
6、i+) for (j = 0; j 4; j+) Console.Write(0t,ai,j); Console.WriteLine(); ,例題:二維數(shù)組轉置,static void Main(string args) int, a = new int3, 41,2,3,4,5,6,7,8, 9,10,11,12; int i, j; int, b = new int4, 3; Console.WriteLine(轉置前:); for (i = 0; i 3; i+) for (j = 0; j 4; j+) Console.Write(0t, ai, j); bj, i = ai, j;
7、Console.WriteLine(); ,Console.WriteLine(轉置后:); for (i = 0; i 4; i+) for (j = 0; j 3; j+) Console.Write(0t, bi, j); Console.WriteLine(); ,某班有M名同學,本學期開了N門課,期末考試后,要統(tǒng)計每個學生的平均分。,例題:統(tǒng)計每個學生的平均分,2參差數(shù)組,二維數(shù)組的每一行的長度可以不同,每一行的元素個數(shù)均可以由用戶指定。 (1)分配行 格式:數(shù)據(jù)類型符 數(shù)組名 = new 數(shù)據(jù)類型符行數(shù); 例如: int b=new int3; 定義了一個名為b的參差數(shù)組,行數(shù)為3
8、,(2)名行數(shù)組元素個數(shù)的分配 格式:數(shù)組名i=new 數(shù)據(jù)類型符長度; 例如: int b=new int3; b0=new int 2; b1=new int 3; b2=new int 4; (3)元素引用 數(shù)組名下標1下標2 下標放在每個方括號中,例題:輸出楊輝三角的前9行,static void Main(string args) int a = new int9; int i, j; for(i=0;i9;i+) ai = new inti+1; for (i = 0; i 9; i+) aii = 1; ai0 = 1; for (i = 2; i 9; i+) for (j =
9、 1; j i; j+) aij = ai - 1j + ai - 1j - 1; for(i=0;i9;i+) for (j = 0; j = i; j+) Console.Write(0t,aij); Console.WriteLine(); ,4.1.4 foreach,foreach語句是專用于對數(shù)組、集合等數(shù)據(jù)結構中的每一個元素進行循環(huán)操作的語句,通過它可以列舉數(shù)組、集合中的每一個元素,并且通過執(zhí)行循環(huán)體對每一個元素進行需要的操作。 格式:foreach(數(shù)據(jù)類型符 變量名 in 數(shù)組或集合) 循環(huán)體;,例題 使用foreach求二維數(shù)組最小值,static void Main(st
10、ring args) int, a = new int3, 4 1,2,3,4,5,11,7,8, 9,10,-11,7; int min= a0,0; foreach (int i in a) if (i min) min = i; Console.WriteLine(最小值=0,min); ,4.2 方法,4.2.1 C#中的程序模塊,4.2.2 方法的定義,格式: 方法修飾符 數(shù)據(jù)類型說明符 方法名(形式參數(shù)列表) 變量、數(shù)組的定義語句; 其它可執(zhí)行部分 ,例題:計算平方的方法,static int pf(int n) return n * n; static void Main(str
11、ing args) int i,j; for (i = 1; i = 10; i+) j = pf(i); Console.WriteLine(02=1,i,j); ,4.2.3 方法的調用,格式1:方法名(實際參數(shù)列表) 格式2:對象名.方法名(實際參數(shù)列表) 格式3:類名.方法名(實際參數(shù)列表),例題:計算階乘的方法,static int fac(int n) int i, f=1; for (i = 1; i = n; i+) f = f * i; return f; static void Main(string args) int i; for (i = 1; i = 10; i+)
12、 Console.WriteLine(“0!=1”,i, fac(i); ,例題:調用判斷素數(shù)的方法,static bool isPrime(int n) int i; for(i=2;in;i+) if(n%i=0) return false; return true; static void Main(string args) int i; for(i=2;i100;i+) if(isPrime(i)=true) Console.Write(0 ,i); ,例題:找兩數(shù)最大值的方法,static int max(int x, int y) if (x y) return x; else r
13、eturn y; static void Main(string args) int m, n; Console.WriteLine(請輸入第一個整數(shù)); m = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(請輸入第二個整數(shù)); n = Convert.ToInt32(Console.ReadLine(); Console.WriteLine(最大值=0, max(m, n); ,例題:沒有返回值沒有參數(shù)的方法,static void fun() Console.WriteLine(Hello); static void Main
14、(string args) int i; for (i = 0; i 5; i+) fun(); ,4.2.4 參數(shù)的傳遞方式,參數(shù)傳遞是指實參傳給形參的方式 C#中的參數(shù)傳遞可分成四種:值傳遞、引用傳遞、輸出參數(shù)和參數(shù)數(shù)組。 1值傳遞 實參把值復制一份傳給形參,形參接收了實參的值后與實參已不再存在任何聯(lián)系。,static void fun(int x, int y) x = x + 1; y = y - 1; static void Main(string args) int m=3, n=4; Console.WriteLine(調用前m=0,n=1, m,n); fun(m, n); C
15、onsole.WriteLine(調用后m=0,n=1, m,n); ,例題:值傳遞,2引用傳遞,使用“引用傳遞”方式傳遞參數(shù)時,在方法中對形參進行修改也就修改了對應的實參。 使用格式:關鍵字ref。 定義方法時,在形式參數(shù)的類型說明符前加上ref 調用方法時,在實際參數(shù)之前加上ref。,例題:引用傳遞,static void fun(ref int x, ref int y) x = x + 1; y = y - 1; static void Main(string args) int m=3, n=4; Console.WriteLine(調用前m=0,n=1, m,n); fun(ref
16、 m, ref n); Console.WriteLine(調用后m=0,n=1, m,n); ,例題:兩數(shù)交換的方法,static void Swap(ref int x,ref int y) int t; t=x; x=y; y=t; static void Main(string args) int a=3,b=4; Console.WriteLine(調用前:a=0,b=1,a,b); Swap(ref a,ref b); Console.WriteLine(調用后:a=0,b=1,a,b); ,4.2.5 方法的嵌套與遞歸調用,1方法的嵌套調用 調用一個方法時,被調方法中又調用了另一
17、個方法。 例題:計算兩個整數(shù)的平方和,其中計算平方和計算兩數(shù)之和分別用兩個方法實現(xiàn)。 static int squ(int x) return x*x; ,static int add(int a,int b) return(squ(a)+squ(b) ; public static void Main() int x,y,z; x=2; y=3; z= add(x,y); Console.WriteLine(0和1的平方和是:2,x,y,z); ,2方法的遞歸調用,調用一個方法的過程中直接或間接地調用其自身,在程序設計中,不這種調用應該是有條件可終止的,可以通過if語句進行控制。 例題:用遞歸調用計算階乘n!。 階乘n!的遞歸計算公式是: 當n1時,fac(n)=n*fac(n-1) 遞歸終止值是: 當n=0或1時,fac(n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西寧強縣漢江源景區(qū)招聘考試參考試題及答案解析
- 2026西安經開第十四小學舞蹈教師招聘考試備考試題及答案解析
- 2026四川德陽市第六人民醫(yī)院(東汽醫(yī)院)面向社會招聘編外人員10人考試參考試題及答案解析
- 2026磨憨開發(fā)投資有限責任公司市場化選聘高級管理人員2人(云南)考試備考題庫及答案解析
- 2026福建莆田市城廂區(qū)考核招聘編內新任教師20人考試參考試題及答案解析
- 2026重慶合川區(qū)人民醫(yī)院招聘8人考試備考試題及答案解析
- 2026年甘肅蘭州紅古區(qū)醫(yī)保局招聘公益性崗位人員考試備考題庫及答案解析
- 2026渭南市富平縣和諧幼兒園招聘(4人)考試備考試題及答案解析
- 2026年桂林師范高等??茖W校單招綜合素質考試備考題庫帶答案解析
- 2026海南??谑旋埲A區(qū)勞動就業(yè)和社會保障管理中心招聘公益性崗位工作人員4人考試參考試題及答案解析
- 2026年1月福建廈門市集美區(qū)后溪鎮(zhèn)衛(wèi)生院補充編外人員招聘16人筆試模擬試題及答案解析
- 2026年長治職業(yè)技術學院單招職業(yè)技能考試題庫附答案解析
- 2026年丹東市人力資源和社會保障局公開選聘法律顧問備考題庫及完整答案詳解一套
- 2026年干部綜合能力高頻知識點測試題附解析
- GB/T 46544-2025航空航天用螺栓連接橫向振動防松試驗方法
- 炎德·英才大聯(lián)考長沙市一中2026屆高三月考(五)歷史試卷(含答案詳解)
- 云南師大附中2026屆高三高考適應性月考卷(六)思想政治試卷(含答案及解析)
- 建筑安全風險辨識與防范措施
- CNG天然氣加氣站反恐應急處置預案
- 培訓教師合同范本
評論
0/150
提交評論