Giáo án Tin học 11 · Chung, Khoa học máy tính và Tin học ứng dụng
Tin họcLớp 11Phần 6. KHMT · Chủ đề 6. Kĩ thuật lập trình · Chọn định hướng, không bắt buộc THUD

Giáo án Bài 17 · KHMT. Dữ liệu mảng một chiều và hai chiều

Kế hoạch bài dạy theo mẫu Công văn 5512/BGDĐT-GDTrH · 2 tiết (90 phút)

I. Mục tiêu

1. Kiến thức

  • Nêu được mảng một chiều là dãy phần tử được đánh số chỉ số từ 0 và mảng hai chiều là danh sách các hàng, mỗi hàng là một danh sách.
  • Giải thích được cách truy cập phần tử a[i][j]a[i][j] theo hàng ii, cột jj và cách xác định số hàng, số cột, số ô của bảng bằng len().
  • Vận dụng được hai vòng lặp lồng nhau để duyệt từng hàng rồi từng phần tử nhằm tính tổng các phần tử của mảng hai chiều.
  • Giải thích được vì sao cần kiểm tra độ dài từng hàng và vì sao không nên tạo mảng hai chiều bằng [[0]*3]*2.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: HS tự đọc ví dụ, tự dự đoán kết quả của đoạn lệnh rồi đối chiếu với kết quả chạy chương trình để điều chỉnh cách hiểu về chỉ số.
  • Giao tiếp và hợp tác: HS làm việc cặp đôi và nhóm, trình bày và nhận xét lập luận của bạn khi giải thích kết quả truy cập ô và kết quả tính tổng.
  • Giải quyết vấn đề và sáng tạo: HS xác định các bước giải bài toán tính tổng bảng, viết chương trình, kiểm tra theo dữ liệu mẫu và phát hiện lỗi tham chiếu khi tạo mảng.

b) Năng lực đặc thù

  • NLa - Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông: HS sử dụng máy tính, môi trường Python và trang bài học số để chạy thử và quan sát kết quả của đoạn lệnh trên mảng.
  • NLc - Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: HS dùng chương trình chạy thử để kiểm tra dự đoán về chỉ số, độ dài hàng và tổng các phần tử của bảng.
  • NLd - Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: HS dùng bài giảng, ví dụ và bài tập tương tác trên trang NeoEdu để tự luyện và tự kiểm tra sau giờ học.
  • NLe - Hợp tác trong môi trường số: HS cùng nhóm chia sẻ mã lệnh, kiểm tra chéo kết quả chạy chương trình và thống nhất đáp án trước khi báo cáo.

3. Phẩm chất

  • Chăm chỉ: HS kiên trì thử nhiều chỉ số khác nhau, đọc kĩ thông báo lỗi và sửa chương trình đến khi cho kết quả đúng.
  • Trách nhiệm: HS hoàn thành đầy đủ phần việc được phân công trong nhóm và kiểm tra lại mã của mình trước khi nộp.
  • Trung thực: HS ghi đúng kết quả chạy thực tế, không sao chép kết quả của bạn và nêu rõ khi chưa chắc chắn.

II. Thiết bị dạy học và học liệu

1. Giáo viên

  • Máy tính, máy chiếu, bảng phụ và bút dạ.
  • Slide bài giảng gồm ví dụ mảng a=[4,8,6], bảng a=[[2,4,1],[3,5,7]] và đoạn lệnh tính tổng.
  • Phần mềm Python 3 để chạy thử các đoạn lệnh mẫu.
  • Phiếu học tập số 1 và Phiếu học tập số 2 (in cho mỗi nhóm).
  • Thẻ đề cho 4 trạm luyện tập (lấy từ các bài tập đã cho).
  • Học liệu số NeoEdu: trang bài học có bài giảng, ví dụ và bài tập tương tác, địa chỉ neoedu.vn/learn/11/informatics/bai-17-khmt-du-lieu-mang-mot-chieu-va-hai-chieu.

2. Học sinh

  • Máy tính có cài Python 3 hoặc có kết nối internet để truy cập trang bài học NeoEdu (mỗi nhóm ít nhất một máy).
  • Vở ghi, bút, giấy nháp.
  • Khăn trải bàn hoặc tờ giấy A3 để ghi kết quả nhóm.

III. Tiến trình dạy học

Hoạt động 1: Mở đầu · 10 phút

Bảng điểm lớp và câu hỏi mở đầu

a) Mục tiêu

Xác định được vấn đề: cần một cấu trúc để lưu nhiều giá trị có quan hệ hàng và cột; nhận ra mảng một chiều chưa đủ để biểu diễn bảng dữ liệu.

b) Nội dung

GV chiếu bảng điểm gồm 3 bạn, mỗi bạn 3 môn: bạn 1 có điểm 8, 7, 9; bạn 2 có điểm 6, 8, 7; bạn 3 có điểm 9, 10, 8. HS trả lời hai câu hỏi: (1) Nếu chỉ dùng một danh sách thì lưu được bảng này như thế nào, và khi đó làm sao biết điểm nào thuộc bạn nào? (2) Điểm môn thứ 3 của bạn thứ 2 là bao nhiêu và có tất cả bao nhiêu ô điểm?

c) Sản phẩm

HS nhận ra: một danh sách chỉ lưu được một dãy giá trị theo một chỉ số, còn bảng cần hai chỉ số (hàng và cột). Đáp án dự kiến: điểm môn thứ 3 của bạn thứ 2 là 7; bảng có 3 hàng × 3 cột = 9 ô điểm. Kết luận ban đầu: cần mảng hai chiều để biểu diễn bảng.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu bảng điểm và nêu hai câu hỏi. GV yêu cầu HS suy nghĩ cá nhân trong 2 phút, chưa cần viết chương trình.

    Học sinh

    HS đọc bảng điểm, suy nghĩ và ghi nhanh câu trả lời ra giấy nháp.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh lớp, gợi ý: Hãy thử đếm xem mỗi bạn có mấy điểm và các điểm được sắp xếp thế nào.

    Học sinh

    HS làm việc cá nhân, một số HS trao đổi nhanh với bạn bên cạnh. Dự kiến HS trả lời: Có thể viết các điểm của mỗi bạn thành một dãy riêng, rồi gom các dãy đó lại.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 HS trình bày câu trả lời, ghi các ý lên bảng và hỏi: Vì sao cách viết các dãy riêng rồi gom lại lại là một bảng?

    Học sinh

    HS 1 trả lời: Điểm môn thứ 3 của bạn thứ 2 là 7. HS 2 trả lời: Có 9 ô điểm vì 3 bạn nhân 3 môn. Dự kiến HS nêu: Mỗi dãy là một hàng, và bảng cần hai chỉ số để xác định vị trí.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: Một danh sách không đủ để biểu diễn bảng có hàng và cột; mảng hai chiều là danh sách các hàng. GV giới thiệu mục tiêu hai tiết: hiểu mảng một chiều, mảng hai chiều, cách truy cập và duyệt bảng.

    Học sinh

    HS ghi tựa đề bài học và mục tiêu vào vở.

Hoạt động 2.1: Hình thành kiến thức mới · 15 phút

Mảng một chiều và chỉ số từ 0

a) Mục tiêu

Nêu được mảng một chiều là dãy phần tử có chỉ số từ 0; truy cập được phần tử theo chỉ số và xác định được độ dài của mảng.

b) Nội dung

HS làm việc theo cặp với Phiếu học tập số 1. GV cho ví dụ a=[4,8,6]. HS dự đoán và điền kết quả của các lệnh print(a[0]), print(a[2]), print(len(a)), print(a[0]+a[2]) vào phiếu, sau đó chạy thử trên máy để kiểm tra.

c) Sản phẩm

Kiến thức HS rút ra: mảng một chiledu n phần tử có chỉ số từ 0 đến n−1; a[0] là phần tử đầu tiên, a[2] là phần tử thứ ba; len(a) cho số phần tử, ở đây là 3. Kết quả: a[0] là 4; a[2] là 6; len(a) là 3; a[0]+a[2] là 10.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu ví dụ a=[4,8,6] và phát Phiếu học tập số 1. GV nêu: Hãy dự đoán kết quả trước khi chạy chương trình, sau đó kiểm tra trên máy.

    Học sinh

    HS nhận phiếu, đọc yêu cầu và ghi dự đoán vào cột Dự đoán.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV quan sát, nhắc HS chú ý chỉ số bắt đầu từ 0 khi dự đoán. Nếu nhóm nào gặp lỗi chỉ số, GV gợi ý: Phần tử đầu tiên có chỉ số là bao nhiêu?

    Học sinh

    HS làm theo cặp: một bạn gõ lệnh, một bạn đối chiếu với dự đoán. Dự kiến HS trả lời: a[0] là 4, a[2] là 6, len(a) là 3.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 1 cặp trình bày kết quả, hỏi: Nếu gọi a[3] thì điều gì xảy ra và vì sao?

    Học sinh

    Cặp báo cáo kết quả trong phiếu. Dự kiến HS trả lời: a[3] gây lỗi vì mảng chỉ có các chỉ số 0, 1, 2.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: Mảng một chiều có n phần tử, chỉ số từ 0 đến n−1; len() cho số phần tử. GV nhấn mạnh việc đếm chỉ số bắt đầu từ 0 là lỗi thường gặp.

    Học sinh

    HS ghi kiến thức vào vở và sửa phiếu nếu có sai sót.

Hoạt động 2.2: Hình thành kiến thức mới · 15 phút

Mảng hai chiều: hàng, cột và truy cập ô

a) Mục tiêu

Giải thích được cấu trúc mảng hai chiều gồm hàng và cột; truy cập được ô a[i][j] và xác định số hàng, số cột, số ô của bảng.

b) Nội dung

Tổ chức kĩ thuật khăn trải bàn: 4 nhóm, mỗi nhóm nhận một câu hỏi về bảng a=[[2,4,1],[3,5,7]] (hai hàng, ba cột). Các nhóm ghi kết quả lên khăn trải bàn và điền Phiếu học tập số 2. Câu hỏi: (1) print(a[1][2]) in ra số nào? (2) len(a) và len(a[0]) bằng bao nhiêu? (3) Bảng có bao nhiêu ô? (4) Vì sao trước khi truy cập a[i][j] nên kiểm tra len(a[i])?

c) Sản phẩm

Đáp án: (1) a[1][2] là 7, vì hàng 1 (hàng thứ hai) và cột 2 (cột thứ ba) có giá trị 7. (2) len(a) là 2 (số hàng); len(a[0]) là 3 (số cột). (3) Bảng có 2 × 3 = 6 ô. (4) Các hàng có thể dài khác nhau nếu tạo sai, nên kiểm tra độ dài hàng giúp tránh truy cập vượt giới hạn. Kiến thức HS rút ra: a[i][j] là phần tử ở hàng i, cột j, chỉ số từ 0; mảng hai chiều là danh sách các hàng.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chia lớp thành 4 nhóm, phát khăn trải bàn và Phiếu học tập số 2. GV nêu nhiệm vụ: mỗi nhóm trả lời một câu hỏi, sau đó ghi lên ô tương ứng trên khăn trải bàn.

    Học sinh

    Các nhóm nhận câu hỏi, thảo luận và ghi đáp án nháp.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn nhóm dùng máy tính chạy print(a[1][2]), print(len(a)), print(len(a[0])) để kiểm tra. GV nhắc: Hàng đầu tiên có chỉ số là bao nhiêu?

    Học sinh

    HS nhập lệnh, so sánh kết quả với dự đoán và hoàn thiện đáp án trên khăn trải bàn.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV cho các nhóm đi xem khăn trải bàn của nhau. Sau đó mời đại diện nhóm 4 trình bày lí do cần kiểm tra len(a[i]).

    Học sinh

    Đại diện nhóm trình bày đáp án. Dự kiến HS trả lời: Số hàng là len(a), còn số cột là len(a[0]); tổng số ô là 2 × 3 = 6, không phải 2.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: a[i][j] truy cập hàng i rồi cột j; số hàng là len(a), số cột là len(a[i]); tổng số ô là số hàng nhân số cột. GV nhấn mạnh: không nhầm số hàng với tổng số ô.

    Học sinh

    HS sửa lại đáp án trong vở và ghi kiến thức chốt.

Hoạt động 2.3: Hình thành kiến thức mới · 15 phút

Duyệt mảng hai chiều và tính tổng

a) Mục tiêu

Vận dụng được hai vòng lặp lồng nhau để duyệt từng hàng rồi từng phần tử, tính tổng toàn bảng và kiểm tra kết quả.

b) Nội dung

HS đọc chương trình mẫu bên dưới, dự đoán kết quả, sau đó chạy thử và thực hành trên học liệu NeoEdu (bài tập tương tác về duyệt bảng). Chương trình mẫu: a=[[2,4,1],[3,5,7]]; s=0; for row in a: for x in row: s+=x; print(s). Câu hỏi: (1) Tổng hàng đầu là bao nhiêu, tổng hàng sau là bao nhiêu? (2) Vì sao có hai vòng lặp? (3) Có nhầm lẫn nào giữa số hàng và tổng số ô không?

c) Sản phẩm

Kết quả: tổng hàng đầu là 7 (2+4+1); tổng hàng sau là 15 (3+5+7); tổng toàn bảng là 22; chương trình in ra 22. Kiến thức HS rút ra: vòng lặp ngoài duyệt từng hàng, vòng lặp trong duyệt từng phần tử của hàng đó; số hàng là 2 nhưng tổng số ô là 6, không được nhầm.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu chương trình mẫu và nêu ba câu hỏi. GV yêu cầu HS dự đoán kết quả trước khi chạy. Sau đó GV hướng dẫn HS mở trang bài học NeoEdu để làm bài tập tương tác về duyệt bảng.

    Học sinh

    HS ghi dự đoán, sau đó nhập chương trình vào máy và chạy thử.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh lớp, kiểm tra việc HS dùng đúng thụt lề trong vòng lặp. Nếu HS chạy sai, GV hỏi: Vòng lặp ngoài đang lấy ra gì mỗi lần lặp?

    Học sinh

    HS chạy chương trình, theo dõi giá trị của s sau từng lần cộng và làm bài tương tác trên NeoEdu. Dự kiến HS trả lời: Vòng lặp ngoài lấy ra từng hàng, vòng lặp trong lấy từng phần tử.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 HS trình bày kết quả và cách tính tổng hai hàng, đồng thời hỏi: Nếu đếm số hàng thay cho số ô thì kết quả sẽ thế nào?

    Học sinh

    HS 1 trình bày: hàng đầu 7, hàng sau 15, tổng 22. HS 2 trả lời: Nếu nhầm số hàng là 2 với tổng số ô thì sẽ hiểu sai số phần tử cần cộng; số ô đúng là 6.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt phương pháp: Xác định hàng và cột, khởi tạo tổng s=0, duyệt từng hàng rồi từng ô, in và đối chiếu kết quả với tính tay. GV nhắc HS kiểm tra kết quả bằng cách tính tay với dữ liệu nhỏ.

    Học sinh

    HS ghi các bước vào vở và đánh dấu vào phiếu bài tập tương tác.

Hoạt động 3: Luyện tập · 20 phút

Trạm luyện tập: đọc kết quả, sửa lỗi và viết chương trình

a) Mục tiêu

Vận dụng kiến thức về chỉ số, độ dài, duyệt bảng và lỗi tham chiếu để giải các bài tập; tự đánh giá lập luận và mã lệnh của mình theo thang điểm.

b) Nội dung

Lớp chia 4 nhóm, mỗi nhóm làm một trạm trong 5 phút rồi luân chuyển. Trạm 1 (bài 2, 3, 4): đọc chương trình và cho biết kết quả in ra. Trạm 2 (bài 5, 6, 7): trắc nghiệm, đúng/sai và sắp xếp các bước giải. Trạm 3 (bài 8): tính tổng bảng 2 × 3 mẫu bằng hai vòng lặp, viết chương trình hoàn chỉnh và kiểm tra theo dữ liệu mẫu. Trạm 4 (bài 9): giải thích lỗi của [[0]*3]*2 và cách tạo hàng độc lập.

c) Sản phẩm

Đề và đáp án các trạm:

  • Bài 2: print(a[1][2]) với a=[[2,4,1],[3,5,7]] in ra 7, vì hàng 1 cột 2 có giá trị 7.
  • Bài 3: print(len(a)*len(a[0])) in ra 6, vì 2 hàng × 3 cột = 6 ô.
  • Bài 4: a=[4,8,6]; print(a[0]+a[2]) in ra 10.
  • Bài 5: Đáp án A, a[i][j] là hàng i, cột j.
  • Bài 6: Sai, các hàng của danh sách lồng nhau có thể dài khác nhau.
  • Bài 7: Thứ tự đúng: Xác định hàng và cột → Khởi tạo tổng → Duyệt từng hàng rồi ô → In và đối chiếu.
  • Bài 8: Chương trình a=[[2,4,1],[3,5,7]]; s=0; for row in a: for x in row: s+=x; print(s). Kết quả in 22 (tổng hàng đầu 7, hàng sau 15). Thang điểm tham khảo: dữ liệu 2×3 và khởi tạo tổng 0,2 điểm; hai vòng lặp 0,4 điểm; tổng hàng đầu 7, hàng sau 15, tổng 22 0,25 điểm; chỉ số và giới hạn vòng lặp 0,15 điểm. Chấp nhận phương án tương đương đúng, có lập luận.
  • Bài 9: Hai hàng cùng tham chiếu một danh sách; gán a[0][0]=9 làm cả a[1][0] thành 9. Tạo hàng độc lập: [[0 for j in range(3)] for i in range(2)]. Thang điểm: nhận hai hàng chung đối tượng 0,4 điểm; ca sửa a[0][0] làm a[1][0] đổi theo 0,3 điểm; tạo hàng độc lập 0,3 điểm.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV phát thẻ đề cho 4 trạm, nêu quy định: mỗi trạm 5 phút, ghi đáp án vào phiếu nhóm, khi chuyển trạm phải kiểm tra lại đáp án của nhóm trước.

    Học sinh

    Các nhóm nhận thẻ đề tại trạm đầu tiên, đọc yêu cầu và phân công người ghi, người chạy thử, người đọc lại lập luận.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh các trạm, gợi ý khi nhóm bế tắc: Với bài 9, hãy kiểm tra xem các hàng có phải là hai đối tượng riêng biệt không. Với bài 8, kiểm tra tổng hàng đầu trước rồi mới tính cả bảng.

    Học sinh

    HS giải bài, chạy thử chương trình khi cần và ghi đáp án. Dự kiến HS trả lời bài 9: Hai hàng cùng trỏ đến một danh sách nên thay đổi một ô sẽ ảnh hưởng đến hàng kia.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời mỗi nhóm báo cáo đáp án của một trạm bất kì và yêu cầu nhóm khác nhận xét. GV đối chiếu với thang điểm của bài 8 và bài 9.

    Học sinh

    Các nhóm báo cáo và nhận xét lẫn nhau. Dự kiến HS nhận xét: Nhóm đã viết đúng hai vòng lặp nhưng quên khởi tạo s=0, nên cần bổ sung.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: Kiểm tra chỉ số và độ dài hàng trước khi truy cập; tạo mảng hai chiều bằng list comprehension để các hàng độc lập; tự đánh giá lập luận theo thang điểm. GV nêu các lỗi phổ biến trong bài để HS rút kinh nghiệm.

    Học sinh

    HS ghi lỗi hay gặp và cách sửa vào vở.

Hoạt động 4: Vận dụng · 15 phút

Tính điểm bảng điểm lớp

a) Mục tiêu

Vận dụng mảng hai chiều vào bài toán thực tế: tính tổng điểm từng bạn và tổng điểm cả lớp; giải thích kết quả và kiểm tra điều kiện áp dụng (độ dài các hàng).

b) Nội dung

Cho bảng điểm a=[[8,7,9,6],[6,8,7,9],[9,10,8,7]] gồm 3 bạn, mỗi bạn 4 môn. Yêu cầu: (1) Viết chương trình tính tổng điểm của từng bạn bằng cách duyệt theo hàng. (2) Tính tổng điểm toàn bảng bằng hai vòng lặp. (3) Thêm bước kiểm tra mọi hàng có cùng độ dài 4 trước khi tính, in thông báo nếu có hàng sai độ dài. (4) Giải thích kết quả và nêu một tình huống dữ liệu làm chương trình sai.

c) Sản phẩm

Kết quả: tổng điểm bạn 1 là 30; bạn 2 là 30; bạn 3 là 34; tổng toàn bảng là 94. Kiến thức HS rút ra: duyệt theo hàng cho tổng từng bạn; duyệt cả hai vòng lặp cho tổng bảng; nếu một hàng dài khác thì chương trình có thể truy cập ô không tồn tại hoặc tính sai, nên cần kiểm tra len(a[i]) trước khi xử lí.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu bảng điểm và yêu cầu bốn nhiệm vụ. GV nhắc HS dùng lại cấu trúc hai vòng lặp và kiểm tra độ dài hàng đã học.

    Học sinh

    HS đọc đề, phân công viết mã và kiểm tra trong nhóm 2 hoặc 3 người.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hỗ trợ nhóm gặp khó khăn; gợi ý: Kiểm tra độ dài hàng bằng len(a[i]) trước khi cộng dồn; thử thay một hàng bằng danh sách có 3 phần tử để xem chương trình xử lí thế nào.

    Học sinh

    HS viết chương trình, chạy thử và ghi kết quả. Dự kiến HS trả lời: Tổng từng bạn là 30, 30, 34; tổng cả lớp là 94.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 1 nhóm trình bày mã và kết quả, hỏi: Vì sao cần kiểm tra len(a[i]) trước khi tính tổng?

    Học sinh

    Nhóm báo cáo. Dự kiến HS trả lời: Nếu một hàng thiếu phần tử, phép truy cập có thể lỗi hoặc tổng bị sai, nên cần kiểm tra trước.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: Mảng hai chiều phù hợp để lưu bảng dữ liệu có hàng và cột; duyệt theo hàng giúp tính tổng từng đối tượng; kiểm tra điều kiện trước khi xử lí giúp chương trình đúng. GV giao bài về nhà.

    Học sinh

    HS ghi nhận xét và hoàn thiện mã trong vở.

Phiếu học tập

Phiếu học tập số 1

Cho mảng a=[4,8,6] (chỉ số từ 0).

  • Dự đoán và ghi kết quả của lệnh print(a[0]): ...
  • Dự đoán và ghi kết quả của lệnh print(a[2]): ...
  • Dự đoán và ghi kết quả của lệnh print(len(a)): ...
  • Dự đoán và ghi kết quả của lệnh print(a[0]+a[2]): ...
  • Chạy thử trên máy và đối chiếu với dự đoán: đúng / sai, ghi lại lí do nếu sai.
  • Vì sao a[3] gây lỗi?

Phiếu học tập số 2

Cho bảng a=[[2,4,1],[3,5,7]] (hai hàng, ba cột, chỉ số từ 0).

  • Kết quả của print(a[1][2]) là: ...
  • len(a) bằng ... (số hàng); len(a[0]) bằng ... (số cột).
  • Bảng có ... ô.
  • Vì sao cần kiểm tra len(a[i]) trước khi truy cập a[i][j]?
  • Điền thông tin vào bảng:
    • Hàng 0: các phần tử ...; tổng ...
    • Hàng 1: các phần tử ...; tổng ...
    • Tổng toàn bảng: ...

Hướng dẫn về nhà

  • Viết chương trình Python tính tổng điểm của từng bạn trong bảng a=[[8,7,9,6],[6,8,7,9],[9,10,8,7]] và tổng điểm cả bảng; kết quả cần là 30, 30, 34 và 94. Nộp kèm ảnh chụp kết quả chạy chương trình.
  • Thêm vào chương trình trên bước kiểm tra tất cả các hàng có cùng độ dài 4 trước khi tính; nếu có hàng sai độ dài thì in thông báo và không tính.
  • Đếm số điểm lớn hơn 7 trong toàn bảng bằng hai vòng lặp. Kết quả đúng là 7. Ghi lại các bước làm và lí do chọn cách duyệt này.
  • Ôn lại khái niệm mảng một chiều, chỉ số từ 0, cách truy cập a[i][j] và cách tạo mảng hai chiều bằng [[0 for j in range(3)] for i in range(2)]. Có thể luyện thêm bài tương tác tại neoedu.vn/learn/11/informatics/bai-17-khmt-du-lieu-mang-mot-chieu-va-hai-chieu.

Giáo án do NeoEdu soạn với sự hỗ trợ của AI, dựa trên nội dung bài học trên Học liệu. Thầy cô nên đọc lại và điều chỉnh cho phù hợp với học sinh của mình; bản Word để sửa trực tiếp.