Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn: .../.../...
Ngày dạy: .../.../...
CHỦ ĐỀ 6: KĨ THUẬT LẬP TRÌNH
BÀI 17: DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
Học xong bài này, HS đạt các yêu cầu sau:
Năng lực chung:
Năng lực riêng:
III. TIẾN TRÌNH DẠY HỌC
Bước 1: GV chuyển giao nhiệm vụ:
- GV dẫn dắt, đặt vấn đề cho HS: Em đã biết thiết lập cấu trúc dữ liệu đóng vai trò quan trọng khi giải quyết trong các bài toán thực tế trên máy tính.
- GV đặt câu hỏi yêu cầu HS trả lời: Trong các bài toán thực tế sau em sẽ thiết lập cấu trúc dữ liệu như thế nào?
+ Lập danh sách họ tên các bạn lớp em. Sau đó có thể tìm kiếm, sắp xếp và thực hiện các bài toán quản lí khác.
+ Giả sử lớp em cần khảo sát ý kiến về một vấn đề nào đó. Mỗi học sinh cần có đánh giá theo 4 mức, kí hiệu lần lượt là Đồng ý (2), Không phản đối (1); Không ý kiến (0); Phản đối (−1). Em sẽ tổ chức dữ liệu khảo sát như thế nào để có thể dễ dàng cập nhật và tính toán theo dữ liệu khảo sát.
+ Em được giao nhiệm vụ thiết lập và lưu trữ một danh sách các địa điểm là nơi các bạn trong lớp sẽ thường xuyên đến tham quan và trải nghiệm thực tế. Mỗi địa điểm như vậy cần nhiều thông tin, những thông tin quan trọng nhất là toạ độ (x, y) của thông tin đó trên bản đồ. Em sẽ dùng cấu trúc dữ liệu gì để mô tả danh sách các địa điểm này?
Bước 2: HS thực hiện nhiệm vụ học tập: HS lắng nghe, suy nghĩ câu trả lời.
Bước 3: Báo cáo kết quả hoạt động, thảo luận:
- GV gọi đại diện một số HS trả lời.
- HS khác nhận xét, bổ sung.
Bước 4: Đánh giá kết quả thực hiện:
- GV nhận xét câu trả lời của HS. Trên cơ sở đó, GV dẫn dắt HS vào bài học mới: Bài 17: Dữ liệu mảng một chiều và hai chiều.
Hoạt động 1: Tìm hiểu cấu trúc dữ liệu mảng một chiều
HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN |
Bước 1: GV chuyển giao nhiệm vụ: - GV chia lớp thành nhóm 4 – 5 HS. - GV yêu cầu HS nghiên cứu SGK mục 1, thảo luận theo nhóm và trả lời câu hỏi theo Hoạt động 1 trang 81 SGK: + Thực hiện các thao tác sau, quan sát, trao đổi và thảo luận, từ đó nhận biết về cấu trúc dữ liệu mảng một chiều trong Python. - GV yêu cầu mỗi nhóm sẽ đưa một nhiệm vụ triển khai thực hiện tổ chức dữ liệu mảng. Ví dụ: + Dữ liệu mảng là một dãy các số nguyên. + Dữ liệu mảng là dãy các số thực. + Dữ liệu mảng là dãy các xâu kí tự. - GV đưa ra nhiệm vụ yêu cầu các nhóm thực hiện: + Thiết lập dữ liệu (list) để lưu trữ dữ liệu mảng đã có. + Thực hiện các thao tác: truy cập phần tử bằng chỉ số, xóa 1 phần tử, bổ sung 1 phần tử vào danh sách, duyệt các phần tử theo chỉ số. - Sau khi các nhóm trình bày câu trả lời, GV chốt kiến thức về cấu trúc dữ liệu mảng một chiều. - GV yêu cầu HS trả lời Câu hỏi củng cố kiến thức trang 82 SGK: + Câu 1. Sử dụng hàm sum() tính tổng các số của một dãy, hãy viết câu lệnh tính giá trị trung bình của dãy số A cho trước. + Câu 2: Có thể duyệt các phần tử của mảng theo chiều ngược lại, từ cuối về đầu, được không? Bước 2: HS thực hiện nhiệm vụ học tập: - HS trả lời câu hỏi trong Hoạt động 1 trang 81 SGK. - HS suy nghĩ, hoàn thành Câu hỏi củng cố kiến thức. - GV hỗ trợ, quan sát. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - Đại diện HS xung phong trình bày kết quả. *Câu hỏi củng cố kiến thức + Câu 1: Câu lệnh tính giá trị trung bình của dãy số: mean = sum (A)/len(A) + Câu 2: Lệnh duyệt mảng theo chiều ngược lại có thể như sau: Cách 1: for i in range (len(A) -1, -1, -1): <các lệnh với A[i]> Cách 2: for x in A [ : : -1]: <các lệnh với x> - HS còn lại lắng nghe, nhận xét và bổ sung (nếu có). Bước 4: Đánh giá kết quả thực hiện: - GV nêu nhận xét, chuyển sang hoạt động tiếp theo. | 1. Cấu trúc dữ liệu bảng một chiều - Trong Tin học, dữ liệu bảng một chiều, thường được gọi là cấu trúc dữ liệu tuyến tính, là cấu trúc dữ liệu bao gồm một dãy các phần tử dữ liệu có cùng kiểu. Các phần tử của mảng sẽ được truy cập theo chỉ số, cho phép các thao tác đơn giản như truy cập và thay đổi giá trị. - Cấu trúc dữ liệu mảng một chiều trong Python có thể biểu diễn bằng kiểu dữ liệu danh sách (list) với chức năng truy cập dễ dàng từng phần tử theo chỉ số, truy cập theo vùng chỉ số. Toán tử in và lệnh for..in sẽ hỗ trợ duyệt từng phần tử của mảng.
|
Hoạt động 2: Tìm hiểu cấu trúc dữ liệu mảng hai chiều
- Giúp HS biết được list có thể chứa phần tử cũng là list và cách khai thác, truy cập các phần tử của list bên trong.
- Giúp HS nắm được mô hình mảng hai chiều (hay còn gọi là ma trận) và cách biểu diễn trong Python.
HOẠT ĐỘNG CỦA GV VÀ HS | SẢN PHẨM DỰ KIẾN |
Nhiệm vụ 1. Mô hình list trong list của Python Bước 1: GV chuyển giao nhiệm vụ: - GV giới thiệu một bộ dữ liệu có chứa list, ví dụ: DS_diem = [["Quang", 7.5], ["Hà",8.0], ["Bình",9.5]] - GV yêu cầu HS nghiên cứu mục 2, thảo luận theo nhóm đã chia để tìm hiểu về bộ dữ liệu này. - GV chú ý đến một số đặc biệt sau khi khai thác trên dữ liệu list trong list, ví dụ với dữ liệu điểm HS trên. + Ví dụ muốn biết điểm của bạn Hà thì thực hiện lệnh sau: DS_diem [1][1] + Để duyệt và in danh sách HS và điểm số bên cạnh thì có thể thực hiện theo hai cách sau: Cách 1. for ds in DS_diem; print (ds[0], ds[1]) Cách 2 for hs, diem in DS_diem: print (DS, diem) - Trên cơ sở kiến thức vừa nêu, GV yêu cầu HS khái quát về nội dung mô hình danh sách trong danh sách của Python. - GV yêu cầu HS trả lời Câu hỏi củng cố kiến thức trang 83 SGK: + Câu 1: Thiết lập mảng bao gồm dữ liệu là tọa độ các điểm trên mặt phẳng, mỗi điểm p được cho bởi hai tọa độ (px, py). + Câu 2: Thiết lập mảng bao gồm dãy các thông tin là danh sách học sinh và thông tin ba điểm thi của học sinh tương ứng các bài thi số 1, 2, 3. Viết đoạn lệnh nhập bộ dữ liệu trên và chương trình in ra danh sách học sinh cùng điểm trung bình của các bài thi. Bước 2: HS thực hiện nhiệm vụ học tập: - HS trả lời câu hỏi trong Hoạt động 2 trang 82 SGK. - HS suy nghĩ, hoàn thành Câu hỏi củng cố kiến thức. - GV hỗ trợ, quan sát. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - Đại diện HS xung phong trình bày kết quả. *Câu hỏi củng cố kiến thức + Câu 1: Ví dụ có thể thiết lập dãy tọa độ ba điểm như sau: A = [[0,1],[1,0],[1,1]] Tổng quát dãy tọa độ các điểm có dạng như sau: A = [[p2x, p2y], [p2x, p2y],…,[pnx, pny]] + Câu 2: Đoạn chương trình nhập từ bàn phím bộ dữ liệu tên HS và ba điểm số cho mỗi HS, sau đó tính điểm trung bình như sau: 1 n = int(input("Nhập số học sinh: ")) 2 DS_diem = [] 3 for i in range (n): 4 hs = input("Nhập tên học sinh thứ "+str(i+1) + ": ") 5 diem = [float(x) for x in input("Nhập dãy 3 điểm số: ").split()] 6 DS_diem.append([hs]+diem) 7 8 print("Điểm trung bình của học sinh là") 9 for d in DS_diem: 10 ten = d[0] 11 diem = d[1:] 12 print(hs, sum(diem)/len(diem)) - HS còn lại lắng nghe, nhận xét và bổ sung (nếu có). Bước 4: Đánh giá kết quả thực hiện: - GV nêu nhận xét, chuyển sang hoạt động tiếp theo. | 2. Cấu trúc dữ liệu mảng hai chiều - Python hỗ trợ mô hình dữ liệu danh sách, tức là mỗi phần tử của danh sách là một đối tượng dạng danh sách khác. |
Nhiệm vụ 2. Mô hình mảng hai chiều của Python Bước 1: GV chuyển giao nhiệm vụ: - GV đưa ra mô hình ma trận (ma trận vuông hoặc chữ nhật bất kì) và yêu cầu các nhóm nghiên cứu mục 2, tìm hiểu nhận biết và thiết lập cách tổ chức dữ liệu trên Python. - GV yêu cầu HS thảo luận theo nhóm và khai thác dữ liệu mảng hai chiều trong Python. - GV chú ý: + Cách truy cập 1 phần tử tại vị trí hàng i, cột j. + Cách lấy ra 1 hàng i của ma trận. + Cách lấy ra 1 cột j của ma trận. + Cách in ra màn hình toàn bộ ma trận. - Trên cơ sở kiến thức vừa nêu, GV yêu cầu HS khái quát về nội dung cấu trúc dữ liệu mảng hai chiều. - GV yêu cầu HS trả lời Câu hỏi củng cố kiến thức trang 84 SGK: + Câu 1: Câu lệnh sau sẽ tạo dữ liệu trong loại gì? temp = [1,2,3,4] A = [temp,temp] + Câu 2: Nếu A là bảng (ma trận) kích thước m x n thì đoạn chương trình sau sẽ in ra thông tin gì trên màn hình? >>> for i in range(m): for j in range(n): print(A[i][j], end = " ") print() Bước 2: HS thực hiện nhiệm vụ học tập: - HS đọc thông tin SGK, thảo luận và trả lời câu hỏi GV đưa ra. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - HS xung phong trình bày kết quả. *Câu hỏi củng cố kiến thức trang 84 SGK: + Câu 1: Câu lệnh tạo dữ liệu là ma trận kích thước 2 × 4, trong đó các hàng có thông tin giống nhau. + Câu 2: Chương trình này in ra ma trận vuông bậc n. - HS khác nhận xét, bổ sung cho bạn. Bước 4: Đánh giá kết quả thực hiện: - GV tổng kết lại kiến thức trọng tâm và chuyển sang nội dung luyện tập. | 2. Cấu trúc dữ liệu mảng hai chiều - Trong Python cấu trúc dữ liệu hai chiều có thể được biểu diễn bằng mô hình danh sách trong danh sách. Có thể truy cập từng phần tử và duyệt cấu trúc dữ liệu hai chiều bằng hai lệnh for lồng nhau. |
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác