Bài giảng Lập trình căn bản - Phần 1, Chương 6: Kiểu mảng
Bài giảng Lập trình căn bản - Phần 1, Chương 6: Kiểu mảng
Nội dung chương này
Giới thiệu kiểu mảng trong C
Mảng 1 chiều
Mảng nhiều chiều
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình căn bản - Phần 1, Chương 6: Kiểu mảng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình căn bản - Phần 1, Chương 6: Kiểu mảng
LẬP TRÌNH CĂN BẢN
Phần 2 - Chương 6
KIỂU MẢNG
N .C. Danh
1
Nội dung chương này
Giới thiệu kiểu mảng trong C
Mảng 1 chiều
Mảng nhiều chiều
2
Giới thiệu kiểu mảng trong C (1)
Ví dụ:
int a[10];
=> Hình ảnh của a trong bộ nhớ như sau:
3
Giới thiệu kiểu mảng trong C (2)
“Mảng là một tập hợp các phần tử cố định có cùng một kiểu, gọi là kiểu phần tử”.
Kiểu phần tử có thể là có kiểu bất kỳ:
ký tự
số
1 struct
1 mảng khác (=> mảng của mảng hay mảng nhiều chiều)
;
4
Giới thiệu kiểu mảng trong C (3)
Ví dụ: Lưu trữ 1 đa giác trong đồ họa:
typedef struct {
int x;
int y;
} Point;
typedef struct {
Point Points[100];
int nPoints;
} Polygon;
Points[1]
Points[2]
Points[3]
Points[0]
5
Giới thiệu kiểu mảng trong C (4)
Ta có thể chia mảng làm 2 loại:
Mảng 1 chiều
Mảng nhiều chiều
6
Mảng 1 chiều (1)
Xét dưới góc độ toán học, mảng 1 chiều giống như một vector.
Mỗi phần tử của mảng 1 chiều có giá trị không phải là một mảng khác .
Khai báo mảng với số phần tử xác định
Ví dụ: float a[100];
Cú pháp: ;
Khai báo mảng với số phần tử không xác định
Ví dụ: float a[];
Cú pháp : ;
7
Mảng 1 chiều (2)
Vừa khai báo vừa gán giá trị
[]= {Các giá trị cách nhau bởi dấu phẩy} ;
=> Số phần tử có thể được xác định bằng sizeof()
Số phần tử= sizeof( tên mảng )/sizeof( kiểu )
Khai báo mảng là tham số hình thức của hàm
không cần chỉ định số phần tử của mảng là bao nhiêu
8
Mảng 1 chiều (3)
Ví dụ: Gán giá trị ngay lúc khai báo
int primes[] = {2,3,5,7,11,13};
Sẽ tương đương với:
int primes[6];
primes[0] = 2;
primes[1] = 3;
primes[2] = 5;
primes[3] = 7;
primes[4] = 11;
primes[5] = 13;
=>sizeof(primes)/sizeof(int)=6
9
Truy xuất từng phần tử của mảng (1)
Cú pháp:
Tên biến mảng [ Chỉ số ]
Ví dụ 1:
int a[10];
a[0]=5; a[1]=5; a[2]=33; a[3]=33; a[4]=15;
printf(“%d %d %d %d %d”, a[0], a[1], a[2], a[3], a[4]);
10
Truy xuất từng phần tử của mảng (2)
Ví dụ 2: Vừa khai báo vừa gán trị cho 1 mảng 1 chiều các số nguyên. In mảng số nguyên này lên màn hình.
11
Truy xuất từng phần tử của mảng (3)
Ví dụ 3 : Đổi một số nguyên dương thập phân thành số nhị phân .
12
Truy xuất từng phần tử của mảng (4)
Ví dụ 4 : Nhập vào một dãy n số và sắp xếp các số theo thứ tự tăng.
13
Truy xuất từng phần tử của mảng (5)
Ví dụ 5 : Chương trình sau sẽ hiển thị kết quả gì?
Các phần tử của mảng a[0], , a[11]. Việc truy cập a[12] sẽ vượt ra bên ngoài mảng , ô nhớ của biến b.
Sửa lỗi này thế nào?
14
Mảng nhiều chiều
Mảng nhiều chiều là mảng có từ 2 chiều trở lên .
Điều đó có nghĩa là mỗi phần tử của mảng là một mảng khác .
Người ta thường sử dụng mảng nhiều chiều để lưu các ma trận, các tọa độ 2 chiều, 3 chiều
15
Khai báo mảng 2 chiều tường minh
Cú pháp:
;
Ví dụ:
float m[8][9]; // mảng 2 chiều có 8*9 phần tử là số thực
16
Khai báo mảng 2 chiều không tường minh
Để khai báo mảng 2 chiều không tường minh, ta vẫn phải chỉ ra số phần tử của chiều thứ hai (chiều cuối cùng).
Cú pháp:
;
Ví dụ:
float m[][9];
Cách khai báo này cũng được áp dụng trong trường hợp:
vừa khai báo vừa gán trị
mảng 2 chiều là tham số hình thức của 1 hàm.
17
Truy xuất từng phần tử của mảng 2 chiều
Dùng:
Tên mảng[Chỉ số 1] [ Chỉ số 2 ]
18
Ví dụ (1)
Viết chương trình cho phép nhập 2 ma trận a, b có m dòng n cột, thực hiện phép toán cộng hai ma trận a,b và in ma trận kết quả lên màn hình .
19
Ví dụ (2)
20
Hết chương
Hết chương
21
File đính kèm:
bai_giang_lap_trinh_can_ban_phan_1_chuong_6_kieu_mang.ppt

