Bài giảng Nhập môn về lập trình - Chương 7: Mảng (Array) với mục tiêu giúp sinh viên khai báo được mảng các giá trị, mô tả được cách tổ chức bộ nhớ của các phần tử trong mảng, truy xuất được các phần tử của mảng và dùng nó trong biểu thức,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng.
Trang 1Nhập môn về lập trình (C7) Slide 1
Chương 7
Mảng (array)
Presenter:
Trang 2Learning outcomes
L.O.5.1 – Khai báo được mảng các giá trị
L.O.5.2 – Mô tả được cách tổ chức bộ nhớ của các phần
tử trong mảng
L.O.5.3 – Truy xuất được các phần tử của mảng và dùng
nó trong biểu thức
L.O.5.4 – Hiểu được cách truyền một mảng vào hàm
Trang 3Nhập môn về lập trình (C7) Slide 3
Dãy một chiều
Định nghĩa
Dãy (array) là kiểu dữ liệu thuộc dạng ghép và dựa vào một kiểu dữ liệu khác (kiểu cơ sở)
Dãy là một bộ gồm nhiều phần tử cùng kiểu (kiểu cơ sở), dùng chung một tên và phân biệt với nhau bởi chỉ số (index)
Ví dụ : int vector[ 10 ];
định nghĩa biến dãy có 10 phần tử int (vector[ 0 ] vector[ 9 ])
vector
độ lớn = 10*4 = 40 byte
Trang 4Dãy nhiều chiều
Định nghĩa
Dãy nhiều chiều là dãy có từ 2 vùng chỉ số trở lên
Ví dụ: double matran[8][8];
định nghĩa biến matran là 1 dãy gồm 8x8 phần tử kiểu double (matran[0][0], matran[0][1], , matran[7][7])
matran
matran[0][0]
matran[7][7]
độ lớn 512 byte
matran[0][7]
Trang 5Nhập môn về lập trình (C7) Slide 5
Xử lý dãy
Khởi động trị ban đầu
Khởi động lúc định nghĩa:
int so[5] = { 4,1,8,3,2};
sẽ gán so[0]=4, so[1]=1, so[2]=8, so[3]=3 và so[4]=2
Khởi động sử dụng hằng mảng, xem ví dụ
• Định nghĩa
• Khởi động
Trang 6Kiểu chuỗi (string)
Trong C, thực sự không tồn tại kiểu chuỗi mà chỉ có dữ liệu chuỗi (còn gọi là chuỗi ASCIIZ, nghĩa là chuỗi liên tiếp các ký tự trong bảng mã ASCII và kết thúc bằng ký tự ‘\0’ có giá trị là 0)
Để làm việc với dữ liệu chuỗi, ta cần định nghĩa một dãy
ký tự (character array) để chứa
Ví dụ : char hoten[50]
Trong C, ta không thể gán chuỗi trực tiếp mà chỉ có thể làm thông qua các hàm có sẳn trong thư viện string.lib (xem slide kế)
Ví dụ : strcpy(hoten,"Kim Dung");
Ký tự trong chuỗi được xử lý như phần tử dãy
Trang 7Nhập môn về lập trình (C7) Slide 7
Thư viện string.lib (string.h)
Một số hàm xử lý chuỗi thường dùng
strcat / strncat : nối ghép 2 chuỗi
strchr : tìm ký tự trong một chuỗi
strcmp / strncmp : so sánh 2 chuỗi
strcpy / strncpy : chép chuỗi
strlen : lấy chiều dài chuỗi (không kể ‘\0’)
strstr : tìm chuỗi con trong chuỗi lớn
Trang 8
Truyền tham số mảng
Mảng có thể là tham số của một hàm như sau:
Gọi hàm và truyền tham số dãy:
Không có chỉ số