CHƯƠNG 07. MẢNG MỘT CHIỀU - 2 -
GV: TNQTRAM
Th
ự
c hành Nh
ậ
p môn l
ậ
p trình 20
23
Ví dụ 3: Các phép truy xuất hợp lệ và không hợp lệ trong mảng số nguyên a có 4 phần tử:
int a[4];
• Các truy xuất
o Hợp lệ: a[0], a[1], a[2], a[3]
o Không hợp lệ: a[-1], a[4], a[5], …
• Gán giá trị cho phần tử:
arrayName[index] = value;
• Lấy số phần tử của mảng
arrayName.Length
1.3. Duyệt mảng
• Duyệt mảng là hành động đi qua tất cả các phần tử của mảng nhằm thực hiện các thao tác cơ bản
như nhập mảng, xuất mảng, tính tổng, tìm kiếm, thống kê, …
• Duyệt từ đầu đến cuối: a[0], a[1], …, a[n-1]:
for (int i = 0; i <= a.Length-1; i++)
{
// Xử lý phần tử thứ tại vị trí i (a[i])
}
• Duyệt từ cuối về đầu: a[n-1], a[n-2], …, a[0]:
for (int i = a.Length-1; i >= 0; i--)
{
// Xử lý phần tử thứ tại vị trí i (a[i])
}
1.4. Truyền mảng vào hàm
• Tham số kiểu mảng trong khai báo hàm giống như khai báo biến mảng.
Ví dụ 4: static void NhapMang(int[] A, int n)
• Mảng là kiểu dữ liệu tham chiếu nên khi truyền vào hàm, nếu chỉ muốn thay đổi nội dung của
mảng thì truyền kiểu tham trị (không có từ khóa ref hay out), ngược lại muốn thay đổi tham chiếu
của mảng, nghĩa là cấp phát mảng mới thì cần từ khóa ref hay out.
Ví dụ 5: Tình huống nhập mảng truyền tham trị, nghĩa là cho trước số lượng phần tử, chỉ cần nhập
nội dung mảng. Ngược lại, hàm nhập mảng chịu trách nhiệm nhập số lượng và nội dung mảng.
Truyền tham trị Truyền tham chiếu
Cú pháp static void NhapMang(int[] A,int n) static void NhapMang(ref int[] A)
Tình huống
Truy xuất nội dung: int b = A[1]
Cập nhật nội dung: A[1] = 10
Truy xuất và cập nhật nội dung
Thay đổi tham chiếu: A = new int[20];
Lời gọi hàm
int n = 5;
int A[] = new int[5];
NhapMang(A, n);
int A[];
NhapMang(ref A, n)
1.5. Ví dụ minh họa
Ví dụ 6: Nhập xuất dãy số nguyên NhapXuatDaySoNguyen.*