Trong chương trình tin học 11, kiểu mảng là bài học khá trọng tâm. Trong đó có kiểu mảng 1 chiều, đây là kiểu mảng thông dụng với nhiều ngôn ngữ lập trình. Nó được sử dụng rộng rãi trong các ứng dụng kỹ thuật số và xử lý dữ liệu. Vậy mảng 1 chiều là gì? Cùng Hoc365 tóm tắt ngắn gọn lý thuyết về vấn đề này trong bài viết sau đây nhé.
Mảng là gì? Tại sao phải sử dụng mảng?
Mảng (array) là một dạng dữ liệu cố định, cho phép bạn lưu trữ nhiều giá trị cùng một kiểu dữ liệu trong một biến duy nhất. Ví dụ như dãy các số nguyên, dãy các ký tự. Mỗi giá trị trong mảng được gọi là một phần tử và có chỉ số duy nhất để truy cập nó.
Kích thước của mảng (số lượng biến trong mảng) được xác định ngay khi khai báo và không thay đổi. Mảng được cấp phát một khối nhớ liên tục để lưu trữ các biến trong mảng.
Giả sử, chương trình cần lưu trữ 200 số nguyên. Muốn nhập và lưu trữ nó cần phải thực hiện 100 lần. Việc này quá cồng kềnh và giải pháp đó là cần có một cấu trúc dữ liệu cho phép ta lưu trữ dãy số nguyên đó và dễ dàng truy xuất. Đó chính là lý do tại sao phải sử dụng mảng (array).
Mảng 1 chiều là gì?
Mảng 1 chiều là một tập hợp các phần tử cùng kiểu dữ liệu được lưu trữ và quản lý dưới dạng một mảng với một chiều. Mảng được đặt tên và mỗi phần tử trong mảng được gán với một chỉ số để truy cập đến nó.
Nó chỉ có một chiều, vì vậy tất cả các phần tử trong mảng đều được lưu trữ theo một dãy liên tục và có chỉ số duy nhất để truy cập chúng. Mảng 1 chiều là một công cụ hữu ích để lưu trữ và quản lý dữ liệu liên tục.
Để mô tả mảng 1 chiều, ta cần xác định kiểu của các phần tử và cách đánh số cho các phần tử của nó (mỗi phần tử của nó có một chỉ số).
Ví dụ:
- int a[100]; // mảng a chứa 100 số nguyên
- float b[10]; // mảng b chứa 10 số thực
- char c[]=”Chao ban!”; // mảng c chứa các ký tự
- int m[]={2,4,6,8}; // mảng m chứa 4 số chẵn
Để người lập trình xây dựng và sử dụng mảng 1 chiều, các ngôn ngữ lập trình có quy tắc cách thức cho phép xác định được:
- Tên kiểu mảng một chiều
- Số lượng phần tử
- Kiểu dữ liệu của phần tử
- Cách khai báo biến
- Cách tham chiếu đến phần tử
Có thể truy cập trên mỗi phần tử của mảng 1 chiều, mỗi phần tử được xác định bởi tên của mảng và chỉ số tương ứng của phần tử này.
Ví dụ: Tìm phần tử lớn nhất trong một mảng số nguyên.
Trong đó:
- “N” là hằng số chứa giá trị số phần tử của mảng.
- “Mang” là tên kiểu mảng, chứa các phần tử kiểu integer với giới hạn trái là 1 và giới hạn phải là N.
- “a” là tên biến mảng.
- Trong vòng lặp for, chúng ta nhập vào giá trị cho mỗi phần tử của mảng.
- Biến max lưu giá trị lớn nhất được tìm thấy trong mảng. Ban đầu, max được gán bằng giá trị đầu tiên của mảng a.
- Trong vòng lặp for, chúng ta duyệt qua từng phần tử của mảng a và so sánh với giá trị lớn nhất được tìm thấy để cập nhật giá trị lớn nhất nếu cần thiết.
- Cuối cùng, giá trị lớn nhất được in ra màn hình.
Các khai báo mảng 1 chiều
Cách 1: Khai báo trực tiếp biến mảng 1 chiều:
var <tên biến mảng> : array [kiểu chỉ số] of <kiểu phần tử>;
Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng 1 chiều:
type <tên kiểu mảng> = array [kiểu chỉ số] of <kiểu phần tử>;
var <tên biến mảng> : <tên kiểu mảng>
Trong đó:
- Kiểu chỉ số thường là một số nguyên liên tục có dạng n1,…n2 với n1, n2 là các hàng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1<n2)
- Kiểu phần tử là kiểu của phần tử mảng
Ví dụ:
Trong đó:
- Ten_Mang là MangSoNguyen (tên kiểu dữ liệu mảng mà bạn muốn đặt).
- 1 đến 10 là kiểu chỉ số hay còn gọi là là giới hạn trái và phải của mảng.
- integer là kiểu dữ liệu của các phần tử trong mảng.
- A là là tên của biến mảng.
Trong ví dụ, mảng A là một mảng gồm 10 phần tử kiểu integer, với giới hạn trái là 1 và giới hạn phải là 10. Chúng ta gán giá trị cho từng phần tử của mảng A trong vòng lặp for và in ra màn hình giá trị của mảng A trong vòng lặp for khác.
Một số lỗi gặp phải khi khai báo và khởi tạo mảng 1 chiều
- Khai báo không chỉ rõ số lượng phần tử
Khai báo int a[]; sẽ bị lỗi, khai báo đúng là int a[500];
- Khai báo số lượng phần tử của mảng không được là biến
Khai báo int n1=50; int a[n1]; sẽ bị lỗi khai báo đúng là int a[50];
- Khởi tạo cách biệt với khai báo
Khởi tạo int a[4]; a = {2912, 1706, 1506, 1904}; sẽ bị lỗi, khởi tạo đúng là int a[4] = {2912, 1706, 1506, 1904};
- Chỉ số mảng không hợp lệ
Chỉ số của mảng int a[4]; là 0, 1, 2, 3 nên truy xuất các truy xuất như a[-1] = 1; a[10] = 0; là sai.
Trên đây là định nghĩa mảng 1 chiều là gì và một số kiến thức liên quan. Hy vọng những ví dụ cụ thể sẽ giúp bạn hiểu rõ về mảng 1 chiều. Đừng quên theo dõi Hoc365 để tham khảo kiến thức tin học thú vị nhé.
Bài viết liên quan
Em cần biết thông tin gì của người mà em muốn gửi thư điện tử cho họ?
Tại sao khi lập mối quan hệ giữa hai trường của hai bảng nhưng Access lại không chấp nhận?
Trong một bài trình chiếu có thể có bao nhiêu trang chiếu?
Trong trang web liên kết hay siêu liên kết là gì? Có vai trò như thế nào?
Người nào có vai trò chịu trách nhiệm quản lý các tài nguyên?
Thiết bị nào xuất dữ liệu văn bản từ máy tính ra ngoài?
Trong khi nhập dữ liệu cho bảng muốn chèn thêm một bản ghi mới ta thực hiện?
Các thao tác thay đổi hình thức biểu mẫu gồm?
Để nâng cao hiệu quả của việc bảo mật ta cần phải?
Phát biểu nào dưới đây không phải là bảo mật thông tin trong hệ cơ sở dữ liệu?
Phát biểu nào dưới đây sai khi nói về mã hóa thông tin?
Thuật ngữ quan hệ dùng trong hệ cơ sở dữ liệu quan hệ là để chỉ đối tượng?
Đáp án chi tiết: Có mấy cách tạo biểu mẫu?
Đáp án: Chọn phát biểu đúng về khai thác cơ sở dữ liệu?
Tạo bảng trong cơ sở dữ liệu quan hệ nhằm mục đích nào dưới đây?
Chi tiết: Trong Access khi tạo liên kết giữa các bảng thì?