Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
355 KB
Nội dung
CHƯƠNG III KIỂU DỮ LIỆU MẢNG - XÂU - CON TRỎ III.1 Kiểu liệu mảng III.1.1 Mảng chiều a Ý nghĩa Mảng dãy thành phần có kiểu kề liên tục nhớ Tất thành phần có tên tên mảng Để phân biệt thành phần với nhau, người ta đánh số thứ tự từ hết mảng Khi cần nói đến thành phần cụ thể mảng, ta dùng tên mảng kèm theo số thứ tự thành phần Dưới hình ảnh minh họa mảng gồm có thành phần, thành phần đánh số từ đến Hình 3.1 b Khai báo mảng Có dạng khai báo: • • • [số thành phần] ; // không khởi tạo [số thành phần] = { dãy giá trị };//có khởi tạo [ ] = { dãy giá trị } ; // có khởi tạo Tên kiểu kiểu liệu thành phần, thành phần có kiểu giống Đôi khi, ta gọi thành phần phần tử Cách khai báo giống khai báo tên biến bình thường thêm số lượng thành phần mảng cặp dấu ngoặc vuông [], số lượng gọi kích thước mảng Mỗi tên mảng biến để phân biệt với biến thông thường ta gọi biến mảng Một mảng liệu lưu nhớ dãy ô liên tiếp Số lượng ô với số thành phần mảng độ dài (byte) ô đủ để chứa thông tin thành phần Ô đánh thứ tự 0, ô 1, tiếp tục hết Như vậy, mảng có n thành phần ô cuối mảng đánh số n - Dạng khai báo thứ cho phép khởi tạo mảng dãy giá trị cặp dấu {}, giá trị cách dấu phảy (,), giá trị gán cho phần tử mảng phần tử thứ hết dãy Số giá trị số phần tử Các phần tử mảng chưa có giá trị không xác định chương trình, gán giá trị Dạng khai báo thứ cho phép vắng mặt số phần tử, trường hợp số phần tử xác định số giá trị dãy khởi tạo Do vắng mặt dãy khởi tạo không phép (chẳng hạn khai báo int a[] sai) Ví dụ 3.1: Khai báo biến chứa tọa độ 100 điểm mặt phẳng: float x[100] , y[100] ; Khai báo biến chứa phân số a, b, c Trong đó, khởi tạo a = 1/3 b = 3/5: int a[2] = {1, 3} , b[2] = {3, 5} , c[2] ; Ở đây, ngầm qui ước thành phần (số thứ tự 0) tử thành phần thứ hai (số thứ tự 1) mẫu phân số Khai báo mảng L chứa tối đa 100 số nguyên dài: long L[100] ; Khai báo mảng dong (dòng), dòng chứa tối đa 80 kí tự: char dong[80] ; Khai báo dãy data chứa số thực double: double data[] = { 0,0,0,0,0 }; // khởi tạo tạm thời c Cách sử dụng Để thành phần thứ i (hay số i) mảng ta viết tên mảng kèm theo số cặp ngoặc vuông [] Ví dụ với phân số a[0], b[0], c[0] để tử số a[1], b[1], c[1] để mẫu số phân số a,b,c Không thể áp dụng thao tác trực tiếp lên toàn mảng mà phải thực thao tác với thành phần mảng Ví dụ, ta nhập liệu cho mảng a[10] câu lệnh: cin >> a ; // sai mà phải nhập cho phần tử từ a[0] đến a[9] a Trong trường hợp này, phải cần đến lệnh lặp, ví dụ: int i ; for (i = ; i < 10 ; i++) cin >> a[i] ; Tương tự, giả sử cần cộng phân số a, b đặt kết vào c Không thể viết: c = a + b ; // sai mà cần phải tính giá trị phần tử c: c[0] = a[0] * b[1] + a[1] * b[0] ; c[1] = a[1] * b[1] ; d Ví dụ Ví dụ 3.2: Tìm tổng, tích phân số #include using namespace std; int main() { int a[2], b[2], tong[2], tich[2] ; cout a[1] ; cout b[1] ; tong[0] = a[0]*b[1] + a[1]*b[0] ; tong[1] = a[1] * b[1] ; tich[0] = a[0]*b[0]; tich[1] = a[1] * b[1] ; cout