1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng cơ sở lập trình mảng (array) trịnh tấn đạt

112 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Mảng (Array) Trịnh Tấn Đạt Khoa CNTT - Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/ Nội dung  Đặt vấn đề  Định nghĩa mảng  Mảng chiều  Các thao tác mảng chiều (1D)  Mảng chiều (2D) mảng nhiều chiều  Các thao tác mảng chiều (2D)  Các ví dụ minh họa  Bài Tập Đặt vấn đề  Ví dụ  Chương trình cần lưu trữ số nguyên? => Khai báo biến int a1, a2, a3;  Chương trình cần lưu trữ 100 số nguyên? => Khai báo 100 biến kiểu số nguyên!  Người dùng muốn nhập n số nguyên? => Không thực được!  Giải pháp  Kiểu liệu cho phép lưu trữ dãy số nguyên dễ dàng truy xuất Định nghĩa biến mảng  Mảng (Array): kiểu liệu có cấu trúc  Mảng nhóm biến có tên, kiểu liệu Ví dụ: dãy số nguyên, dãy ký tự…  Mảng nhiều chiều  Kích thước xác định khai báo không thay đổi  Mỗi phần tử (mỗi biến) mảng truy xuất thông qua số  NNLT C định khối nhớ liên tục cho biến kiểu mảng Mảng chiều A 10 -2 Mảng A có ô nhớ (chứa tối đa phần tử), có phần tử gán giá trị, ô nhớ trống Định nghĩa biến mảng  Ví dụ : mảng chiều B kích thước 3x5 (có dịng cột) chứa số nguyên -2 37 43 51 93 34  Mảng B có 3x5=15 nhớ (chứa tối đa 15 phần tử), có 3x4=12 phần tử gán giá trị, ô nhớ trống Khai báo biến mảng  Cú pháp dùng cho mảng chiều (1D Array): [];  Lưu ý o : theo nguyên tắc đặt tên biến o Phải xác định cụ thể (hằng) khai báo Ví dụ: 10 ( mảng chứa 10 phần tử) o Bộ nhớ sử dụng phải 64KB (65535 Bytes) o Một dãy liên tục có số từ đến -1 (lưu ý: số 0)  Ví dụ: int A [10]; // mảng số nguyên A chứa tối đa 10 phần tử float B[50]; //mảng kiểu float B chứa tối đa 50 phần tử double Array_C[1000] ; // mảng kiểu double Array_C chứa tối đa 1000 phần tử Khai báo biến mảng  Ví dụ: dùng macro define xác định tổng số phần tử mảng #define MAX 20 // MAX giá trị int mangA[MAX] // mảng số nguyên mangA chứa tối đa 20 phần tử • Lưu ý khai báo SAI, không cho phép int n = 100; int M[n]; // SAI, chương trình báo lỗi float N[k]; // SAI, chương trình báo lỗi Khai báo biến mảng  Xét ví dụ : int A[10];  Ta khai báo (định nghĩa mảng) mảng số nguyên A có tổng số phần tử 10  Các phần tử mảng chưa gán giá trị  Tất phần tử (nếu có) gán số nguyên  Mỗi phần tử mảng có số từ đến (tổng cộng 10 phần tử) Mảng A Khai báo biến mảng  Gọi N số phần tử chứa mảng  Khi đó, số mảng đến N-1  Toán tử [] : toán tử lấy số mảng  Ví dụ: int a[50]; // khai báo mảng a chứa tối đa 50 phần tử Giả sử tạo mảng a chứa phần tử số nguyên ( N = 3) a[0] = 2; a[0] a[1] a[2] a[1] = 4; a[0] = 8; a[49] a[3] … … … Các số a[0] vị trí thứ nhất, a[1] vị trí thứ hai, a[2] vị trí thứ ba … … Khai báo biến mảng  Ví dụ: double B[10];  Định nghĩa 10 biến kiểu double gồm: B[1], B[2], … , B[9] Gán giá trị cho phần tử từ đến B[0] = 10.5; B[1] = 0.2; B[2] = 9.5; B[3] = 2.7; Các ví dụ minh họa a) Liệt kê số dòng có chứa giá trị lẻ ma trận số nguyên void findrow_odd_number(int a[][MAX],int m, int n) { int count = 0; for (int i=0; i< m; i++) { for (int j=0; j

Ngày đăng: 08/12/2023, 15:30