Problem

2/11

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

Theory Click to read/hide

Làm việc với các phần tử của 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ử.
 
Chỉ mụclà một giá trị trỏ đến một phần tử mảng cụ thể.

Để chỉ một phần tử của một mảng, bạn phải chỉ định tên của mảng theo sau là chỉ số của nó trong dấu ngoặc vuông. Ví dụ: bạn có thể ghi giá trị 100 vào phần tử mảng ở chỉ số 1 như sau: A[1] = 100.


Bạn phải nhớ!
ĐÁNH SỐ Mảng TRONG PYTHON BẮT ĐẦU TỪ SỐ KHÔNG!
(Đây là điều kiện tiên quyết - 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ụ
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 mảng phần tử. tôi = 1 A = [0] * 5 # tạo mảng 5 phần tử A[0] = 23 # vào mỗi trong số 5 phần tử mảng (chỉ số từ 0 đến 4) A[1] = 12 # viết 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] # thay đổ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, thay giá trị của biến i vào biểu thức ta được # biểu thức sau A[2] = A[1] + 2*A[0] + A[2]; in(A[2] + A[4])
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 số phần tử cần thiết bằng nhiều 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.

Trong Python, bạn có thể sử dụng giá trị chỉ số âm cho mảng, và đếm từ cuối mảng. Ví dụ: A[-1] - phần tử cuối cùng của mảng A[-2] - phần tử áp chót v.v.

Hãy phân tích chương trình. N=5 A = [0] * N  x=1 in(A[x - 3])   # truy cập phần tử A[-2] print(A[x - 3 + len(A)]) # truy xuất phần tử A[3]                       # đây là phần tử giống với  A[-2] A[x + 4] = A[x] + A[2 * (x + 1)]  # sau khi thay x vào các biểu thức và phép tính                            # lấy dòng tiếp theo A[5] = A[1] + A[4]                           # A[5] không tồn tại phần tử nào như vậy                           # lỗi - mảng ngoài giới hạn Vì mảng được khai báo có 5 phần tử nên các phần tử sẽ được đánh số từ -5 đến 4. Chúng ta 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: A[5].
Hóa ra chương trình đã đi quá giới hạn của 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 4 đến 7, đặ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ố
Tức là mục nhập A[1] = 46 sẽ bị coi là không hợp lệ.