1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 6 – Mảng pdf

54 934 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 672,5 KB

Nội dung

Chương 6 Mảng  Outline 6.1 Mảng - Arrays 6.2 Khai báo và định vị cho mảng 6.4 Một số ví dụ sử dụng mảng 6.5 Truyền giá trị của mảng bằng phương thức 6.6 Truyền giá trị của mảng theo tham trị và tham biến 6.7 Sắp xếp mảng 6.8 Tìm kiếm trên mảng 6.9 Mảng nhiều chiều 6.10 Cấu trúc lặp for/reach 6.1 Mảng - Arrays  Dạng cấu trúc dữ liệu tĩnh. Nó sẽ mang kích thước như khi được khởi tạo.  Bao gồm các vùng nhớ kề nhau biểu diễn các dữ liệu có cùng kiểu và cùng tên.  Khi truy nhập tới các phần tử của mảng, ta cần truy nhập theo tên và vị trí của phần tử trong mảng.  Trong C#, mảng được xem là một đối tượng. Nghĩa là nó có các phương thức, thuộc tính.  Lớp cung cấp các thuộc tính và phương thức cho mảng trong C# là system. array  Kích thước của mảng chính là số phần tử có trong mảng ▪Phần tử đầu tiên của mảng là “phần tử thứ không” (zeroth element). ▪Có sự khác nhau giữa phần tử thứ k của mảng có kích thước n và phần tử k của mảng (k<=n):  Phần tử thứ k của mảng là phần tử có chỉ số là k-1.  Phần tử k của mảng có chỉ số là k 6.1 Mảng - Arrays Các phương thức và thuộc tính trong lớp system. array Các phương thức và thuộc tính trong lớp system. array Một ví dụ của mảng Tên của mảng : Đây là mảng số nguyên có tên là c Chỉ số của mảng 6.2 Khai báo và định vị cho mảng  Người sử dụng xác định kiểu của mảng và thực hiện khai báo mảng  Khai báo và khởi tạo mảng không nhất thiết phải nằm trong cùng một câu lệnh  Trong mảng kiểu giá trị,mỗi phần tử chứa một giá trị thuộc kiểu đã được khai báo.  Trong mảng kiểu tham chiếu,mỗi phần tử của mảng là một tham chiếu tới đối tượng thuộc kiểu dữ liệu của mảng 6.2 Khai báo và định vị cho mảng  Mảng có thể được định vị dùng từ khoá new để xác định số phần tử có thể có của mảng  Khởi tạo mảng với initializer lists  Định vị không gian cho mảng số phần tử trong danh sách khởi tạo quyết định kích thước của mảng  Các phần tử trong mảng được khởi tạo với giá trị trong danh sách khởi tạo initializer list 6.4 Một số ví dụ sử dụng mảng  Khởi động và phân bố bộ nhớ cho mảng.  Tính tổng của các phần tử trong mảng.  Dùng biểu đồ để hiển thị dữ liệu mảng dạng đồ hoạ.  Sử dụng các phần tử của mảng như một bộ đếm.  Sử dụng mảng để phân tích kết quả đo đạc 1 // InitArray.cs 2 // Different ways of initializing arrays. 3 4 using System; 5 using System.Windows.Forms; 6 7 class InitArray 8 { 9 // main entry point for application 10 static void Main( string[] args ) 11 { 12 string output = ""; 13 14 int[] x; // declare reference to an array 15 x = new int[ 10 ]; // dynamically allocate array and set 16 // default values 17 18 // initializer list specifies number of elements 19 // and value of each element 20 int[] y = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; 21 22 const int ARRAY_SIZE = 10; // named constant 23 int[] z; // reference to int array 24 25 // allocate array of ARRAY_SIZE (i.e., 10) elements 26 z = new int[ ARRAY_SIZE ]; 27 28 // set the values in the array 29 for ( int i = 0; i < z.Length; i++ ) 30 z[ i ] = 2 + 2 * i; 31 32 output += "Subscript\tArray x\tArray y\tArray z\n"; 33 Khai báo mảng số nguyên x Chỉ định kích thước của x là 10 Khai báo mảng số nguyên y và khởi tạo các giá trị của nó Khai báo hằng số ARRAY_SIZE Khai báo mảng số nguyên z Khởi tạo kích thước z là ARRAY_SIZE Khởi tạo các giá trị của z dùng một vòng lặp for InitArray.cs [...]... outputLabel.Text += " " + a[ i ]; ModifyArray( a ); // array is passed by reference Khai báo và khởi tạo mảng số nguyên a Gọi method ModifyArray, truyền tham số mảng theo kiểu tham chiếu Nội dung mảng a PassArray.cs 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 outputLabel.Text += "\n\nThe values of the modified array are:\n\t"; // display elements of array... components = null; Random randomNumber = new Random(); int[] frequency = new int[ 7 ]; Tạo đối tượng Random Khai báo một mảng số tự nhiên frequency và cho nó đủ bộ nhớ để giữ 7 số 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 public RollDie() { InitializeComponent(); } // Visual Studio NET generated code [STAThread] static void Main() { Application.Run(... outputLabel.Text += "Test passing firstArray reference by value"; outputLabel.Text += "\n\nContents of firstArray " + "before calling FirstDouble:\n\t"; 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 // print contents of firstArray for ( int i = 0; i < firstArray.Length; i++ ) outputLabel.Text += firstArray[ i ] + " "; // pass reference firstArray... void Main( string[] args ) { int[] responses = { 1, 2, 6, 4, 8, 5, 9, 7, 8, 10, 1, 6, 3, 8, 6, 10, 3, 8, 2, 7, 6, 5, 7, 6, 8, 6, 7, 5, 6, 6, 5, 6, 7, 5, 6, 4, 8, 6, 8, 10 }; Khai báo và khởi tạo mảng số nguyên Với mỗi phần tử trong responses responses, và chia phần Khai báo tăng phần tử bộ nhớ tương ứng với frequencycho mảng số nguyên frequency answer int[] frequency = new int[ 11 ]; string output =... { 2, 6, 4, 8, 10, 12, 89, 68 , 45, 37 }; outputLabel.Text += "Data items in original order\n"; for ( int i = 0; i < a.Length; i++ ) outputLabel.Text += " " + a[ i ]; // sort elements in array a BubbleSort( a ); Khai báo và khởi tạo mảng các số nguyên a Nội dung output của mảng a Gọi method Bubble sort trên mảng a 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 } outputLabel.Text... method Main } // end class StudentPoll StudentPoll.cs 6. 5  Truyền giá trị của mảng bằng phương thức Truyền mảng như tham số cho phương thức bằng cách xác định tên của mảng (không có ngoặc đơn)  Mảng được truyền bằng tham chiếu  Các phần tử riêng biệt của mảng được truyền bằng giá trị 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 // PassArray.cs // Passing... phần tử tới mảng số Đặt mảng tham chiếu mảng nguyên mới chứa các giá trị 11, 12 và 13 ArrayReferenceTest.cs 6. 7 Sắp xếp mảng  Sắp xếp dữ liệu là một phần quan trọng trong nhiều ứng dụng  Bubble Sort : Sắp xếp nổi bọt mảng kích thước n   Mỗi lần duyệt,so sánh từng cặp hai phần tử liên tiếp  Nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ hai phần tử  Dễ lập trình   Duyệt mảng n lần... Dùng biểu đồ để hiển thị dữ liệu mảng dạng đồ hoạ Sử dụng các phần tử của mảng như một bộ đếm  Thỉnh thoảng chương trình dùng mảng để tổng kết dữ liệu như bài toán tổng hợp kết quả của một sự nghiên cứu, đo đạc  Sau đây là thí dụ minh hoạ về việc sử dụng mảng làm biến đếm trong bài toán gieo hạt xúc xắc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 //... BubbleSorter.cs 6. 8  Tìm kiếm trên mảng Thông thường các nhà lập trình làm việc với một lượng rất lớn dữ liệu lưu trên mảng  Trong một số trường hợp, họ phải tìm kiếm một dữ liệu nào đó trên mảng  Có hai loại tim kiếm chính : tìm kiếm tuyến tính và tìm kiếm nhị phân • Linear Search • Binary Search 6. 8.1 Tìm kiếm tuyến tính trên mảng  Trả lại chỉ số của khoá tìm kiếm trên mảng  Tìm kiếm tuần tự từ đầu mảng. .. tượng trong phương thức có ảnh hưởng đến đối tượng ngoài phương thức 6. 6 Truyền giá trị của mảng theo tham trị và tham biến  Từ khoá ref có thể dùng để truyền tham biến cho phương thức  Kiểu giá trị biến không được copy Thay đổi biến trong phương thức sẽ thay đổi biến ngoài phương thức  Tham chiếu tới đối tượng không được copy –Thay đổi tham chiếu trong phương thức sẽ thay đổi tham chiếu ngoài . Chương 6 – Mảng  Outline 6. 1 Mảng - Arrays 6. 2 Khai báo và định vị cho mảng 6. 4 Một số ví dụ sử dụng mảng 6. 5 Truyền giá trị của mảng bằng. thức 6. 6 Truyền giá trị của mảng theo tham trị và tham biến 6. 7 Sắp xếp mảng 6. 8 Tìm kiếm trên mảng 6. 9 Mảng nhiều chiều 6. 10 Cấu trúc lặp for/reach 6. 1 Mảng

Ngày đăng: 20/03/2014, 17:21

TỪ KHÓA LIÊN QUAN

w