Problem

2/10

Truy cập một phần tử mảng

Theory Click to read/hide

Tham chiếu phần tử mảng

Phần lớn tính hữu ích của mảng đến từ thực tế là các phần tử của nó có thể được truy cập riêng lẻ.
Cách để làm điều này là sử dụng một chỉ mục để đánh số các phần tử.
Chỉ mục là một giá trị trỏ đến một phần tử mảng cụ thể

NHỚ!
ĐÁNH SỐ Mảng TRONG PASCAL BẮT ĐẦU TỪ SỐ KHÔNG!

(Đây là điều bắt buộc — bạn phải bắt đầu lại từ đầu. Điều này đặc biệt quan trọng cần nhớ)

Ví dụ truy cập mảng A: x := (A[3] + 5) * A[1] // đọc giá trị của A[3] và A[1] A[0] := x + 6 // ghi giá trị mới vào A[0] Hãy phân tích chương trình làm việc với các phần tử của mảng. var i: số nguyên; a: mảng các số nguyên; bắt đầu     tôi := 1;     độ dài thiết lập(a, 5); //tạo mảng 5 phần tử      a[0] := 23; // đến từng phần tử trong số 5 phần tử của mảng (chỉ số từ 0 đến 4)     a[1] := 12; // ghi một giá trị cụ thể     a[2] := 7;     a[3] := 43;     a[4] := 51;     a[2] := a[i] + 2 * a[i - 1] + a[2 * i]; // đổi giá trị của phần tử có chỉ số 2 thành kết quả của biểu thức     // vì i=1 nên thay giá trị của biến i vào biểu thức ta được     // biểu thức tiếp theo  a[2] := a[1] + 2*a[0] + a[2];     writeln(a[2] + a[4]); kết thúc.
Là kết quả của việc chạy chương trình này giá trị của tổng các phần tử của mảng có chỉ số 2 và chỉ số 4 bằng 116 sẽ xuất hiện trên màn hình. Như bạn có thể thấy từ ví dụ, chúng ta có thể truy cập bất kỳ phần tử nào của mảng . Và cũng tính toán số lượng phần tử cần thiết bằng các công thức khác nhau (ví dụ: như trong chương trình A[i-1] hoặc A[2*i], trong những trường hợp này, chỉ số của các phần tử sẽ được tính toán và phụ thuộc vào giá trị của i.)

Hãy xem một chương trình ví dụ var a: mảng số nguyên; bắt đầu     độ dài thiết lập(a, 5);     a[5] := 5; a[-1] := 0; kết thúc.

Bởi vì khai báo mảng có 5 phần tử nên các phần tử sẽ được đánh số từ 0 đến 4. Chúng tôi thấy rằng chương trình ở dòng thứ 6 đề cập đến một phần tử không tồn tại а [5] và trên dòng thứ 7 của dòng a[-1].

Hóa ra chương trình đã vượt quá giới hạn của mảng
Mảng ngoài giới hạn đang truy cập một phần tử có chỉ mục không tồn tại trong mảng.
Trong những trường hợp như vậy, chương trình thường gặp sự cố với lỗi thời gian chạy


 
 

Problem

Trên các dòng 8 đến 11, đặt các phần tử mảng ở chỉ số 1 thành 4 gấp đôi giá trị của phần tử mảng trước đó. 
Trong nhiệm vụ này, bạn không thể gán số cụ thể, bạn phải tham khảo phần tử trước của mảng theo tên và chỉ số
Nghĩa là, mục nhập a[1] = 46 sẽ được coi là không chính xác.