![](https://rs.olm.vn/images/avt/0.png?1311)
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
![](https://rs.olm.vn/images/avt/0.png?1311)
![](https://rs.olm.vn/images/avt/0.png?1311)
![](https://rs.olm.vn/images/avt/0.png?1311)
Lợi ích đó là:
- rút gọn việc viết phương trình
- có thể sử dụng câu lệnh lặp để thay thế nhiều câu lệnh
- tiết kiệm thời gian và công sức viết chương trình
![](https://rs.olm.vn/images/avt/0.png?1311)
Nhược điểm của biến mảng là:
- Kích thước của mảng phải là cố định: Trong cấp phát mảng tĩnh, mảng cần được khai báo với kích thước xác định trước khi chạy chương trình. (vùng nhớ cho mảng được cấp phát khi biên dịch). Trong cấp phát động, vùng nhớ được cấp phát khi chạy chương trình. Như các bạn đã biết, vùng nhớ giành cho mỗi chương trình thường không dự đoán được trước. Nếu khai báo mảng với kích thước lớn, không sử dụng hết sẽ gây lãng phí bộ nhớ, ngược lại nếu kích thước vùng nhớ không đủ dùng, chúng ta không thể mở rộng vùng nhớ thêm được, dẫn đến buffer overrun ( tràn vùng nhớ).
- Các byte vùng nhớ cấp phát mảng được sắp xếp liên tục: trong trường hợp vùng nhớ cho chương trình đang bị phân mảnh, chương trình sẽ báo lỗi khi chúng ta khai báo hoặc cấp phát cho mảng với kích thước lớn vì lý do: không đủ vùng nhớ liên tục cho mảng ( mặc dù tổng dung lượng vùng nhớ phân mảnh là đủ).
- Việc chèn và xóa phần tử của mảng mất nhiều thời gian: vì vùng nhớ cấp phát cho mảng được sắp xếp liên tục nên việc chèn một phần tử mới vào hoặc xóa phần tử trong mảng trở lên khó khăn. Ví dụ: cho mảng A[100], chúng ta muốn chèn thêm phần tử mới vào vị trí i, tất cả các phần tử thứ i trở đi phải dịch sang vị trí kế tiếp để chèn giá trị vào vị trí thứ i. Việc xóa phần tử trong mảng cũng tương tự như vậy, dịch tất cả các phần tử từ vị trí thứ i+1 sang vị trí liền trước nó.
![](https://rs.olm.vn/images/avt/0.png?1311)
Tham khảo
-Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có chung một kiểu dữ liệu, gọi là kiểu của phần tử. Việc sắp xếp thứ tự được thực hiện bằng cách gán cho mỗi phần tử một chỉ số.
-Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng.
Có 2 cách khai báo mảng:
C1: Khai báo trực tiếp
VAR <Tên biến>:array[<chỉ số đầu>,<chỉ số cuối>] of <kiểu dữ liệu>;
VD:a:array[1..50] of string;
C2:Khai báo gián tiếp
Type <Tên biến>=array[<chỉ số đầu>,<chỉ số cuối>] of <kiểu dữ liệu>;
Var <Tên mảng>:<Tên biến>;
VD:
Type mang=[1..100] of integer;
Var A:mang;
![](https://rs.olm.vn/images/avt/0.png?1311)
program phan_tu;
uses crt;
var i, n: integer;
s: real;
a: array[1..100] of real;
begin
write('Nhap do dai cua day so: '); readln(n);
for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end;
s:=0
for i:=1 to n do s:=s + a[i];
for i:=1 to n do if a[i] < s then writeln('a[',i,']=', a[i]);
readln;
end.
Sẽ khó xử lý nếu gặp những bài phức tạp như chuỗi con dài nhất