PowerPoint Presentation Nhập môn về lập trình (C7) Slide * Chương 7 Mảng (array) Presenter Nhập môn về lập trình (C7) Slide * Learning outcomes L O 5 1 – Khai báo được mảng các giá trị L O 5 2 – Mô t[.]
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
Trang 3Dãy một chiều
Nhập điểm của 10 sinh viên, sau đó sắp xếp điểm theo thứ tự tăng dần
Trang 4Dãy một chiều
Dãy (còn gọi là mảng) là một tập hợp các biến, gọi là phần tử, có cùng một kiểu dữ liệu
Truy xuất bằng tên dãy và vị trí phần tử (chỉ số - index)
Trang 5Dãy một chiều
-45 6 0 72 1543 -89 0 62 -3
c[ 0 ] c[ 1 ] c[ 2 ] c[ 3 ] c[ 4 ] c[ 5 ] c[ 6 ] c[ 7 ] c[ 8 ]
Tên dãy (c)
Chỉ số của phầ! n tử
Chỉ số đầu tiên là
zero
Trang 6Dãy một chiều
Trang 12Dãy một chiều
Trang 13Mảng nhiều chiều
C cho phép định nghĩa mảng nhiều chiều Định nghĩa mảng hai chiều bằng cách sử dụng 2 cặp dấu ngoặc đơn
Cách làm này có thể mở rộng cho các chiều lớn hơn Mỗi khi tăng thêm 1 cặp dấu ngoặc đơn, số chiều tăng lên 1
Một số ví dụ về khai báo mảng
int a[1000]; // mảng 1 chiều
int b[3][5]; // mảng 2 chiều
int c[7][9][2]; // mảng 3 chiều
Trang 14Mảng 2 chiều
Các phần tử được lưu trữ trong một vùng nhớ liên tục
Đối với mảng b, có thể tưởng tượng các phần tử được bố trí như sau:
col 1 col2 col3 col4 col5
row 1 b[0][0] b[0][1] b[0][2] b[0][3] b[0][4]
row 2 b[1][0] b[1][1] b[1][2] b[1][3] b[1][4]
row 3 b[2][0] b[2][1] b[2][2] b[2][3] b[2][4]
Trang 15 Chương trình này kiểm tra một ma trận 2 chiều có đối xứng hay không
bool symmetr = true;
for ( i=0; i< N; ++i)
if(!symmetr) break;
} if(symmetr) printf("\nThe matrix is symmetric\n”);
else printf("\nThe matrix is not symmetric\n”;
Trang 16Dãy nhiều chiều
Định nghĩa
Dã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]).
float diem[X][Y][Z];
matran matran[0][0]
matran[7][7]
độ lớn 512 byte
matran[0][7]
Trang 18Kiểu chuỗi (string)
Trong C, chúng ta thường sử dụng mảng của những ký tự
để biểu diễn chuỗi Chuỗi là mảng của những ký tự với ký
tự kết thúc là ký tự null (‘\0’)
Chuỗi có thể được gán giá trị khi khai báo:
char strg[] = “C++”;
Biến strg được gán giá trị ban đầu là “C++” Lời khai báo
tạo một mảng gồm 4 phần tử lần lượt là ‘C’, ‘+’, ‘+’ và ‘\0’
Ký tự null (\0) đánh dấu kết thúc chuỗi
Khai báo trên tự động xác định kích thước mảng dựa trên
Trang 19Kiểu chuỗi (string)
Ký tự trong chuỗi được xử lý như phần tử dãy
Ví dụ: hoten[8]='\r‘;
hoten[ i ]=hoten[ i + 4 ];
Trang 20Thư viện string.lib (string.h)
Một số hàm xử lý chuỗi thường dùng
strcmp / strncmp : so sánh 2 chuỗi.
Trang 21Kiểu chuỗi (string)
Trang 22Kiểu chuỗi (string)
Trang 23Kiểu chuỗi (string)
Trang 24Truyền tham số mảng
Mảng có thể là tham số của một hàm như sau:
void nhapday(int a[]){
Trang 25Truyền tham số mảng