Professional Documents
Culture Documents
Chapter 6 Array
Chapter 6 Array
Chương 6
2
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
• Mảng là tập hợp của nhiều phần tử (elements) có cùng kiểu dữ liệu. Mỗi phần tử có
số thứ tự từ 0 đến n-1 (chỉ số phần tử) với n là số lượng phần tử có trong mảng
• Mảng dùng để lưu nhiều giá trị phần tử vào trong một biến thay vì khai báo nhiều
biến riêng cho nhiều giá trị
• Các phần tử trong mảng được truy xuất thông qua số thứ tự (chỉ số) phần tử
• Để khai báo mảng thì dùng dấu ngoặc vuông [ ]
Ví dụ:
string[] cars = {“Toyota”, “Honda”, “Mazda”, “Ford”, “Mercedes”};
int[] myNum = {10, 30, 50, 70};
3
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
<tên mảng> = new <kiểu dữ liệu>[ ] { <giá trị 1>, <giá trị 2>, …<giá trị n> };
• Ví dụ 1:
string[] cars;
7
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
Ví dụ:
int [] myNum = new int []; // sai vì thiếu kích thước mảng
int [] myNum = new int [10]{1, 2, 3, 4, 5};//kích thước khác
với số phần tử
var myNum = {2, 4, 6, 8}; // thiếu toán tử new và kiểu dữ
liệu int và ký hiệu mảng []
8
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
Ví dụ
• Tạo mảng gồm 100 phần tử với giá trị tăng từ 100 đến 199 theo thứ tự
• Xuất ra màn hình
Phan tu 1 = 199
Phan tu 2 = 198
Phan tu i = …
Phan tu 99 = 101
Phan tu 100 = 100
13
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
14
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
• Cú pháp 1 (cấp phát vùng nhớ cần khai báo số hàng và số cột của mảng 2 chiều)
<kiểu dữ liệu> [ , ] <tên mảng> = new <kiểu dữ liệu> [ <số hàng>, <số cột>];
• Ví dụ 1:
int [,] myNum = new int [5, 7];
Mảng 3 chiều
Int [, ,] myArray = new int [3, 4 ,5];
Mảng 4 chiều
Int [, , ,] myarray= new int [4, 4, 5, 6];
15
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
Console.WriteLine(myNum[i,j]);
}
}
18
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
Ví dụ
• Cấp phát và khởi tạo mảng hai chiều với 4 hàng và 3 cột
{
{0, 1, 2 },
{3, 4, 5},
{6, 7, 8},
{9, 10, 11}
}
• Xuất ra màn hình giá trị tại hàng 1, cột 1
• Xuất ra màn hình giá trị tại hàng 3, cột 3
• Xuất ra màn hình giá trị tại hàng 2, cột 3
• Thay đổi giá trị của mảng tại hàng 2, cột 1 bằng 12
19
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
using System;
namespace ArrayApplication {
class MyArray {
double getAverage(int[] arr, int size) {
int i;
double avg;
int sum = 0;
avg = app.getAverage(balance, 5 ) ;
Thuộc tính Mô tả
Length() Kích thước của mảng (số phần tử của mảng) - int/32-bit
LongLength() Kích thước của mảng (số phần tử của mảng) - long/64-bit
Rank() Số chiều của mảng
IsFixedSize() Kích thước của mảng là cố định đúng hay sai
IsReadOnly() Mảng chỉ cho phép đọc đúng hay sai
22
Bộ môn Tin học Xây dựng
TS. Phạm Thành Hưng
Clear() Xóa dữ liệu trong mảng và trả về giá trị mặc định của kiểu (zero, false hoặc null)
Sao chép một khoảng các phần tử từ phần tử đầu tiên của mảng và dán vào vị
Copy(array,array,int32) trí đầu tiên của mảng mới. Chiều dài của các phần tử sao chép được định nghĩa
kiểu int32
Sao chép tất cả các phần tử của mảng 1D hiện tại đến một vị trí chỉ số xác định
CopyTo(array,int32)
của một mảng 1D khác. Chỉ số được định nghĩa kiểu int32
GetLength(int32) Cho biết số lượng phần tử theo chiều xác định trong mảng
GetValue(int32) Truy vấn giá trị của phần tử dựa vào chỉ số của nó
SetValue(object,int32) Gán object cho phần tử tại chỉ số int32 của mảng
IndexOf(array,object) Tìm kiếm vị trí (chỉ số) của đối tượng object trong mảng