K
Khách

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.

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ó.
15 tháng 2 2017

Là các tham chiếu đến các phần tử

6 tháng 5 2019

Program hoc24hoc24;

Uses crt;

Var i: Integer;

A: array [1..10] of Integer;

BEGIN

Clrscr;

For i:=1 to 10 do

Begin write ('A[',i,']='); readln (A[i]); end;

For i:= 1 to 10 do write (A[i]:3);

Readln

End.

6 tháng 5 2019

Bài 9. Làm việc với dãy số

Sẽ khó xử lý nếu gặp những bài phức tạp như chuỗi con dài nhất

25 tháng 4 2021

uses crt;

var a:array[1..100]of integer;

i,n,t:integer;

begin

clrscr;

write('Nhap n='); readln(n);

for i:=1 to n do

begin

write('A[',i,']='); readln(a[i]);

end;

t:=1;

for i:=1 to n do 

  t:=t*a[i];

writeln(t);

readln;

end.

2 tháng 6 2021

uses crt;

var n,i,dem: integer;

tb: real;

A:array[1..1000] of integer;

writeln('Nhap do dai day: '); read(n);

writeln('Nhap cac phan tu cua day: ');

for i:=1 to n do

begin

writeln('a[',i,']='); read(a[i]);

end;

tb:=0;

for i :=1 to n do

begin tb:=tb+a[i]; dem:=dem+1; end;

tb:=tb/dem;

writeln('Gia tri Tb la: ',tb);

readln

2 tháng 6 2021

@Lê Minh Vy:

-Sau dòng lệnh thứ 4 là lệnh Begin: dùng để chia giữa phần khai báo và phần thân và cuối chương trình thiếu lệnh end. để kết thúc chương trình.

-Lệnh nhập là readln không phải read: + dòng thứ 5 của bạn phải là readln(n); + dòng thứ 9 là readln(a[i]);

- Dòng 11,12,13 có thể gộp lên ở phần trên để đỡ chạy vòng for, rườm rà nhé :))

- Đề bài :viết chương trình sử dụng biến mảng để tính giá trị trung bình của n số nguyên được nhập từ bàn phím "và in ra dãy số nguyên đó" nên cuối bài, trước readln end. cần thêm lệnh

for i:=1 to n do write('day so nguyen la' a[i],' '); hoặc có thể bỏ ở vòng for ở trên gộp lại cũng được.

28 tháng 12 2020

Cú pháp

If < điều kiện> then < câu lệnh>;

Cách hoạt động: nếu điều kiện đúng thì sẽ thực hiện câu lệnh còn nếu điều kiện sai thì sẽ không thực hiện được và sẽ dừng chương tình

28 tháng 12 2020

Điều kiện dạng đủ mà bạn!

uses crt;

var a:array[1..50]of real;

i,n:integer;

t:real;

begin

clrscr;

for i:=1 to 50 do readln(a[i]);

t:=0; for i:=1 to 50 do t:=t+a[i];

writeln(t/50:4:2);

readln;

end.

24 tháng 2 2022

Cảm ơn ạ

 

26 tháng 4 2022

uses crt;
var b,c:real; a:array[1..100] of integer; s:real;
begin
clrscr;
write('Nhap vao diem hoc ki 1:');readln(b);
write('Nhap vao diem hoc ki 2:');readln(c);
s:=((b+c)*2)/3;
write('Diem ca nam=',s:2:2);
readln;
end.

Tham khảo! Làm hơi ngắnbucminh