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

 

ppt 21 trang phuongnguyen 6940
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

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:

  • pptbai_giang_lap_trinh_can_ban_phan_1_chuong_6_kieu_mang.ppt