Professional Documents
Culture Documents
6. Mảng Một Chiều
6. Mảng Một Chiều
TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP. HỒ CHÍ MINH
HO CHI MINH CITY UNIVERSITY OF FOREIGN LANGUAGES - INFORMATION TECHNOLOGY
Bài 6
Mảng một chiều
Biên soạn: ThS. Huỳnh Thành Lộc (locht@huflit.edu.vn)
NỘI DUNG
Console.WriteLine(max);
}
index
0 1 2 3 4 5 6
5 8 2 7 8 9 1 value
a
type[] arrayName;
§ Khi chưa được khởi tạo các biến mảng (kiểu tham
chiếu) có giá trị null
null
static void Main(string[] args)
{
int[] nums; nums
check null
double[] scores;
} scores
bool[] check;
0.0 0.0 0.0 0.0
nums = new int[6];
scores
scores = new double[4];
§ Khởi tạo giá trị ban đầu cho các phần tử của mảng:
int[] arr2;
arr2 = new int[]{5, 8, 2, 7}; 5 8 2 7
arr2
int[] arr3;
arr3 = {5, 8, 2, 7};
5 8 2 7
arr3
}
§ Nhận xét:
• Không thể thay đổi kích thước mảng sau khi khởi tạo;
• Muốn thay đổi kích thước mảng phải khởi tạo lại mảng (tạo ra
một vùng giá trị mới và thay đổi tham chiếu tới vùng này)
§ Nhận xét:
• Không thể thay đổi kích thước mảng sau khi khởi tạo;
• Muốn thay đổi kích thước mảng phải khởi tạo lại mảng (tạo ra
một vùng giá trị mới và thay đổi tham chiếu tới vùng này);
• Các phần tử cũ trong mảng không còn nữa!!!
10
§ Cú pháp: arrayName.Length;
Console.WriteLine(arr1.Length); //output 4
}
11
§ Cú pháp: arrayName[index];
}
Console.WriteLine(arr1[2]); arr1
12
13
14
VẬN DỤNG
15
Bài 5: Hàm
16
16
Main 5 8 2 7
17
a
Main 5 8 2 7
18
a
Main 9 8 2 7
19
Main 9 8 2 7
20
§ Nhận xét:
• Đối số phải là một mảng đã được khởi tạo;
• Tham số nhận giá trị là tham chiếu đến vùng giá trị của đối số
à tham số và đối số cùng tham chiếu đến 1 vùng giá trị.
21
a
Main 5 8 2 7
22
a
Main 9 8 2 7
23
-3 -7
a
Main 9 8 2 7
24
-3 -7
a
Main 9 8 2 7
25
Main 9 8 2 7
26
§ Nhận xét:
• Đối số phải là một mảng đã được khởi tạo;
• Tham số nhận giá trị là tham chiếu đến vùng giá trị của đối số
à tham số và đối số cùng tham chiếu đến 1 vùng giá trị;
• Khi có câu lệnh thay đổi tham chiếu của tham số thì không
ảnh hưởng đến đối số.
27
parameter
a
argument 5 8 2 7
28
a
Main 9 8 2 7
29
-3 -7
a
Main 9 8 2 7
30
-3 -7
a
Main
31
§ Nhận xét:
• Thao tác trên tham số cũng chính là thao tác trên đối số trong
lời gọi hàm
• Tham chiếu ref: đối số phải là mảng đã được khởi tạo;
• Tham chiếu out: đối số có thể là mảng chưa được khởi tạo;
32
VẬN DỤNG
33
VẬN DỤNG
34
VẬN DỤNG
35
VẬN DỤNG
36
NỘI DUNG
37
VẬN DỤNG
§ Bài tập 6: Định nghĩa các hàm hiệu chỉnh mảng sau:
• Hàm AddLast(…, int x): thêm phần tử có giá trị x vào cuối
mảng.
• Hàm InsertAt(…, int i, int x): thêm phần tử có giá trị x vào vị trí
thứ i trong mảng (0 ≤ i ≤ n, n là kích thước của mảng).
• Hàm RemoveAt(…, int i): xóa phần tử tại vị trí thứ i trong
mảng (0 ≤ i < n, n là kích thước của mảng).
38
39
§ Thuộc tính:
• Capacity: trả về tổng số phần tử đã được cấp phát
• Count: trả về số phần tử thực tế trong danh sách
40
41
VẬN DỤNG
42
VẬN DỤNG
• Hàm CountFreq(…): đếm tần số của các giá trị xuất hiện trong
mảng một chiều chứa các số nguyên.
43
VẬN DỤNG
44
45
46
0 1 2 3 4
i j So sánh Hoán vị
5 2 8 7 1
0 1 a[0], a[1] a[0], a[1] 2 5 8 7 1
2 a[0], a[2] - 2 5 8 7 1
3 a[0], a[3] - 2 5 8 7 1
4 a[0], a[4] a[0], a[4] 1 5 8 7 2
1 2 a[1], a[2] - 1 5 8 7 2
3 a[1], a[3] - 1 5 8 7 2
4 a[1], a[4] a[1], a[4] 1 2 8 7 5
2 3 a[2], a[3] - 1 2 7 8 5
4 a[2], a[4] a[2], a[4] 1 2 5 8 7
3 4 a[3], a[4] a[3], a[4] 1 2 5 7 8
47
TỔNG KẾT
48