Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn: .../.../...
Ngày dạy: .../.../...
BÀI 18: THỰC HÀNH 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: Trong bài học trước, em đã biết cấu trúc dữ liệu mảng có thể giúp giải quyết tốt các bài toán quản lí danh sách trong thực tế. Việc quản lí danh sách điểm kiểm tra của một môn học là quản lí danh sách học sinh và mỗi học sinh có một danh sách điểm kiểm tra. Bảng điểm môn học cả lớp được coi là danh sách của danh sách điểm của các học sinh.
- GV đặt câu hỏi yêu cầu HS trả lời: Theo em, người ra dùng mảng một chiều hay hai chiều để quản lí danh sách điểm một môn học của mỗi học sinh? để quản lí điểm một môn học của cả lớp?
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 18: Thực hành dữ liệu mảng một chiều và hai chiều.
Hoạt động 1: Thực hiện nhiệm vụ 1
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 các nhóm 2 – 5 HS. - GV chiếu nhiệm vụ học tập: Viết chương trình quản lí điểm kiểm tra một môn học của một học sinh trong một học kì. Chương trình được thực hiện như sau: + Nhập điểm: yêu cầu người dùng nhập các đầu điểm kiểm tra (từ hai đầu điểm trở lên). + Thống kê điểm: chương trình duyệt qua các đầu điểm rồi tính và in ra điểm trung bình kiểm tra, điểm thấp nhất, cao nhất. - GV yêu cầu HS thực hiện nhiệm vụ theo nhóm, thảo luận và viết mã nguồn rồi chạy và kiểm tra thử chương trình. - GV lưu ý: Điểm quan trọng của mảng trong Python là phần tử đầu tiên của mảng ứng với chỉ số 0. - Sau khi HS hoàn thành chương trình, GV đưa ra một vài mẫu dữ liệu cụ thể và yêu cầu các nhóm kiểm thử, so sánh kết quả thu được với giá trị dự kiến. - GV yêu cầu HS so sánh phân tích điểm hay hơn hoặc kém hơn của mã nguồn tự viết với mã nguồn mẫu trong SGK. - HS hoàn thiện nội dung nhiệm vụ 1. Bước 2: HS thực hiện nhiệm vụ học tập: - HS lắng nghe GV hướng dẫn, thực hiện nhiệm vụ. - GV quan sát và trợ giúp HS. Bước 3: Báo cáo kết quả hoạt động, thảo luận: - HS so sánh và sửa lại chương trình.. - 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 nhận xét, chuyển sang hoạt động tiếp theo. | Nhiệm vụ 1 - Phân tích: Nhiệm vụ này có thể được thực hiện bằng cách sử dụng mảng một chiều, cụ thể là sử dụng danh sách trong Python. - Chương trình quản lí điểm kiểm tra một môn học của một học sinh như sau: 1 mark = [] 2 line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ") 3 mark = [float(x) for x in line.split()] 4 total = 0 5 Min = marks[0] 6 Max = mark[0] 7 for m in marks: 8 total = total + m 9 if Min > m: 10 Min = m 11 if Max < m: 12 Max = m 13 print("Điểm trung bình: ", total/len(marks)) 14 print("Điểm cao nhất: ", Max) 15 print("Điểm thấp nhất: ", Min) |
Hoạt động 2: Thực hiện nhiệm vụ 2
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 chiếu nhiệm vụ học tập: Viết chương trình quản lí điểm kiểm tra một môn học trong một học kì của tất cả học sinh trong lớp. Chương trình được thực hiện như sau: + Nhập dữ liệu: yêu cầu người dùng nhập số học sinh trong lớp, sau đó với mỗi học sinh hỏi người dùng nhập tên học sinh rồi nhập các đầu điểm của học sinh đó. + Thống kê dữ liệu: chương trình in ra danh sách các học sinh với điểm trung bình cao nhất và điểm kiểm tra thấp nhất trong tất cả các đầu điểm. - GV lưu ý với HS phương pháp thông thường để duyệt qua mảng hai chiều là dùng hai vòng lặp lồng nhau. - HS hoàn thiện nội dung nhiệm vụ 2. Bước 2: HS thực hiện nhiệm vụ học tập: - HS lắng nghe GV hướng dẫn thực hiện nhiệm vụ. 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ả. - 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. | Nhiệm vụ 2 - Chương trình quản lí điểm kiểm tra một môn học trong một học kì của tất cả học sinh trong lớp (Đính kèm phía dưới). |
1 names = [] 2 marks_all = [] 3 n = int(input("Hãy nhập số lượng học sinh: ")) 4 5 for i in range(n): 6 name = input("Tên học sinh thứ "+str(i+1) + ": ") 7 name.append(name) 8 line = input("Điểm kiểm tra của học sinh thứ "+str(i+1)+": ") 9 marks = [float(x) for x in line.split()] 10 marks_all.append(marks) 11 12 #Định nghĩa các biến để thống kê 13 max_avg = 0 14 index_max_avg = 0 15 Min = marks_all[0][0] 16 17 #Duyệt qua mảng 2 chiều 18 for i in range(n): 19 total = 0 20 for i in range(len(marks_all[i])): 21 total = total + marks_all[i][j] 22 if Min > marks_all [i][j]: 23 Max = marks_all [i][j] 24 avg = total/len(marks_all[i]) 25 print("Điểm trung bình của", name[i],":",avg) 26 if max_avg < avg: 27 max_avg = avg 28 index_max_avg = i 29 30 #In ra kết quả 31 print(names[index_max_avg], "đạt điểm trung bình", max avg, "cao nhất lớp.") 32 print("Điểm thấp nhất:",Min) |
Bước 1: GV chuyển giao nhiệm vụ:
- GV tổ chức cho HS làm Bài 1, 2 phần Luyện tập trang 88 SGK:
Bài 1. Chỉnh sửa lại chương trình của Nhiệm vụ 1 để bổ sung chức năng:
Bài 2. Chỉnh sửa lại chương trình để người dùng có thể:
Bước 2: HS thực hiện nhiệm vụ học tập:
- HS suy nghĩ, hoàn thành các bài tập GV yêu cầu.
- GV quan sát và hỗ trợ, hướng dẫn.
Bước 3: Báo cáo kết quả hoạt động, thảo luận:
- HS thực hiện các thao tác.
Bài 1.
Chương trình sửa đổi như sau:
1 line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ")
2 marks = [float(x) for x in line.split(n)]
3
4 total = 0
5 Min = marks[0]
6 Max = marks[0]
7
8 for m in marks:
9 total = total + m
10 if Min > m:
11 Min = m
12 if Max < m:
13 Max = m
14
15 print("Điểm trung bình: ", total/len(marks))
16 print("Điểm cao nhất: ", Max)
17 print("Điểm thấp nhất: ", Min)
18 print("Điểm đầu tiên: ", marks[0])
19 print("Điểm cuối cùng: ", marks[len(marks)-1)
20
21 n = int(input("Tra cứu đầu điểm thứ n với n = "))
22 while n<1 or n > len(marks):
23 print("n phải lớn hơn 0 và nhỏ hơn tổng số đầu điểm")
24 n = int(input("Tra cứu đầu điểm thứ n với n = "))
25 print("Điểm thứ ", n, ": ", marks[n-1])
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