Bài giảng Lập trình Windows - Chương 8: Arrays
lượt xem 4
download
Bài giảng "Lập trình Windows - Chương 8: Arrays" trình bày các nội dung: Giới thiệu, khai báo, cách sử dụng mảng, các giải thuật cơ bản trên mảng, các phương thức của mảng, các đối tượng mảng trên C#. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình Windows - Chương 8: Arrays
- 1 Chương 8 Arrays • Giới thiệu • Khai báo • Cách sử dụng mảng • Các giải thuật cơ bản trên mảng • Các phương thức của mảng • Các đối tượng mảng trên C#
- 2 Giới Thiệu • Mảng là kiểu dữ liệu có cấu trúc bao gồm nhiều phần tử cùng kiểu và được đặt liên tiếp trong vùng nhớ. • Mỗi phần tử của mảng được tham chiếu thông qua chỉ mục (index). Nếu mảng có n phần tử thì phần tử đầu tiên có chỉ mục là 0 và phần tử cuối có chỉ mục là n1. Cách tham chiếu một phần tử là tenmang[chỉ mục]. • Mảng có kích thước là số phần tử trong mảng.
- Giới Thiệu 3 c[ 0 ] 45 (0) Janet Baker c[ 1 ] 6 Name of array (1) George Lee (Note that all c[ 2 ] 0 (2) Sue Li elements of this c[ 3 ] 72 (3) Samuel array have the c[ 4 ] 1543 (4) Hoosier same name, c) c[ 5 ] 89 (5) Sandra Weeks c[ 6 ] 0 (6) William Macy c[ 7 ] 62 (7) Andy Harrison Position number c[ 8] 3 (8) Ken Ford (index or subscript) of the c[ 9 ] 1 (9) Denny Franks element within c[ 10 ] 6453 Shawn James array c c[ 11 ] 78 Fig. 7.1 A 12element array.
- 4 Khai báo và khởi tạo Mảng • Khai báo [ ] ; Ex: int[ ] c; • Tạo mảng, gán giá trị cho biến mảng = new ; Ex : c = new int[ 12 ]; int [ ] c = new int[ 12 ];
- 5 Ví dụ sử dụng mảng void Main( string[] args ) { string output = ""; int[] x; x = new int[ 10 ]; int[] y = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; const int ARRAY_SIZE = 10; int[] z; z = new int[ ARRAY_SIZE ]; for ( int i = 0; i < z.Length; i++ ) z[ i ] = 2 + 2 * i; for ( int i = 0; i < ARRAY_SIZE; i++ ) output += z[ i ] + "\t"; }
- 6 Ví dụ sử dụng mảng int[] aa == int[] {{ 1, 2, 1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10 10 }; }; int total int total == 0; 0; for (( int for int ii == 0; 0; ii
- 7 Truyền Mảng vào Hàm (Phương thức) • Để truyền Mảng vào Hàm, ta chỉ định tên của mảng. • Có 2 cách truyền: – Truyền theo giá trị (Value) – Truyền theo địa chỉ (Reference)
- 8 Truyền Mảng vào Hàm (Phương thức) // method modifies the array it receives, // original will be modified public void ModifyArray( int[] b ) { for ( int j = 0; j < b.Length; j++ ) b[ j ] *= 2; }
- 9 Truyền Mảng vào Hàm (Phương thức) int[] a = { 1, 2, 3, 4, 5 }; outputLabel.Text = "Effects of passing entire array " + "call-by-reference:\n\nThe values of the original " + "array are:\n\t"; for ( int i = 0; i < a.Length; i++ ) outputLabel.Text += " " + a[ i ]; ModifyArray( a );// array is passed by reference ModifyElement( a[ 3 ] ); // array element passed call-by-value
- 10 Truyền Mảng vào Hàm (Phương thức) • Truyền theo giá trị – Tạo một bản sao của biến mảng – Bất kỳ thay đổi nào của biến mảng trong hàm cũng không ảnh hưởng đến giá trị của biến gốc. • Truyền theo địa chỉ – Tạo ra một bản sao tham khảo tới đối tượng. – Bất kỳ những thay đổi tới những tham khảo trong phương thức không làm ảnh hưởng đến biến gốc. – Bất kỳ những thay đổi nội dung của đối tượng trong phương thức làm ảnh hưởng đến đối tượng ngoài phương thức.
- Các giải thuật cơ bản trên mảng 11 • Các thao tác cơ bản trên mảng 1 chiều: • Nhập giá trị cho các phần tử mảng. • Xuất giá trị các phần tử mảng (ra màn hình). • Thêm 1 phần tử vào mảng. • Xóa một phần tử ra khỏi mảng. • Tìm kiếm trên mảng. • Sắp xếp mảng.
- 12 Nhập xuất Array Nhập, xuất thực chất là gán hoặc lấy giá trị của array tại vị trí nào đó. Thông thường nhập xuất mảng kết hợp vòng lặp. Ví dụ nhập mảng: int [] A= new int [50]; Random n = new Random(); int i=0; while (i
- 13 Nhập xuất Array Ví dụ truy xuất Array: long t = 0; while (i
- 14 Nhập xuất Array Truy xuất các phần tử trong array dùng cấu trúc lặp for each rất hiệu quả. Cú pháp foreach ( type identifier in arrayName ) statement
- 15 Nhập xuất Array Truy xuất qua vị trí Truy xuất qua foreach long tongmang(int[] A) long tongmangForeach(int[] A) { { int i = 0, x; long t = 0; long t = 0; foreach (int x in A) while (i
- 16 Sắp xếp Mảng Sorting Arrays • Sắp xếp các phần tử tăng dần private void sap_xep_tang_dan() { int i, j; for (i = 0; i
- 17 Sắp xếp Mảng Sorting Arrays
- 18 1 // Fig. 7.10: BubbleSorter.cs 2 // Sorting an array's values into ascending order. 3 using System; 4 using System.Drawing; 5 6 using System.Collections; using System.ComponentModel; BubbleSort 7 8 using System.Windows.Forms; using System.Data; er.cs 9 10 public class BubbleSorter : System.Windows.Forms.Form 11 { 12 private System.Windows.Forms.Button sortButton; 13 private System.Windows.Forms.Label outputLabel; 14 15 // Visual Studio .NET generated code Declare and initialize array a 16 17 [STAThread] 18 static void Main() Output the contents of array a 19 { 20 Application.Run( new BubbleSorter() ); 21 } Call method Bubble sort on array a 22 23 private void sortButton_Click( object sender, 24 System.EventArgs e ) 25 { 26 int[] a = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 }; 27 28 outputLabel.Text += "Data items in original order\n"; 29 30 for ( int i = 0; i < a.Length; i++ ) 31 outputLabel.Text += " " + a[ i ]; 32 33 // sort elements in array a 34 BubbleSort( a ); 35
- 19 36 outputLabel.Text += "\n\nData items in ascending order\n"; 37 38 for ( int i = 0; i < a.Length; i++ ) 39 outputLabel.Text += " " + a[ i ]; Swaps two elements 40 41 } // end method sortButton_Click of an array If an given element is bigger BubbleSort 42 Output sorted array a then the following element, er.cs 43 // sort the elements of an array with bubble sort 44 public void BubbleSort( int[] b ) swap the elements 45 { 46 for ( int pass = 1; pass < b.Length; pass++ ) // passes 47 48 for ( int i = 0; i < b.Length - 1; i++ ) // one pass 49 50 if ( b[ i ] > b[ i + 1 ] ) // one comparison 51 Swap( b, i ); // one swap 52 } 53 Perform contents of for loop Perform b.Length1 passes 54 // swap two elements of an array for each element of array b 55 public void Swap( int[] c, int first ) 56 { 57 int hold; // temporary holding area for swap 58 59 hold = c[ first ]; 60 c[ first ] = c[ first + 1 ]; 61 c[ first + 1 ] = hold; 62 } 63 }
- 20 Tìm kiếm: Linear Search and Binary Search • Tìm kiếm tuyến tính: Linear Search • Tìm kiếm nhị phân: Binary Search
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Windows bằng C Sharp (C#) - GV. Nguyễn Thành Chiến
38 p | 231 | 70
-
Bài giảng Lập trình Windows - Phạm Ngọc Hưng (ĐH Bách Khoa)
312 p | 224 | 53
-
Bài giảng Lập trình Windows - ĐH Hàng Hải
96 p | 211 | 41
-
Bài giảng Lập trình Window: Chương 6 - Phan Trọng Tiến
35 p | 167 | 20
-
Bài giảng Lập trình Windows - Chương 3: Lập trình giao diện
196 p | 103 | 18
-
Bài giảng Lập trình Windows - Chương 1: Tổng quan lập trình Windows (2016)
6 p | 151 | 8
-
Bài giảng Lập trình Windows - Phạm Ngọc Hưng
84 p | 107 | 8
-
Bài giảng Lập trình Windows - Chương 3: Lập trình C++ trên Windows (2016)
16 p | 74 | 8
-
Bài giảng Lập trình Windows Phone (Module 2): Bài 1 - Trần Duy Thanh
58 p | 96 | 8
-
Bài giảng Lập trình Windows: Phần 1 - Đại học Hàng Hải
47 p | 91 | 6
-
Bài giảng Lập trình Windows Phone (Module 3): Bài 7 - Trần Duy Thanh
22 p | 64 | 6
-
Bài giảng Lập trình Windows Phone (Module 4): Bài 8 - Trần Duy Thanh
15 p | 87 | 6
-
Bài giảng Lập trình Windows: Chương 1 - Một số khái niệm cơ bản
56 p | 126 | 6
-
Bài giảng Lập trình Windows: Bài 1 - Trần Ngọc Bảo
77 p | 100 | 6
-
Bài giảng Lập trình Windows Phone (Module 4): Bài 3, 4 - Trần Duy Thanh
18 p | 69 | 5
-
Bài giảng Lập trình Windows Phone (Module 3): Bài 5 - Trần Duy Thanh
13 p | 79 | 5
-
Bài giảng Lập trình Windows Phone (Module 3): Bài 9 - Trần Duy Thanh
10 p | 59 | 4
-
Bài giảng Lập trình Windows: Bài 3 - Trần Ngọc Bảo
106 p | 74 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn