II. Các thao tác trên List trong Python
2. Xác định bài toán
Y/cầu hs xác định dữ liệu vào/ra của bài tốn?
Tìm hiểu chương trình
* Bước 2: Thực hiện nhiệm vụ:
+ HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi
+ GV: quan sát và trợ giúp các cặp.
* Bước 3: Báo cáo, thảo luận:
Bài 3: Nhập vào số nguyên dương n <= 1018, chuyển đổi số nguyên dương n sang hệ nhị phân có sử dụng mảng n=int(input("Nhập n = ")) a=[] while n//2!=0: a.append(n%2) n=n//2 a.append(n%2) print("Dãy nhị phân là:")
+ HS: Lắng nghe, ghi chú, một HS phát bi ểu lại các tính chất.
+ Các nhóm nhận xét, bổ sung cho nhau.
* Bước 4: Kết luận, nhận định: GV chín h xác hóa và gọi 1 học sinh nhắc lại kiến thức
for x in range(len(a)-1,-1,-1): print(a[x],end='')
Bài 4: Viết chương trình nhập số nguyên dương n, số nguyên dương v (n <= 105, v ≠ 0) và dãy các số nguyên A = {a1, a2, …, an}. Cho biết v có xuất hiện trong dãy A khơng? Nếu có cho biết vị trí xuất hiện đầu tiên của v trong A n=int(input("Nhập n = ")) v=int(input("Nhập v = ")) print("Nhập dãy a gồm",n,"số:") a=[] for x in range(0,n): a.append(int(input())) i=0 while i <len(a): if a[i]==v: print("YES","vị trí",i+1) break else: i=i+1 if i>len(a)-1: print("NO")
Hoạt động 3: Tìm hiểu Chạy CT bài 5 a) Mục tiêu: Chạy CT
b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. V.
c) Sản phẩm: HS hồn thành tìm hiểu kiến thức
d) Tổ chức thực hiện:
Hoạt động của GV và HS Sản phẩm dự kiến * Bước 1: Chuyển giao nhiệm vụ:
Yêu cầu hs tự nhập dữ liệu với CT có s ẵn.
Xác định bài toán.
- Y/cầu hs xác I/O bài toán?
- Yêu cầu hs sửa lại CT theo gợi ý đã n êu
* Bước 2: Thực hiện nhiệm vụ:
Bài 5: Cho dãy A = {a0, a1, …, an}và số nguyên i (n <= 105, 0 ≤ i ≤ n). Tìm cách xóa các phần tử ai sao cho dãy số sau khi xóa các phần tử cịn lại vẫn giữ nguyên thứ tự
n=int(input("Nhập n = ")) i=int(input("Nhập i = "))
+ HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi
+ GV: quan sát và trợ giúp các cặp.
* Bước 3: Báo cáo, thảo luận:
+ HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất.
+ Các nhóm nhận xét, bổ sung cho nhau .
* Bước 4: Kết luận, nhận định: GV c hính xác hóa và gọi 1 học sinh nhắc lại kiến thức a=[] for x in range(0,n+1): a.append(float(input())) # cách 1 b=[] for x in range(len(a)): if a[x]!=a[i]: b.append(a[x]) print(b) Cách 2: n=int(input("Nhập n = ")) i=int(input("Nhập i = "))
print("Nhập dãy a[0..n] gồm",n+1,"số:") a=[]
for x in range(0,n+1):
a.append(float(input())) # cách 2
a.pop(i) # lấy p.tử a[i] ra khỏi list rồi xóa nó tại vị trí i
print(a)
Bài 6: Cho dãy số ngun A = {a0, a1, …, an}và chỉ số i, giá trị v (n <= 105, 0 ≤ i ≤ n). Tìm cách chèn phần tử v vào trước ai sao cho vẫn giữ nguyên thứ tự các phần tử còn lại n=int(input("Nhập n = "))
i=int(input("Nhập chỉ số i = ")) v=int(input("Nhập v = "))
print("Nhập dãy a[0..n] gồm",n+1,"số:") a=[]
for x in range(0,n+1):
a.append(int(input()))
a.insert(i,v) # chèn v vào vị trí i trong danh sách a
print(a)
C. HOẠT ĐỘNG LUYỆN TẬP
a. Mục tiêu: Củng cố, luyện tập kiến thức vừa học.
b. Nội dung: HS đọc SGK làm các bài tập.
d. Tổ chức thực hiện:
Bài 7:
Cho mảng A gồm các số nguyên a0, a1, …, an (n <= 1000). Hãy sắp xếp lại mảng A sao cho a0 ≤ a1 ≤ … ≤ an
D. HOẠT ĐỘNG VẬN DỤNG
a. Mục tiêu: Vận dụng các kiến thức vừa học quyết các vấn đề học tập và thực tiễn. .
b. Nội dung: HS sử dụng SGK và vận dụng kiến thức để trả lời câu hỏi.
c. Sản phẩm: HS vận dụng các kiến thức vào giải quyết các nhiệm vụ đặt ra.
d. Tổ chức thực hiện:
GV chia lớp thành nhiều nhóm và giao các nhiệm vụ: thảo luận trả lời các câu hỏi và bài tập vận dụng.
* HƯỚNG DẪN VỀ NHÀ:
- Ôn lại bài học hôm nay; - Chuẩn bị trước cho tiết sau.
* RÚT KINH NGHIỆM
..................................................................................................................................... .....................
Tên bài dạy KIỂU XÂU
Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết