Problem

4/12

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ỉ số để đánh số các phần tử.

NHỚ!
ĐÁNH SỐ Mảng TRONG C 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. #include <iostream> sử dụng không gian tên std; chủ yếu() { int i=1, A[5]; 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[i] + 2*A[0] + A[2]; cout << A[2]+A[4]; } Kết quả của việc thực hiện chương trình này, giá trị của phần tử mảng có chỉ số 2 bằng116sẽ 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 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ụ #include<iostream> sử dụng không gian tên std; chủ yếu() { const int N = 5; int A[N]; x = 1; cout << A[x-3]; // tham chiếu đến phần tử A[-2] A[x+4]=A[x]+A[2*(x+1)]; // sau khi thay x vào biểu thức và phép tính ta được dòng sau: A[5] = A[1]+A[ 4]; ... } Bởi vì mảng được khai báo có 5 phần tử, nghĩa là các phần tử sẽ được đánh số từ 0 đến 4. Ta thấy chương trình truy cập đến các phần tử không tồn tại: A[-2] và A[5]
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

Hãy thử tự mình làm việc với các phần tử mảng. Hoàn thành nhiệm vụ
 

Problem

Trên các dòng từ 6 đến 9, hãy đặt các phần tử mảng ở chỉ mục 1 đến 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ố
Tức là viết A[1]=46 sẽ bị coi là sai