Giới thiệu tài liệu
Tài liệu này giới thiệu về mảng trong lập trình C/C++, bao gồm mảng một chiều và mảng hai chiều. Nó trình bày sự cần thiết của mảng, định nghĩa, cách khai báo, đọc và ghi dữ liệu trên mảng, cùng với các ứng dụng và kỹ thuật liên quan.
Đối tượng sử dụng
Sinh viên ngành khoa học máy tính, kỹ thuật phần mềm, hoặc các ngành liên quan cần nắm vững kiến thức về mảng trong C/C++.
Nội dung tóm tắt
Tài liệu trình bày chi tiết về mảng, một cấu trúc dữ liệu quan trọng trong lập trình. Mở đầu bằng việc giải thích sự cần thiết của mảng thông qua bài toán quản lý bán hàng, nêu bật vấn đề khi sử dụng các kiểu dữ liệu cơ bản để lưu trữ một lượng lớn dữ liệu. Giải pháp được đưa ra là sử dụng struct để gom dữ liệu mô tả một món hàng và mảng (hoặc danh sách) để lưu trữ nhiều món hàng. Về mặt kỹ thuật, C/C++ hỗ trợ mảng để lưu trữ liên tục các phần tử cùng kiểu dữ liệu và con trỏ để phát triển các loại danh sách.
Định nghĩa mảng là một dãy các phần tử cùng kiểu, nằm liền kề nhau trong bộ nhớ. Các phần tử trong mảng được đánh chỉ số, bắt đầu từ 0, để truy xuất ngẫu nhiên. Công thức tính địa chỉ của một phần tử trong mảng là: Địa chỉ = địa chỉ phần tử đầu tiên + k * (kích thước phần tử), trong đó k là chỉ số của phần tử.
Mảng một chiều được trình bày với cú pháp khai báo, ví dụ về khởi tạo mảng và cách truy xuất phần tử bằng chỉ số hoặc bằng con trỏ và phép toán địa chỉ. Tài liệu cũng liệt kê một số kỹ thuật thường dùng trên mảng một chiều, bao gồm duyệt mảng, tính giá trị thống kê, xử lý phần tử, hoán đổi và sắp xếp phần tử, và tìm kiếm.
Mảng hai chiều được giới thiệu như một cấu trúc dữ liệu hữu ích để biểu diễn ma trận, ảnh, và đồ thị. Cách lưu trữ mảng hai chiều trong bộ nhớ (tuyến tính hóa theo hàng) được mô tả, cùng với công thức tính địa chỉ của phần tử [row, col]: Địa chỉ = first + [row * COLS + col], với COLS là số cột. Tài liệu cũng trình bày cách khai báo và truy xuất phần tử trong mảng hai chiều. Cuối cùng, một số kỹ thuật trên mảng hai chiều được liệt kê, bao gồm duyệt mảng, duyệt hàng, duyệt cột, và duyệt các phần tử trên đường chéo của ma trận vuông.