GIÁO ÁN PYTHON THEO CÔNG VĂN 5512
vectorstock.com/10212105
Ths Nguyễn Thanh Tú eBook Collection
GIÁO ÁN PYTHON MÔN TIN HỌC 11 CẢ NĂM (4 ĐỀ KIỂM TRA CÓ MA TRẬN, ĐÁP ÁN) SOẠN THEO PHỤ LỤC 4 CÔNG VĂN 5512 NĂM HỌC 2021-2022 WORD VERSION | 2022 EDITION ORDER NOW / CHUYỂN GIAO QUA EMAIL TAILIEUCHUANTHAMKHAO@GMAIL.COM
Tài liệu chuẩn tham khảo Phát triển kênh bởi Ths Nguyễn Thanh Tú Đơn vị tài trợ / phát hành / chia sẻ học thuật : Nguyen Thanh Tu Group Hỗ trợ trực tuyến Fb www.facebook.com/DayKemQuyNhon Mobi/Zalo 0905779594
Tên bài dạy BÀI 1: CÁC KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 tiết I. MỤC TIÊU 1. Kiến thức - Biết và phân biệt được có 3 lớp ngôn ngữ lập trình là ngôn ngữ máy, hợp ngữ và ngôn ngữ bậc cao. - Biết vai trò của chương trình dịch. - Biết khái niệm biên dịch và thông dịch. - Biết một trong những nhiệm vụ quan trọng của chương trình dịch là phát hiện lỗi cú pháp của chương trình nguồn. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU 1. Giáo viên - Bài giảng, máy chiếu, máy chiếu vật thể. - Yêu cầu học sinh tập hợp kiến thức đã học ở lớp 10. Cụ thể là bài 4, bài 5 và bài 6 của SGK lớp 10 - Chuẩn bị các bài toán đơn giản, ngôn ngữ lập trình cụ thể VD như ngôn ngữ lập trình Python. 2. Học sinh - Sách giáo khoa, vở ghi - Kiến thức đã học ở lớp 10 III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầuHS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: Chiếu bài toán: Kết luận nghiệm của phương trình ax + b=0. + Hãy xác định Input, Output của bài toán trên? + Hãy xác định các bước để giải bài toán trên? - Hệ thống các bước này chúng ta gọi là thuật toán. + Các bước giải bài toán trên máy tính?
+ Làm sao để máy tính có thể hiểu và thực hiện các thuật toán đã lựa chọn giải bài toán? - Như vậy hoạt động để diễn đạt một thuật toán trên máy tính thông qua một ngôn ngữ lập trình được gọi là lập trình. Và để máy tính hiểu và thực hiện được câu lệnh đó thì NNLTBC cần phải được chuyển đổi về NN của máy để máy tính hiểu và thực hiện được. B.HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu Khái niệm lập trình – các ngôn ngữ lập trình a) Mục tiêu: Nắm được khái niệm lập trình – các ngôn ngữ lập trình 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. c) Sản phẩm: HS hoà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ụ: 1. Khái niệm lập trình + Nghiên cứu SGK và nêu khái niệm lập + Khái niệm: Lập trình là việc sử dụng trình cấu trúc dữ liệu và các lệnh của ngôn + Kết quả của hoạt động lập trình là gi? ngữ lập trình cụ thể để mô tả dữ liệu và + Có những loại ngôn ngữ lập trình nào? diễn đạt các thao tác của thuật toán. ? Phân biệt ngôn ngữ lập trình bậc cao với 2. Các loại ngôn ngữ lập trình các ngôn ngữ khác ở những nội dung nào? - Có nhiều loại ngôn ngữ lập trình, ? Tại sao người ta phải xây dựng ngôn ngữ được chia làm ba loại chính: NN máy, lập trình bậc cao? hợp ngữ và NNLT bậc cao. ? Kể tên một số ngôn ngữ lập trình bậc cao - Ngôn ngữ gần gũi với ngôn ngữ tự mà em biêt? nhiên. * Bước 2: Thực hiện nhiệm vụ: - Có tính độc lập cao + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi - Ít phụ thuộc vào các loại máy cụ thể +Vì: NN gần gũi vời NN tự nhiên, dễ + GV: quan sát và trợ giúp các cặp. đọc, dễ hiểu. NNLTBC nói chung * Bước 3: Báo cáo, thảo luận: +HS: Lắng nghe, ghi chú, một HS phát biểu không phụ thuộc các loại máy. lại các tính chất. - Một số NNLTBC: Python, + Các nhóm nhận xét, bổ sung cho nhau. C/C++, Java,… * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Hoạt động 2: Tìm hiểu Chương trình dịch a) Mục tiêu: Biết vai trò của chương trình dịch, hiểu được các giai đoạn của chương trình dịch; Phâm biệt được chương trình thông dịch và chương trình biên dịch. 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ: ? Theo các em chương trình được viết bằng ngôn ngữ bậc cao và chương trình được viết bằng ngôn ngữ máy khác nhau như thế nào ? ? Khi chương trình được đưa vào máy tính thì máy tính đã hiểu và thực hiện được chưa? ? Làm thế nào để chuyển một chương trình viết bằng ngôn ngữ bậc cao sang ngôn ngữ máy ? ? Nghiên cứu SGK cho biết khái niệm về chương trình dịch. ? Vì sao không lập trình trên ngôn ngữ máy để khỏi mất công chuyển đổi khi lập trình với ngôn ngữ bậc cao. ? Theo các em đối với chương trình dịch: chương trình nào là chương trình nguồn và chương trình đích. ? Cho nhận xét về tiến trình của hai ví dụ trên ? Vậy với mỗi cách dịch như vậy người ta gọi là gi? ? Hai cách dịch này có gì khác nhau. * 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: +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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Sản phẩm dự kiến 3. Chương trình dịch - CTD là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình có thể thực hiện được trên máy tính. - Chương trình viết bằng ngôn ngữ máy có thể nạp trực tiếp vào bộ nhớ và thực hiện ngay. - Chương trình viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ lập máy thì mới thực hiện được. - Ngôn ngữ bậc cao dễ viết, dễ hiểu. - Ngôn ngữ máy khó viết. - Chương trình nguồn là chương trình viết bằng ngôn ngữ lập trình bậc cao. - Chương trình đích là chương trình thực hiện chuyển đổi sang ngôn ngữ máy. - Tiến trình của thông dịch và biên dịch: +Thông dịch: B1: Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn; B2: Chuyển lệnh đó thành ngôn ngữ máy B3: Thực hiện các câu lệnh vừa được chuyển đổi. +Biên dịch: B1: Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn. B2: Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể
lưu trữ để sử dụng lại khi cần thiết
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Câu 1 Lập trình là: A. Sử dụng giải thuật để giải các bài toán. B. Dùng máy tính để giải các bài toán. C. Sử dụng cấu trúc dữ liệu và các câu lệnh của ngôn ngữ lập trình cụ thể để giải các bài toán trên máy tính. D. Sử dụng NN Python. Câu 2 Đối với một ngôn ngữ lâp trình có mấy kĩ thuật dịch? A. 1 loại (biên dịch) B. 2 loại (Thông dịch và biên dịch C. 2 loại (Thông dịch và hợp dịch) D. 2 loại (Hợp dịch và biên dịch) Câu 3: Trong một NNLT có các chức năng sau: A. Biên soạn. B. Lưu trữ. C. Tìm kiếm D. Có tất cả các chức năng trên. Câu 4: Chương trình viết bằng hợp ngữ có đặc điểm: A. Máy tính có thể hiểu được trực tiếp chương trình này. B. Kiểu dữ liệu và cách tổ chức dữ liệu đa dạng, thuận tiện cho việc nhập mô tả thuật toán. C. Diễn đạt gần với ngôn ngữ tự nhiên. D. Tốc độ thực hiện nhanh hơn so với chương trình được viết bằng 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 sau và ghi chép lại câu trả lời vào vở bài tập: 1. Mối liên hệ giữa thuật toán và cấu trúc dữ liệu? Ví dụ minh họa (có thể sử dụng ví dụ có sẵn) 2 .Việc tìm tòi, phát minh thuật toán thuộc giai đoạn nào?
3. Hãy cho biết đặc điểm của ngôn ngữ lập trình bậc cao * 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 BÀI 2: CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 tiết I. MỤC TIÊU 1. Kiến thức - Biết được các thành phần của ngôn ngữ lập trình PYTHON - Nắm được khái niệm hằng, biến, chú thích trong chương trình 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU 1. Giáo viên - Bài giảng, máy chiếu, máy chiếu vật thể. 2. Học sinh - Sách giáo khoa, vở ghi - Kiến thức đã học ở lớp 10 III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầuHS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B.HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu các thành phần cơ bản của ngôn ngữ lập trình a) Mục tiêu: Nắm được thành phần cơ bản của ngôn ngữ lập trình 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. c) Sản phẩm: HS hoà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ụ: 1. Các thành phần cơ bản * 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: +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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Bảng chữ cái: A..Z, a..z, 0..9, các ký tự đặc biệt. Cú pháp: là bộ quy tắc dùng để viết chương trình (tùy vào mỗi ngôn ngữ lập trình). Các lỗi cú pháp sẽ được chương trình dịch phát hiện và thông báo cho người lập trình. Ngữ nghĩa: Các lỗi về ngữ nghĩa không được chương trình dịch phát hiện.
Hoạt động 2: Tìm hiểu khái niệm tên a) Mục tiêu: Nắm được khái niệm tên 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. c) Sản phẩm: HS hoà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ụ: 2. Một số khái niệm * Bước 2: Thực hiện nhiệm vụ: - Tên: là một dãy liên tiếp không quá 256 kí tự + HS: Suy nghĩ, tham khảo sgk trả bao gồm chữ số, chữ cái hoặc dấu gạch dưới và lời câu hỏi phải bắt đầu bằng chữ cái hoặc dấu gạch dưới. + GV: quan sát và trợ giúp các cặp. Có 3 loại tên: * Bước 3: Báo cáo, thảo luận: + Tên dành riêng (từ khóa) +HS: Lắng nghe, ghi chú, một HS + Tên chuẩn phát biểu lại các tính chất. + Tên do người lập trình đặt + Các nhóm nhận xét, bổ sung cho a) Keyword của Python nhau. - Được ngôn ngữ lập trình quy định dùng với ý * Bước 4: Kết luận, nhận định: GV nghĩa xác định, người lập trình không được sử chính xác hóa và gọi 1 học sinh nhắc dụng với ý nghĩa khác lại kiến thức - Trong Python, ngoại trừ True, False và None được viết hoa ra thì các keyword khác đều được viết dưới dạng chữ thường, đây là điều bắt buộc. Danh sách các từ khóa
b) Tên chuẩn trong Python Được ngôn ngữ lập trình dùng với ý nghĩa nào False class finally is return đó. None continue for lambda try True def
from
and
del
global not
with
as
elif
if
yield
assert else
nonlocal while or
import pass
break except in raise Người lập trình có thể khai báo và dùng chúng với ý nghĩa và mục đích khác Ý nghĩa của các tên chuẩn được quy định trong các thư viện của ngôn ngữ lập trình c) Tên do người lập trình tự đặt Được dùng với ý nghĩa riêng. Không được trùng với tên dành riêng Quy tắc đặt tên trong Python: Tên chỉ chứa các chữ cái, số và dấu gạch dưới ‘_’ Ví dụ: bien_1, tinh_tong_0_9, firstClass. Tên không được bắt đầu bằng số Tên phải khác các keyword. Không được sử dụng các ký tự đặc biệt như !, @, #, $, %,... trong tên.
Tên có thể dài bao nhiêu tùy ý. Python phân biệt chữ hoa, chữ thường Hoạt động 3: Tìm hiểu khái niệm hằng và biến a) Mục tiêu: Nắm được khái niệm hằng và biến 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. c) Sản phẩm: HS hoà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ụ: 3. Hằng và biến * Bước 2: Thực hiện nhiệm vụ: a) Hằng: là đại lượng có giá trị không thay + HS: Suy nghĩ, tham khảo sgk trả lời đổi trong quá trình thực hiện chương câu hỏi trình. Có 3 loại hằng: + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: Hằng số học: số nguyên, số thực, +HS: Lắng nghe, ghi chú, một HS phát số phức biểu lại các tính chất. Hằng logic: có 2 giá trị TRUE + Các nhóm nhận xét, bổ sung cho hoặc FALSE. nhau. Hằng xâu: đặt trong cặp dấu ‘ ’, * Bước 4: Kết luận, nhận định: GV hoặc “ ”, có thể cũng là trong cặp chính xác hóa và gọi 1 học sinh nhắc ‘’’ ‘’’, “”” “”” lại kiến thức b) Biến: Biến là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị đó có thể được thay đổi trong quá trình thực hiện chương trình. Ví dụ: xác định hằng và biến trong bài toán sau: - Giải phương trình ax + b = 0 với a, b bất kì - Tính chu vi, diện tích hình tròn biết bán kính R cho trước (R>0) Hướng dẫn: Giải phương trình ax + b = 0 - Hằng: không có - Biến: a, b, x Tính chu vi (C), diện tích (S) hình tròn biết bán kính R cho trước - Hằng: pi=3.14 - Biến: R, C, S 4. Chú thích trong Python
Chú thích là cách để người viết code giao tiếp với người đọc code. Nó giúp mô tả điều gì đang xảy ra trong chương trình để người đọc code không mất quá nhiều thời gian tìm hiểu, suy đoán. Khi thông dịch, Python sẽ bỏ qua những chú thích này Cách dùng chú thích: Cách 1: Sử dụng ký tự # để bắt đầu một chú thích. Chú thích bắt đầu sau dấu # cho đến khi bắt đầu một dòng mới.. Cách 2: Sử dụng 3 dấu nháy đơn ' ' ' hoặc nháy kép " " ". Những dấu nháy này thường được sử dụng cho các chuỗi nhiều dòng. Nhưng chúng cũng có thể được sử dụng để viết chú thích trên nhiều dòng. Chỉ cần không phải là docstring thì nó sẽ không tạo ra thêm bất cứ code nào khác. 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: GV giao nhiệm vụ cho HS: Bài 2: In ra các dòng thông báo giới thiệu về bản thân (ít nhất 10 dòng) 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 sau và ghi chép lại câu trả lời vào vở bài tập: Bài 1: Lấy phần nguyên của số a chia b với a, b cho trước (a=8, b=7). Xác định hằng và biến của bài toán đó * HƯỚNG DẪN VỀ NHÀ: * RÚT KINH NGHIỆM .....................................................................................................................................
Tên bài dạy Bài 3. Cấu trúc chương trình Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 I. MỤC TIÊU 1. Về kiến thức: - Cấu trúc chương trình của ngôn ngữ lập trình - Viết được chương trình đơn giản bằng ngôn ngữ lập trình Python 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầuHS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: Chương I chúng ta đã tìm hiểu một số khái niệm về lập trình, dựa trên sự hiểu biết đó chúng ta nghiên cứu tiếp một số chương trình đơn giản của ngôn ngữ lập trình Python B.HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu cấu trúc chương trình a) Mục tiêu: Nắm được cách tạo biến 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. c) Sản phẩm: HS hoà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 1. Cấu trúc chung vụ: Mỗi ngôn ngữ lập trình thường gồm 2 phần: Phần 1: [<Khai báo>] Phần 2: <Thân chương trình>
* Bước 2: Thực hiện nhiệm • Phần khai báo có thể có hoặc không tùy theo vụ: từng chương trình cụ thể, được đặt trong cặp + HS: Suy nghĩ, tham khảo sgk dấu [ và ]. trả lời câu hỏi • Phần thân chương trình bắt buộc phải có + GV: quan sát và trợ giúp các được đặt trong cặp dấu < và >. 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 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Hoạt động 2: Tìm hiểu các thành phần của Python a) Mục tiêu: Nắm được các thành phần của một chương trình 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. c) Sản phẩm: HS hoà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ụ: 2. Các thành phần của chương trình * Bước 2: Thực hiện nhiệm vụ: Với NNLT Python + HS: Suy nghĩ, tham khảo sgk trả lời câu a) Phần khai báo hỏi - Khai báo thư viện + GV: quan sát và trợ giúp các cặp. Cú pháp: * Bước 3: Báo cáo, thảo luận: import <tên_thư_viện> +HS: Lắng nghe, ghi chú, một HS phát Phần này không bắt buộc phải có. biểu lại các tính chất. Muốn sử dụng một hàm nào đó của thư viện, + Các nhóm nhận xét, bổ sung cho nhau. ta sử dụng cú pháp: * Bước 4: Kết luận, nhận định: GV <tên_thư_viện>.<tên_hàm> chính xác hóa và gọi 1 học sinh nhắc lại Một số thư viện chuẩn kiến thức TÊN THƯ VIỆN Ý NGHĨA giao tiếp với hệ os điều hành quản lý file và shutil thư mục thông thường tạo danh sách các glob tập tin từ việc tìm
kiếm thư mục dùng ký tự thay thế (wildcard) sys cung cấp các công cụ biểu thức re chính quy dùng cho việc xử lý chuỗi ở mức cao cung cấp các hàm math xử lý về toán hỗ trợ việc tạo ra random các lựa chọn ngẫu nhiên việc thu thập dữ urllib2 liệu từ các URL dành cho việc gửi smtplib thư điện tử xử lý ngày tháng datetime và thời gian zlib, gzip, bz2, zipfile, định dạng nén và và tarfile lưu trữ dữ liệu Ví dụ: >>># lấy nội dung của thư viện math >>># về sử dụng >>> import math >>># Trả về một số nguyên là >>># phần nguyên của số 3.9 >>> math.trunc(3.9) 3 >>># Trả về một số thực là trị tuyệt đối của số -3 >>> math.fabs(-3) 3.0 - Khai báo và triển khai các lớp Cú pháp: class <tên_lớp>:
b) Phần thân chương trình Bao gồm dãy các lệnh
Hoạt động 3: Tìm hiểu chương trình đơn giản a) Mục tiêu: Nắm được một số ví dụ về chương trình đơn 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. c) Sản phẩm: HS hoà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ài 1: In ra dòng thông báo “Xin chào” * Bước 1: Chuyển giao nhiệm vụ: Cho ví dụ: >>> print(“Xin chào”) - Hãy nhận xét chương trình ? Xin chào * Bước 2: Thực hiện nhiệm vụ: Bài 2: In ra các dòng thông báo giới thiệu về + HS: Suy nghĩ, tham khảo sgk trả lời bản thân (ít nhất 10 dòng) 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 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Bài 3: Lấy phần nguyên của số a chia b với a, b cho trước (a=8, b=7) >>> import math >>> a = 8 >>> b = 7 >>> math.trunc(a/b) 1 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.
c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Bài 1: Hãy soạn thảo chương trình thực hiện các phép toán +, -, *, /, //, % cho hai số nguyên a=145 và b=23 Bài 2: Hãy viết lệnh giải phương trình bậc hai ax2+bx+c=0, biết phương trình luôn có 2 nghiệm phân biệt 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 sau và ghi chép lại câu trả lời vào vở bài tập: Bài 3: Viết chương trình tính diện tích hình tròn khi biết bán kính r=15 Bài 4: Viết chươn trình tính cạnh huyền của tam giác vuông khi biết độ dài hai cạnh góc vuông cho trước với a=7, b=9 * 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 BÀI 4, 5. MỘT SỐ KIỂU DỮ LIỆU CHUẨN + KHAI BÁO BIẾN Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 I. Mục tiêu 1. Về kiến thức: - Biết được các kiểu dữ liệu chuẩn, cách khai báo biến trong Python. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B.HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu hàm nhập dữ liệu vào từ bàn phím a) Mục tiêu: Nắm được cách khai báo biến. 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. c) Sản phẩm: HS hoà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 I. Khai báo biến vụ: 1. Cú pháp: * Bước 2: Thực hiện nhiệm vụ: <danh sách tên biến> = <danh sách giá trị của + HS: Suy nghĩ, tham khảo sgk biến> trả lời câu hỏi Danh sách tên biến: Gồm một hoặc nhiều tên biến, + GV: quan sát và trợ giúp các cách nhau bởi dấu phẩy. cặp. Danh sách giá trị biến: Gồm một hoặc nhiều giá * Bước 3: Báo cáo, thảo luận: trị ngăn cách nhau bởi dấu phẩy
+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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Ví dụ: >>> tuoi = 17 >>> ten = “Hoang Thanh Tam” >>> PI = 3.14 >>> tuoi, ten, PI = 17, “Hoang Thanh Tam”, 3.14 2. Kiểm tra kiểu dữ liệu của biến Cú pháp: type(<tên biến>) Ví dụ: type(tuoi) type(ten) type(PI) => trả về kiểu int, str, float
Hoạt động 2: Tìm hiểu một số kiểu dữ liệu chuẩn a) Mục tiêu: Nắm được các kiểu dữ liệu chuẩn. 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ: * 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: +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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Sản phẩm dự kiến II. Một số kiểu dữ liệu cơ bản Một số kiểu dữ liệu cơ bản như số nguyên (integers), số thực (floating-point), phân số (fraction), số phức (complex) 1. Số nguyên (int): - Bao gồm các số nguyên dương, các số nguyên âm và số 0. Trong Python 3.X kiểu dữ liệu số nguyên là vô tận. - Ví dụ: 123; -12345 2. Số thực (float): - Có độ chính xác xấp xỉ 15 chữ số thập phân - Ví dụ: 34.12; -23.43 - Ví dụ 2: Số thực 10/3 là số vô hạn tuần hoàn => nếu muốn có kết quả chính xác cao hơn, ta nên sử dụng Decimal (có độ chính xác cao hơn float nhưng khá rườm rà)
Ví dụ Nhập một số số phức sau: 1. 1 + 3j 2. Gán biến c có giá trị 2+1j. Xuất ra phần thực và phần ảo của biến c. 3. 4 +j (sẽ có lỗi vì kiểu dữ liệu nhập vào không đúng). 4. Tạo số phức có phần thực là 3, phần ảo là 1. 5. Tạo số phức chỉ có phần thực là 2. 6. Xuất ra kiểu dữ liệu của số 3+1j. >>> 3j + 1 # phần thực là 1, phần ảo là 3 (1 + 3j) >>> c = 2 + 1j # gán giá trị cho biến c là một số phức với phần thực là 2 còn phần ảo là 1 >>> c (2 + 1j) # viết như sau là sai >>> 4 + j # phần ảo là 1, không được phép bỏ số 1 như trong toán
Ví dụ # lấy toàn bộ nội dung của thư viện Decimal >>> from decimal import * # lấy tối đa 30 chữ số phần nguyên và phần thập phân Decimal >>> getcontext().prec = 30 >>> Decimal(10) / Decimal(3) Decimal(‘3. 33333333333333333333333333333’) >>> Decimal(100) / Decimal(3) Decimal(’33.3333333333333333333333333333’) >>> type(Decimal(5)) # các số Decimal thuộc lớp Decimal <class 'decimal.Decimal'> 3. Phân số Cú pháp tạo phân số: Fraction(<Tử_số>, Mẫu_số>) Ví dụ: #lấy toàn bộ nội dung của thư viện decimal >>> from fractions import* >>> Fraction(1,4) 4. Số phức (tham khảo) - Số phức gồm 2 thành phần: <Phần thực> + <Phần ảo> j - Trong đó: <Phần thực> , <Phần ảo> là số thực j là đơn vị ảo trong toán học với j2= -1 Tạo một số phức: Cú pháp: complex(<Phần_thực>, <Phần_ảo>) Gán giá trị số phức cho 1 biến <tên_biến> = <Phần_thực> + <Phần_ảo>j Xuất ra từng phần tử của 1 biến số phức Xuất ra phần thực: Cú pháp: <tên_biến>.real Xuất ra phần ảo: Cú pháp: <tên_biến>.imag 5. Kiểu logic Boolean
>>> 4 + 1j (4 + 1j) >>> c.imag # lấy phần ảo của số phức 2 + 1j mà ta đã gán cho biến c 1.0 >>> c.real # lấy phần thực 2.0 >>> complex(3, 1) # dùng hàm complex để tạo một số phức với phần thực là 3, ảo là 1 (3 + 1j) >>> complex(2) # chỉ có phần thực, phần ảo được mặc định là 0 (2 + 0j) >>> type(3 + 1j) # các số phức thuộc lớp complex <class 'complex'>
- Chỉ nhận một trong 2 giá trị là True hoặc là False - Ví dụ: >>> 3==3 True >>>6+6>=6+9 Flase
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Nhắc lại một số kiểu dữ liệu đơn giản trong ngôn ngữ lập trình Pascal? Bài tập 1. Kiểu dữ liệu số nguyên thuộc lớp nào? 2. Sự khác nhau giữa hai biến a và b dưới đây là gì? >>> a = 0 >>> b = 0.0 3. Tại sao lại có sự khác nhau khi sử dụng hàm ‘trunc’ ở thư viện math so với toán tử ‘//’ >>> import math >>> math.trunc(15 / -4) -3 >>> 15 // -4 -4 Trong khi chúng lại có trùng kết quả ở phép tính này.
>>> import math >>> math.trunc(15 / 4) 3 >>> 15 // 4 3 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À: Bài 1: Cho biết độ dài hai cạnh hình chữ nhật a=8, b=6 rồi tính chu vi và diện tích của hình chữ nhật đó Bài 2: Viết chương trình tính và đưa ra màn hình giá trị của hàm f(x) = x10 + x5 + 1, biết x = 10 Bài 3: Viết chương trình nhập tính và đưa ra màn hình giá trị tổng a3 + b3 + ab, với a = 3, b=5 * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Tên bài dạy PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN TRONG PYTHON Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 tiết I. MỤC TIÊU 1. Về kiến thức: - Biết được các phép toán cơ bản. - Hiểu biểu thức số học, logic, quan hệ 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu các phép toán cơ bản a) Mục tiêu: Nắm được cách dùng các phép toán 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. c) Sản phẩm: HS hoà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 I. Toán tử (phép toán) nhiệm vụ: 1. Toán tử số học cơ bản Toán Mô tả tử * Bước 2: Thực hiện nhiệm vụ: + Cộng + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi Trừ + GV: quan sát và trợ giúp – các cặp. Nhân * Bước 3: Báo cáo, thảo * luận: / Chia + HS: Lắng nghe, ghi chú, Chia lấy phần một HS phát biểu lại các // nguyên tính chất. Chia lấy phần + Các nhóm nhận xét, bổ % dư sung cho nhau. * Bước 4: Kết luận, nhận ** Lũy thừa định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến 2. Toán tử gán thức Ví dụ: Cho 2 biến a,b lần lượt bằng 8 và 3. Thực hiện Toán tử Mô tả các biểu thức toán học với a,b. Phép gán giá trị >>> a = 8 bên phải cho = >>> b = 3 biến bên trái >>> a + b # tương đương 8 dấu bằng cộng 3 11 += Cộng và gán >>> a – b # tương đương 8 trừ 3 5 Trừ và gán >>> a * b # tương đương 8 -= nhân 3 24 >>> a / b # tương đương 8 chia 3 Toán tử Mô tả 2.6666666666666665
Ví dụ 12 + 4.9 quả 16.9
=>
kết
3.98 – 4 => kết quả 0.02 2 * 3.4 => kết quả 6.8 9 / 2 => kết quả 4.5 9 // 2 => kết quả 4 9%2 =>kết quả 1 3**4=>kết quả 81
Ví dụ
Tương đương với
x=5 x=2 x+=5 ==>x=7 x=2 x-=5 ==>x=-3
Ví dụ
x=x+5
x=x-5
Tương đương với
>>> a // b # tương đương với 8 chia nguyên 3 2 >>> a % b # tương đương với 8 chia dư 3 2 >>> a ** b # tương đương 8 mũ 3 512
*=
/=
//=
Toán tử
x=2 Nhân và gán x*=5 ==>x=10 x=7 Chia và gán x/=5 ==>x=1.4 x=7 Chia và gán x//=5 (lấy nguyên) ==>x=1 Mô tả
Ví dụ
x=x*5
x=x/5
x=x//5
Tương đương với
x=7 Chia lấy %= x%=5 x=x%5 dư ==>x=2 Lấy lũy x=2x**=3 **= thừa và ==>x là 2 mũ x=x**3 gán 3 =8 3. Toán tử So sánh Toán tử
Mô tả
Ví dụ
==
Bằng
5 == 5 => True
!=
Khác
5 != 5 => False
<
Nhỏ hơn
5 <5 False
<=
Nhỏ hơn hoặc bằng
5 <= 5 => True
>
Lớn hơn
5 > 5.5 => False
>=
Lớn hơn hoặc bằng
113>= 5 => True
=>
is
Trả về true nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng (hoặc cùng giá trị), nếu không là false
x=5 y=5 print(x is y) =>kết quả là True
is not
Trả về false nếu các biến ở hai bên toán tử cùng trỏ tới một đối tượng (hoặc cùng giá trị), nếu không là true
x=5 y=5 print(x is not y) =>kết quả là False
4. Toán tử Logic Toán tử
Ví dụ
and
x=2016 print(x%4==0 and x%100!=0) =>True
or
x=2016 print((x%4==0 and x%100!=0) or x%400==0) =>True
not
x=4 if (not x>=5): print("hello") else: print("bye bye")
5. Độ ưu tiên toán tử Thứ tự ưu tiên
Toán tử
1
**
2
*, /, % ,//
3
+, –
4
<= ,<, >, >=
5
==, !=
6
=, %=, /=, //=, -=, +=, *=, **=
7
is , is not
8 not, or, and II. Một số hàm thường dùng Tên hàm Công dụng .trunc(x) Trả về một số nguyên là phần nguyên của số x .floor(x) Trả về một số nguyên được làm tròn số từ số x, kết quả luôn luôn nhỏ hơn hoặc bằng x .ceil(x) Trả về một số nguyên được làm tròn số từ số x, kết quả luôn luôn lớn hơn hoặc bằng x .fabs(x) Trả về một số thực là trị tuyệt đối của số x .sqrt(x) Trả về một số thực là căn bậc hai của số x .gcd(x,y) Trả về một số nguyên là ước chung lớn nhất của hai số x và y Hoạt động 2: Tìm hiểu các biểu thức a) Mục tiêu: Nắm được các biểu thức số học, logic, quan hệ 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. c) Sản phẩm: HS hoà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ụ: * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
III. Biểu thức Biểu thức chính là một thực thể toán học. Nói cách khác, nó là một sự kết hợp giữa 2 thành phần: Toán hạng: có thể là một hằng số, biến số, … Toán tử: xác định cách thức làm việc giữa các toán hạng 1) Biểu thức số học Ví dụ: >>>x=2 >>>2*x + 1 +3/(x +2) 5.75 2) Biểu thức quan hệ 3 > 1 là đúng 69 < 10 là sai 241 == 141 + 100 là đúng (5 * 0) != 0 là sai. 'a' > 'ABC' là đúng 'aaa' < 'aaAcv' là sai 'aaa' < 'aaaAcv' là đúng 3) Biểu thức logic Ví dụ : Kiểm tra một số n có nằm trong khoảng (a; b), đoạn [a; b], nửa khoảng (a; b], nửa khoảng [a; b) hay không? hoặc là kiểm tra xem một số k có bằng một trong những số như x, y hoặc z hay không. Ví dụ >>> n = 5 >>># kiểm tra xem n có nằm trong khoảng (1; 6) hay không >>> n > 1 and n <6 True >>> # kiểm tra xem n có nằm trong khoảng (1; 4) hay không >>> n > 1 and n < 4 False Làm như trên khá mệt Với Python, ta có thể làm thế này >>>a=5 >>>1 < a < 6
True >>> b = -4 >>> b < -3 < -1 < 0 < a < 6 # thậm chí là dài như thế này True Với trường hợp nếu ta muốn kiểm tra xem một số k có bằng x hoặc y hoặc là z hay không thì thường phải viết khá dài >>> k = 4 >>> k == 3 or k == 4 or k == 5 True Tuy nhiên, ta cũng có thể làm như sau: >>> k in (3, 4, 5) # nên dùng () hơn là [] hoặc thứ gì khác True 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: 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. Câu hỏi 1: Chuyển các biểu thức toán học sang Python Câu hỏi 2: Thực hiện các phép toán với các biến a=17, b=5 * 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 BÀI TẬP Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 tiết
I. MỤC TIÊU 1. Kiến thức: - Chữa một số bài tập cuối chương và làm thêm một số bài tập ngoài SGK. - Củng cố những kiến thức đã học. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: Để vận dụng các lý thuyết đã học ở chương I và II. Chúng ta cùng thực hành một số bài tập sau. B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu Giải quyết các bài toán cuối chương trong sách giáo khoa a) Mục tiêu: Làm được các bài toán cuối chương trong sách giáo khoa 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. c) Sản phẩm: HS hoà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
Câu 1: Sự khác nhau giữa hằng có đặt tên * Bước 1: Chuyển giao nhiệm vụ: và biến là: xét về mặt lưu trữ của hằng và Chia lớp làm bốn nhóm, yêu cầu các biến trong Ram thì giá trị trong ô nhớ của nhóm làm bài tập theo nhóm hằng có đặt tên là không thay đổi, còn giá trị trong ô nhớ của biến thì có thể thay đổi - Thảo luận nhóm: Chia lớp làm bốn nhóm, yêu cầu cầu các nhóm viết chương được tại từng thời điểm thực hiện chương trình. trình. - Yêu cầu đại diện nhóm lên máy soạn Câu 2: khai báo biến nhằm các mục đích thảo, dịch và chạy thử rồi thông báo kết sau: quả. - Xác định kiểu của biến * Bước 2: Thực hiện nhiệm vụ: - Đưa tên biến vào danh sách các đối tượng + HS: Suy nghĩ, tham khảo sgk trả lời được chương trình quản lí. câu hỏi - Trình dịch biết cách truy cập giá trị của + GV: quan sát và trợ giúp các cặp. biến và áp dụng thao tác thích hợp cho biến. * Bước 3: Báo cáo, thảo luận: Câu 3: Đặt tên 3 biến đúng trong Python + HS: Lắng nghe, ghi chú, một HS phát Câu 4: Hãy viết biểu thức toán học dưới đây biểu lại các tính chất. trong Python: + Các nhóm nhận xét, bổ sung cho nhau. a) (1+z)(x+y:z):(a-1:(1+3)) b) (2x+1)(x3+3) c) (x2+1):(x-1) * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại ĐÁP ÁN: kiến thức a) (1+z)*((x+y/z)/(a-1/(1+x*x*x))) b) c) Câu 5: hãy chuyển các biểu thức trong Python dưới đây sang biểu thức toán học tương ứng: a. a/b*2 b. a*b*c/2 c. 1/a*b/c d. b/(a*a+b)**0.5 ĐÁP ÁN: a) b) c) d) Câu 6: Viết biểu thức logic sau trong Python: 1≤x≤7
ĐÁP ÁN: (x<=7) and (x>=1) Hoặc: 1<=x<=7
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Nêu Các bước để hoàn thành một chương trình? 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. Bài 7: Xác định hằng và biến trong các bài toán sau a) Giải phương trình ax2+b=0 b) Nhập vào chiều dài, chiều rộng hình chữ nhật. Tính chi vi, diện tích của hình chữ nhật đó * HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Xem trước bài 9 chương 3. * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Tên bài dạy BÀI 7,8. VÀO RA ĐƠN GIẢN TRONG PYTHON HIỆU CHỈNH, DỊCH, THỰC HIỆN CHƯƠNG TRÌNH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 I. Mục tiêu 1. Về kiến thức: - Biết nhập dữ liệu vào từ bàn phím và đưa dữ liệu ra màn hình. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B.HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu hàm nhập dữ liệu vào từ bàn phím/ xuất dữ liệu ra màn hình a) Mục tiêu: Nắm được cú pháp hàm nhập/xuất. 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. c) Sản phẩm: HS hoà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 I. NHẬP DỮ LIỆU VÀO TỪ BÀN PHÍM vụ: Cú pháp: * Bước 2: Thực hiện nhiệm vụ: input(prompt=None) + HS: Suy nghĩ, tham khảo sgk Trong đó: trả lời câu hỏi
+ GV: quan sát và trợ giúp các • Parameter prompt là một parameter tùy cặp. chọn. Ta có thể nhập hoặc không vì nó đã có * Bước 3: Báo cáo, thảo luận: giá trị mặc định là None +HS: Lắng nghe, ghi chú, một Công dụng HS phát biểu lại các tính chất. • Cho phép nhập một chuỗi vào từ bàn phím + Các nhóm nhận xét, bổ sung Chú ý: cho nhau. • Hàm nhập cho phép đọc một chuỗi, nên dù * Bước 4: Kết luận, nhận định: ta có nhập số, list, tuple, set, dictionary,… thì GV chính xác hóa và gọi 1 học nó vẫn trả về kết quả là một CHUỖI sinh nhắc lại kiến thức • Kết thúc nhập bằng cách nhấn phím enter. Ví dụ 1: Nhập vào một câu từ bàn phím Cách 1: >>>a = input() • trong trường hợp này không có lời chỉ dẫn vì không có Parameter prompt Cách 2: >>>a = input(‘hãy nhập giá trị cho biến a= ‘) • trong trường hợp này có Parameter prompt (prompt = ‘hãy nhập giá trị cho biến a=‘) Chú ý: Hàm input() luôn luôn trả về giá trị là một chuỗi Ví dụ 2: Nhập vào một số nguyên a, số thực b từ bàn phím rồi tính tổng 2 số đó
Cú pháp nhập dữ liệu số vào từ bàn phím: Nhập dữ liệu vào từ bàn phím rồi chuyển về dạng số nguyên biến = int(input()) Nhập dữ liệu vào từ bàn phím rồi chuyển về dạng số thực biến = float(input()) II. XUẤT DỮ LIỆU RA MÀN HÌNH Cú pháp:
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Trong đó: • *objects: là đối tượng (dữ liệu) cần in ra màn hình. Dấu * có ý nghĩa là số nhiều và chúng ta cũng có thể chỉ định nhiều đối tượng khác nhau và in chúng cùng lúc ra màn hình. • sep: đối tượng chỉ định sẽ được phân tách thành các phần nhỏ bằng ký tự phân tách sep trước khi được in, và mặc định giá trị này là một khoảng trắng. • end giá trị cuối cùng được in ra màn hình, và mặc định giá trị này là ký tự xuống dòng \n. Đối số này sẽ quyết định việc in xuống dòng hay in không xuống dòng trong Python. • file=sys.stdout: chỉ định lưu kết quả đầu ra vào bộ nhớ đệm sys.stdout • flush=False: chỉ định cưỡng chế lưu giữ kết quả vào bộ nhớ đệm, và giá trị mặc định là false, có nghĩa là KHÔNG lưu giữ kết quả vào bộ nhớ. • Tuy nhiên trong thực tế khi sử dụng hàm print() trong Python, chúng ta lược bỏ hầu hết các đối số và sử dụng cú pháp đơn giản nhất sau đây: print(*object) Lưu ý: Nếu thay đổi mặc định 1. Các đối số sep, end, file, flush đều là các đối số keyword, do đó nếu sử dụng chúng trong hàm print() thì phải viết cả keyword của nó. 2. Khi chỉ định đối số end bằng một ký tự, thì ký tự này sẽ thay thế cho việc xuống dòng và nối các đối tượng in ra màn hình lại. Khi đó, chúng ta có thể thực hiện in không xuống dòng trong python.
3. Chúng ta có thể in nhiều đối tượng cùng lúc ra màn hình trong python bằng cách chỉ định các đối tượng cách nhau bởi dấu phẩy 4. Thay đổi ký tự nối bằng cách chỉ định ký tự nối đó trong đối số sep III. Chú thích trong Python • Chú thích là cách để người viết code giao tiếp với người đọc code. Nó giúp mô tả điều gì đang xảy ra trong chương trình để người đọc code không mất quá nhiều thời gian tìm hiểu, suy đoán. • Chú thích bắt đầu bằng kí hiệu #, 3 dấu nháy đơn ' ' ' hoặc nháy kép " " “ (thường dùng #) • Khi thông dịch, Python sẽ bỏ qua những chú thích này • Cách dùng chú thích: Cách 1: • Sử dụng ký tự # để bắt đầu một chú thích. Chú thích bắt đầu sau dấu # cho đến khi bắt đầu một dòng mới.. #Đây là chú thích #trên nhiều dòng #In dòng chữ Quantrimang.com #trong Python print('Quantrimang.com')
Cách 2: • Sử dụng 3 dấu nháy đơn ' ' ' hoặc nháy kép " " ". Những dấu nháy này thường được sử
dụng cho các chuỗi nhiều dòng. Nhưng chúng cũng có thể được sử dụng để viết chú thích trên nhiều dòng. Chỉ cần không phải là docstring thì nó sẽ không tạo ra thêm bất cứ code nào khác. """Đây là chú thích trên nhiều dòng In dòng chữ Quantrimang.com trong Python""" Hoạt động 2: Tìm hiểu cách soạn thảo chương trình a) Mục tiêu: Nắm được cách hiệu chỉnh, lưu chương trình, chạy chương trình. 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ: * 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: +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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Sản phẩm dự kiến IV. Soạn thảo, dịch, hiệu chỉnh, thực hiện chương trình B1: Vào Start/IDLE (Python 3.9 64-bit) B2: Vào File -> New File B3: Soạn thảo chương trình B4: Lưu chương trình bằng Ctrl+S -> Đặt tên file (ví dụ: a.py) B5: Chạy chương trình: Ấn F5 Chú ý: Có thể dùng phần mềm chạy Python như Sublime Text 3, giao diện đẹp hơn, màu nổi hơn
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Nhắc lại một số kiểu dữ liệu đơn giản trong ngôn ngữ lập trình Pascal? 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À: Bài 1: Nhập vào độ dài hai cạnh hình chữ nhật từ bàn phím rồi tính chu vi và diện tích của hình chữ nhật đó Bài 2: Viết chương trình nhập vào 1 số nguyên x, hãy tính và đưa ra màn hình giá trị của hàm f(x) = x10 + x5 + 1 Bài 3: Viết chương trình nhập vào từ bàn phím một số thực a, b. Hãy tính và đưa ra màn hình giá trị tổng a3 + b3 + ab Bài 4: Viết chương trình tính và đưa ra màn hình vận tốc v khi chạm đất của một vật rơi từ độ cao h, biết rằng v =ඥ2݃ℎ, trong đó g là gia tốc rơi tự do và g = 9.8m/s2. Độ cao h tính theo đơn vị m được nhập từ bàn phím Bài 5: Viết chương trình nhập từ bàn pbims 2 số nguyên x, y là tọa độ điểm A. Tính và đưa ra khoảng cách từ gốc tọa độ đến điểm A Bài 6: Viết chương trình nhập từ bàn phím 3 số thực a, b, c là độ dài ba cạnh của 1 tam giác. Hãy tính và đưa ra màn hình diện tích của tam giác đó * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Tên bài dạy BÀI TẬP VÀ THỰC HÀNH 1 VIẾT CHƯƠNG TRÌNH ĐƠN GIẢN Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết
I. MỤC TIÊU 1. Kiến thức: - Biết viết một chương trình python hoàn chỉnh. - Làm quen với các dịch vụ chủ yếu của python trong việc soạn thảo, lưu chương trình, dịch chương trình và thực hiện chương trình. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Làm quen với môi trường Python a) Mục tiêu: : Làm quen với môi trường python 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. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức
d) Tổ chức thực hiện: Sản phẩm dự kiến Hoạt động của GV và HS * Bước 1: Chuyển giao nhiệm vụ: Chiếu chương trình lên bảng. Yêu cầu hs thực hiện các nhiệm vụ: - Soạn chương trình vào máy. - Lưu chương trình. - Dịch lỗi cú pháp. Bài 1: Lập trình giải phương trình ax + b = 0 - Thực hiện chương trình. - Nhập dữ liệu 1 -3 2. Thông báo kết với a, b khác 0 được nhập vào từ bàn phím quả - Trở về màn hình soạn thảo. - Thực hiện chương trình. - Nhập dữ liệu 1 0 2. Thông báo kết - Gõ chương trình vào máy tính. quả. - Lưu chương trình. - Vì sao có lỗi xuất hiện? - Dịch và sửa lỗi cú pháp. - Chỉnh sửa chương trình trên để - Thực hiện chương trình. chương trình không dùng biến trung - Thực hiện chương trình với bộ dữ liệu gian D. khác. - Thay đổi công thức tính x2? - Sửa lại chương trình theo yêu cầu. - Thực hiện chương trình. - Sửa lại chương trình theo yêu cầu khác. - Quan sát và hướng dẫn sửa lỗi - Thực hiện chương trình đã sửa. chương trình khi học sinh không tự - Thực hiện chương trình đã sửa với bộ dữ phát hiện và sửa được lỗi. liệu khác * Bước 2: Thực hiện nhiệm vụ: a=float(input(“Nhập số a=”) + HS: Suy nghĩ, tham khảo sgk trả lời b=float(input(“Nhập số b=”) câu hỏi x=-b/a + GV: quan sát và trợ giúp các cặp. print(“nghiệm=”,x) * 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 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Hoạt động 2: Tìm hiểu Rèn luyện kĩ năng lập chương trình a) Mục tiêu: Rèn luyện kĩ năng lập chương trình
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. c) Sản phẩm: HS hoà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ụ: 2. Rèn luyện kĩ năng lập chương trình: - Đưa ra một bài tập, yêu cầu học - Bài 2: Viết chương trình nhập vào từ bàn phím sinh phân tích và lập trình giải bài hai số thực a, b (a khác 0 và a, b trái dấu). Giải và đưa ra nghiệm phương trình ax2 + b = 0 toán. - Dữ liệu vào? Dữ liệu ra? a=float(input(“Nhập số a khác 0 =”) - Thuật toán/Ý tưởng? - Yêu cầu học sinh tự sọan chương b=float(input(“Nhập số b trái dấu với a =”) x= (-b/a)**0.5 trình và lưu lên máy. - Yêu cầu học sinh nhập dữ liệu và print(“nghiệm=”,x) thông báo kết quả * Bước 2: Thực hiện nhiệm vụ: Bài 3: Viết chương trình nhập vào từ bàn phím một + HS: Suy nghĩ, tham khảo sgk trả số nguyên không âm n không vượt quá 99. Tính và lời câu hỏi đưa ra màn hình tổng các chữ số của số đó + GV: quan sát và trợ giúp các cặp. n=int(input(“Nhập số n<=99 =”) * Bước 3: Báo cáo, thảo luận: tongcs=n%10 + n//10 + HS: Lắng nghe, ghi chú, một HS print(“tổng các chữ số của n =”,tongcs) 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ài 4: Viết chương trình nhập vào từ bàn phím một * Bước 4: Kết luận, nhận định: số tự nhiên n. Tính và đưa ra màn hình tổng 1 + 2 GV chính xác hóa và gọi 1 học sinh + 3 + … + n nhắc lại kiến thức n=int(input(“Nhập vào số n =”) csc=(1+n)*n/2 print(“tổng các chữ số của n =”,csc) Bài 5: Theo truyền thuyết, vua Seerram rất khâm phục và đã tặng thưởng cho nhà thông thái Seeta vì đã sáng tạo ra cờ vua. Phần thưởng mà Sêta mong muốn là tất cả các hạt lúa mì đặt trên bàn cờ vua kích thước 8x8 theo quy tắc sau: Ô thứ nhất đặt 1 hạt, ô thứ hai đặt 2 hạt, ô thứ ba đặt 4 hạt, …, tiếp tục theo quy luật ô sau có số hạt gấp đôi số hạt của
ô trước cho tới khi đặt đến ô thứ 64 trên bàn cờ vua. Em hãy lập trình nhập vào từ bàn phím hai số nguyên dương m, n và tính tổng số hạt lúa mì trên bàn cờ vua kích thước mxn nếu đặt các hạt lúa mì theo quy luật giống như Sêta Input Output 2 2
30
3 4
650
8 8
89440
n=int(input(“Nhập vào số n =”) m=int(input(“Nhập vào số m =”) s=m*n csn=1*(1-2**s)/(1-2) print(“tổng số hạt lúa mì =”,csn) 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: - Viết chương trình nhập vào ba số a, b, c. Tính tổng ba số đó? - Viết chương trình nhập từ bàn phím 2 số thực a và b, tính và đưa ra màn hình trung bình cộng các bình phương của hai số đó. 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 BÀI 6. CẤU TRÚC RẼ NHÁNH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức - Biết cú pháp lệnh rẽ nhánh và vận dụng làm bài tập 2. Năng lực. - Viết được các biểu thức số học và logic với các phép toán thông dụng. - Viết được câu lệnh gán. - Vận dụng được các biểu thức số học và logic với các phép toán thông dụng để giải quyết các bài toán trên máy tính điện tử. - Năng lực hướng tới: Vận dụng được các biểu thức số học và logic với các phép toán thông dụng để giải quyết các bài toán trên máy tính điện tử. 3. Phẩm chất - Nghiêm túc, chủ động tìm hiểu kiến thức mới. II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU 1. Giáo viên: - Thiết bị dạy học: Bảng - Học liệu: Giáo án, sách giáo khoa, sách giáo viên 2. Học sinh: Chuẩn bị SGK và đọc trước bài III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: . B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu Biểu thức quan hệ, biểu thức logic a) Mục tiêu: Nắm được khái niệm phép toán 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. c) Sản phẩm: HS hoà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ụ: I. Biểu thức quan hệ, biểu thức logic 1. Phép toán quan hệ và biểu thức quan hệ: * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời a) Phép toán câu hỏi - Các phép toán quan hệ: <, <=, == (bằng) , + GV: quan sát và trợ giúp các cặp. >, >=, != (khác) , is, is not Ví dụ 1: * Bước 3: Báo cáo, thảo luận: + HS: Lắng nghe, ghi chú, một HS phát x=5 biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. y=5 print(x is y) * Bước 4: Kết luận, nhận định: GV =>kết quả là True chính xác hóa và gọi 1 học sinh nhắc lại Ví dụ 2 : kiến thức x=5 y=5 print(x is not y) =>kết quả là False b) Biểu thức quan hệ - Khái niệm: Hai biểu thức số học liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức qua hệ - Biểu thức quan hệ có dạng: <biểu thức 1> <phép toán quan hệ> <biểu thức 2> Ví dụ: Delta > 0 A + B <= 2*C - Biểu thức quan hệ nhận giá trị True hoặc False Ví dụ: Cho A=5, B=2, C=3 thì biểu thức Delta > 0 nhận giá trị False A + B <= 2*C nhận giá trị False A > B nhận giá trị True 2. Phép toán logic và biểu thức logic a) Phép toán - and (&), or (|), not (~) Ví dụ: x=2016
print((x%4==0 and x%100!=0) or x%400==0) =>True Hoặc: x=2016 print((x%4==0 & x%100!=0) | x%400==0) =>True b) Biểu thức logic Biểu thức logic là: Biểu thức quan hệ Các biểu thức quan hệ liên kết với nhau bởi các phép toán logic Ví dụ: (a+b>c) and (b+c>a) and (a+c>b) (x>1) and (x<5) Hoạt động 2: Tìm hiểu Câu lệnh if a) Mục tiêu: Nắm được Câu lệnh if 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. c) Sản phẩm: HS hoà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ụ: -
Cú pháp: if expression: * Bước 2: Thực hiện nhiệm vụ: # if-block + HS: Suy nghĩ, tham khảo sgk trả lời câu Giải thích: hỏi - expression: là một biểu thức quan hệ + GV: quan sát và trợ giúp các cặp. hoặc biểu thức logic * Bước 3: Báo cáo, thảo luận: - Sau điều kiện là dấu : + HS: Lắng nghe, ghi chú, một HS phát - Tất cả các câu lệnh nằm trong ifbiểu lại các tính chất. block là các câu lệnh có lề thụt vào + Các nhóm nhận xét, bổ sung cho nhau. trong so với câu lệnh if. * Bước 4: Kết luận, nhận định: GV Ý nghĩa lệnh: chính xác hóa và gọi 1 học sinh nhắc lại - Nếu expression nhận giá trị True thì kiến thức Python sẽ thực hiện các câu lệnh trong ifblock. Còn nếu không thì sẽ bỏ qua if-block đó. Ví dụ: Cho a=0, b=3. Hãy so sánh a với 1, b với 1
>>> a = 0 >>> b = 3 >>> if a - 1 < 0: … print('a nhỏ hơn 1') ... a nhỏ hơn 1 >>> if b - 1 < 0: … print('b nhỏ hơn 1') ... >>>
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Bài 1: Nhập vào 3 số a, b, c. Hãy cho biết 3 số đó có đều dương không? 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: Bài 2: Có n chiếc kẹo và m em bé. Hãy viết chương trình nhập vào hai số nguyên dương n, m và kiểm tra n chiếc kẹo có chia đều được cho m em bé hay khôn? Nếu có thì ghi ra “YES”, ngược lại ghi ra “NO”. n=int(input("Nhập n=")) m=int(input("Nhập m=")) if n%m==0: print(“YES”) else: print(“NO”) Bài 3: Viết chương trình nhập vào từ bàn phím 3 số thực a, b, c. Kiểm tra xem 3 số a, b, c có là độ dài 3 cạnh của một tam giác hay không a=float(input("Nhập a=")) b=float(input("Nhập b=")) c=float(input("Nhập c=")) if (a+b>c)&(b+c>a)&(c+a>b): print(“YES”)
else: print(“NO”) * HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Chuẩn bị bài mới * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Trường: THPT THĂNG LONG
Họ và tên giáo viên
Tổ: LÝ - CN
Hoàng Thị Thanh Tâm
Tên bài dạy BÀI 7. CẤU TRÚC RẼ NHÁNH (tiếp) Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức - Biết cú pháp lệnh rẽ nhánh và vận dụng làm bài tập 2. Năng lực. - Viết được các biểu thức số học và logic với các phép toán thông dụng. - Viết được câu lệnh gán. - Vận dụng được các biểu thức số học và logic với các phép toán thông dụng để giải quyết các bài toán trên máy tính điện tử. - Năng lực hướng tới: Vận dụng được các biểu thức số học và logic với các phép toán thông dụng để giải quyết các bài toán trên máy tính điện tử. 3. Phẩm chất - Nghiêm túc, chủ động tìm hiểu kiến thức mới. II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU 1. Giáo viên: - Thiết bị dạy học: Bảng - Học liệu: Giáo án, sách giáo khoa, sách giáo viên 2. Học sinh: Chuẩn bị SGK và đọc trước bài III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: . B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu If - else a) Mục tiêu: Nắm được lệnh if - else
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. c) Sản phẩm: HS hoà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ụ: I. Lệnh if - else 1. Cú pháp * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời if expression: câu hỏi # if-block + GV: quan sát và trợ giúp các cặp. else: * Bước 3: Báo cáo, thảo luận: # else-block + HS: Lắng nghe, ghi chú, một HS phát Ý nghĩa: biểu lại các tính chất. Nếu expression nhận giá trị True, thực hiện if+ Các nhóm nhận xét, bổ sung cho nhau. block và kết thúc. Còn nếu không sẽ thực hiện else-block và kết thúc. * Bước 4: Kết luận, nhận định: GV Ví dụ: Cho a=3. Hãy so sánh a với 1 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Cho a=3, b=5. Hãy tìm số nhỏ nhất trong 2 số a và b
Bài 1: Nhập vào từ bàn phím số nguyên N, kiểm tra xem N là số âm hay số không âm Bài 2: Nhập vào 2 số thực A, B là hệ số phương trình Ax + B = 0. Đưa ra thông điệp “Phương trình vô nghiệm”, hoặc “Phương trình có nghiệm”
Hoạt động 2: Tìm hiểu lệnh if – elif - else a) Mục tiêu: Nắm được Câu lệnh if – elif - else 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. c) Sản phẩm: HS hoà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 II. If – elif - else Cú pháp if expression: # If-block * Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời câu elif 2-expression: # 2-if-block hỏi … + GV: quan sát và trợ giúp các cặp. elif n-expression: * Bước 3: Báo cáo, thảo luận: # n-if-block + HS: Lắng nghe, ghi chú, một HS phát else: biểu lại các tính chất. # else-block + Các nhóm nhận xét, bổ sung cho nhau. Chú ý: Ta có thể đặt bao nhiêu lần elif cũng * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại được nhưng else thì chỉ một. kiến thức Quy ước: từ câu lệnh if đến câu lệnh else là một khối, ta cũng sẽ đặt cho nó một cái tên là khối BIG để dễ hiểu. Ý nghĩa lệnh: Bước 1: Nếu expression nhận giá trị True thực hiện if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 2. Bước 2: Nếu 2-expression nhận giá trị True thực hiện 2-if-block sau đó kết thúc khối BIG. Không thì chuyển sang Bước 3 … Bước n - 1: Nếu n-expression nhận giá trị True thực hiện n-if-block sau đó kết thúc khối BIG. Nếu không thì chuyển sang Bước n * Bước 1: Chuyển giao nhiệm vụ: -
Bước n: Thực hiện else-block và kết thúc khối BIG. III. Block (khối lệnh) trong Python · Câu lệnh mở block kết thúc bằng dấu hai chấm (:), sau khi sử dụng câu lệnh có dấu hai chấm (:) buộc phải xuống dòng và lùi lề vào trong và có tối thiểu một câu lệnh để không bỏ trống block. · Những dòng code cùng lề là cùng một block. · Một block có thể có nhiều block khác. · Khi căn lề block không sử dụng cả tab lẫn space. · Nên sử dụng 4 space để căn lề một block
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Bài 1: Tìm số lớn nhất trong 3 số a và b, c với a=9, b=100, c=89 Cách 1: dùng thuật toán a=float(input("Nhập a=")) b=float(input("Nhập b=")) c=float(input("Nhập c=")) max=a if max<b: max=b elif max<c: max=c print("số lớn nhất=",max) Cách 2: Dùng thư viện của python a=float(input("Nhập a=")) b=float(input("Nhập b=")) c=float(input("Nhập c=")) print("số lớn nhất=",max(a,b,c))
Bài 2: Viết chương trình tìm số nhỏ nhất của 3 số nguyên dương a, b, c (với a, b, c được nhập từ bàn phím). Bài 3: Giải phương trình ax2 + bx + c = 0 với a, b, c bất kì cho trước được nhập từ bàn phím a=float(input("Nhập a=")) b=float(input("Nhập b=")) c=float(input("Nhập c=")) if a==0: if b==0: if c==0: print("pt vô số nghiệm") else: print("pt vô nghiệm") else: print("pt có nghiệm x=",-c/b) else: d=b*b-4*a*c if d==0: print("Pt có nghiệm kép x=",-b/(2*a)) elif d<0: print("pt vô nghiệm") else: x1=(-b-d**0.5)/(2*a) x2=(-b+d**0.5)/(2*a) print("pt có 2 nghiệm pb x1=",x1,"; x2=",x2) 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: Bài 1: Viết chương trình giải phương trình bậc hai ax2 + bx + c = 0 Bài 2: Viết chương trình giải phương trình ax2 + bx + c = 0 Bài 3:Viết chương trình yêu cầu người dùng nhập từ bàn phím một số nguyên không vượt quá 100. Đưa ra thông điệp “Số của bạn nhập vào quá lớn” nếu số được nhập vào lớn hơn 100, ngược lại đưa ra thông điệp “Bạn đã nhập đúng” n=int(input()) if n>100: print(“Số bạn nhập vào lớn quá”) else: print(“Bạn đã nhập đúng”)
Bài 4: Hoàn thiện chương trình dưới đây để nhận được chương trình nhập từ bàn phím ba số thực a, b, c và sử dụng lệnh if-elif-else. Đưa ra thông điệp “Không là ba cạnh của một tam giác, tiếp tục kiểm tra a, b, c có là ba cạnh của một tam giác vuông không, nếu đúng đưa ra thông điệp “Là ba cạnh của một tam giác vuông”, ngược lại đưa ra thông điệp “Là ba cạnh của một tam giác”
* HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Chuẩn bị bài mới * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Tên bài dạy BÀI TẬP VÀ THỰC HÀNH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức: - Biết được sử dụng các thủ tục vào/ ra chuẩn đối với lập trình - Biết được cách sử dụng lệnh rẽ nhánh 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI (Không có) 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. 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 Bài 1: Viết chương trình giải phương trình bậc hai ax2 + bx nhiệm vụ: +c=0 a=float(input("Nhập vào số a = ")) * Bước 2: Thực hiện nhiệm vụ: b=float(input("Nhập vào số b = ")) + HS: Suy nghĩ, tham khảo c=float(input("Nhập vào số c = ")) sgk trả lời câu hỏi d=b*b-4*a*c + GV: quan sát và trợ giúp if d<0: các cặp. print("phương trình vô nghiệm") * Bước 3: Báo cáo, thảo elif d==0: luận: print("Pt có nghiệm kép x= ",-b/(2*a)) + HS: Lắng nghe, ghi chú, else: một HS phát x1=(-b+d**0.5)/(2*a) biểu lại các tính chất. x2=(-b-d**0.5)/(2*a) print("pt có 2 nghiệm phân biệt x1=",x1,"; x2=",x2) + Các nhóm nhận xét, bổ sung cho nhau. Bài 2: Viết chương trình giải phương trình ax2 + bx + c = 0 * Bước 4: Kết luận, nhận a=float(input("Nhập vào số a = ")) định: GV b=float(input("Nhập vào số b = ")) chính xác hóa và gọi 1 học c=float(input("Nhập vào số c = ")) sinh nhắc lại kiến thức if a==0: if b==0: if c==0: print("pt vô số nghiệm") else: print("pt vô nghiệm") else: print("pt có 1 nghiệm x=",-c/b) else: d=b*b-4*a*c if d<0: print("phương trình vô nghiệm") elif d==0: print("Pt có nghiệm kép x= ",-b/(2*a)) else: x1=(-b+d**0.5)/(2*a) x2=(-b-d**0.5)/(2*a) print("pt có 2 nghiệm phân biệt x1=",x1,"; x2=",x2) Bài 3:Viết chương trình yêu cầu người dùng nhập từ bàn phím một số nguyên không vượt quá 100. Đưa ra thông điệp
“Số của bạn nhập vào quá lớn” nếu số được nhập vào lớn hơn 100, ngược lại đưa ra thông điệp “Bạn đã nhập đúng” n=int(input("Nhập vào số nguyên không vượt quá 100, n = ")) if n<=100: print("Bạn đã nhập đúng") else: print("Số của bạn nhập vào quá lớn") 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. Bài 4: Hoàn thiện chương trình dưới đây để nhận được chương trình nhập từ bàn phím ba số thực a, b, c và sử dụng lệnh if-elif-else. Đưa ra thông điệp “Không là ba cạnh của một tam giác, tiếp tục kiểm tra a, b, c có là ba cạnh của một tam giác vuông không, nếu đúng đưa ra thông điệp “Là ba cạnh của một tam giác vuông”, ngược lại đưa ra thông điệp “Là ba cạnh của một tam giác”
Bài 7: Nhập điểm trung bình của một học sinh là một số thực, hãy đưa ra học lực của học sinh đó theo các loại: Giỏi (từ 8.0 trở lên), Khá (từ 6.5 đến 7.9), Trung bình (từ 5.0 đến 6.4), Yếu (dưới 5.0)
Bài 8: Viết chương trình nhập vào số KW điện tiêu thụ của một hộ gia đình rồi tính số tiền phải trả biết rằng giá tiền được tính như sau: Từ KW thứ 1 đến 50 giá 1.678 nghìn đồng/KWTừ KW thứ 1 đến 50 giá 1.678 nghìn đồng/KW Từ KW thứ 51 đến 100 giá 1.734 nghìn đồng/KW Từ KW thứ 101 đến 200 giá 2.014 nghìn đồng/KW Từ KW thứ 201 đến 300 giá 2.536 nghìn đồng/KW Từ KW thứ 301 đến 400 giá 2.834 nghìn đồng/KW Từ KW thứ 401 trở đi giá 2.927 nghìn đồng/KW
* 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.
Tên bài dạy CẤU TRÚC LẶP Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết
I. Mục tiêu 1. Kiếnthức: - Biết được lặp là gì ? - Hiểu được cấu trúc và cách thức hoạt động của cấu trúc lặp với số lần lặp đã biết và chưa biết trước. 2. Năng lực: Năng lực chung: - Năng lực tự chủ và tự học. - Năng lực giao tiếp và hợp tác. - Năng lực sáng tạo và giải quyết vấn đề. Năng lực đặc thù môn học cần phát triển: NLc: Biết được các các thuật toán, viết được chương trình. 3. Phẩm chất: - Xác định được bài toán dạng lặp với số lần đã biết hay chưa biết số lần lặp. - Mô hình hóa các tình huống thực tiễn diễn ra có dùng cấu trúc lặp trong tin học. - Diễn tả thuật toán bằng cấu trúc lặp bằng ngôn ngữ lập trình. II. Thiết bị dạy học và học liệu SGK, máy tính, tivi. III. Tiến trình dạy học
1. Hoạt động 1: Mở đầu a) Mục tiêu: - Biết được Lặp, các dạng lặp. - Hiểu ý nghĩa lặp và cách thức hoạt động của cấu trúc lặp với số lần chưa biết trước. b) Nội dung: Giáo viên nêu bài toán: BÀI TOÁN 1: Đem 1 trang văn bản để phô-tô copy thành 10 bản. Quá trình hoạt động của máy photocopy được thực hiện như sau: Nhận lệnh: số bản copy; số bản in.? Máy photocopy thực hiện bao nhiêu bản in. Học sinh trả lời: Giáo viên đánh giá chốt kiến thức: Thực hiện lệnh: In bản mới được thực hiện chính là số bản cần photo. (lặp lại với số lần biết trước) BÀI TOÁN 2: Tài khoản điện thoại của 1 người còn 100.000 đồng. Người này thực hiện các cuộc gọi để hỏi thăm sức khỏe bạn bè. Nhà mạng sẽ thực hiện trừ tiền sau mỗi cuộc gọi. Người đó sẽ thực hiện được bao nhiêu cuộc gọi cho bạn. Học sinh trả lời: Giáo viên nhận xét chốt kiến thức: Chúng ta chưa biết trước được có bao nhiêu cuộc gọi (số lần người đó gọi điện thoại) được thực hiện nhưng hoạt động gọi điện sẽ ngừng khi tài khoản không còn tiền. c. Sảm phẩm: Đáp án đúng của bài tập. d. Tổ chức thực hiện: Thực hiện tại lớp. 2. Hoạt động 2: Hình thành kiến thức mới. a) Mụctiêu: - Hiểu nhu cầu cần sử dụng cấu trúc lặp trong thuật toán. - Hiểu được cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước.
- Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. b) Nội dung: Sản phẩm dự kiến
Hoạt động của thầy và trò
1. Lặp
Hoạt động 1. Lặp
* Trong một số bài toán có những thao Gv: Giới thiệu khái niệm cấu trúc tác phải thực hiện lặp đi lặp lại nhiều lặp lần. Một đặc trưng của máy tính là có khả năng thực hiện hiệu quả các thao tác lặp * Các ngôn ngữ lập trình đều có các câu Gv: nhấn mạnh là một cấu trúc lệnh để mô tả cấu trúc lặp quan trọng trong lập trình Pascal * Ví dụ: a là số nguyên và a>2, xét các bài toán Gv: Đưa ví dụ có sử dụng câu trúc sau: lặp Bài 1: Tính và đưa ra kết quả ra màn hình tổng: S=
1 1 1 1 + + + .... + a a +1 a + 2 a + 100
Bài 2: Tính và đưa kết quả ra màn hình 1 1 1 1 S= + + + .... + + .... a a +1 a + 2 a+N
cho đến khi
1 < 0,0001 a+N
Với hai bài toán trên, ta thấy để tính tổng S có nhiều điểm tương tự:
Gv: Chỉ các phép lặp trong hai ví dụ trên?
Hs:
Gv: Nhận xét và bổ sung nếu thiếu
+ S được gán giá trị
1 a
Gv: Hướng dẫn học sinh thấy các
1 + Cộng vào tổng S một giá trị với phép lặp trong hai ví dụ trên. a+N
N=1, 2, 3, 4,.....
Hs: Ghi bài
Việc cộng này được lặp lại một số lần
2. Lặp với số lần biết trước vòng lặp for .. in Có hai thuật toán Tong_1a và Tong_1b để giải bài toán 1: Thuật toán Tong_1a: Bước 1: S 1/a; N 0; Bước 2: N N+1;
Hoạt động 2. Lặp với số lần biết trước và câu lệnh for-in
Gv: Hãy xác định thuật toán cho ví Bước 3: Nếu N>100 thì chuyển sang dụ trên? bước 5 Hs: Bước 4: S S+1/(a+N) rồi quay lại Gv: Giải thích công thức về dạng bước 2 lặp tiến Bước 5: Đưa S ra màn hình, kết thúc Hs: Ghi
* Để mô tả cấu trúc lặp với số lần biết trước, 2. Vòng lặp for .. in Cú pháp for <biến chạy> in <sequence>:
<statements> Trong đó: - sequence là danh sách giá trị - Statements là khối lệnh của for Hoạt động: Vòng lặp for sẽ thực hiện việc lặp qua từng phần tử của <sequence> và với mỗi phần tử tìm được thì các câu lệnh <statements> sẽ được thực thi. Gv: Nêu công thức về dạng lặp lùi Python thường dùng trong vòng lặp đó là range() và xrange() để tạo ra Hs: Ghi sequence (danh sách giá trị) cho biến chạy Hàm range(): tạo ra một list các giá trị số nguyên Cú pháp range([start], <stop>, [step])
Gv: Giải thích cấu trúc từng câu lệnh Hs: Quan sát- ghi
3. Lặp với số lần chưa biết và câu Hoạt động 3. Lặp với số lần chưa lệnh while... biết và câu lệnh while * Có thể xây dựng thuật toán tong_2 Gv: Giới thiệu cấu trúc lặp với số giải bài toán 2 lần biết trước Bước 1: S 1/a; N 0; Hs: Quan sát và ghi Bước 2: Nếu 1/(a+N)<0,0001 chuyển sang bước 5 Bước 3: N N+1;
Bước 4: S S+1/(a+N) rồi quay lại Gv: Đưa ví dụ có sử dụng câu trúc bước 2 lặp Bước 5: Đưa S ra màn hình * câu lệnh while-do có dạng Cú pháp:
Gv: Hãy xác định thuật toán cho ví dụ trên.
while expression: while-block Trong đó: - expression: là điều kiện - while-block: là khối lệnh của while Hoạt động: Chừng nào expression mang giá trị True, thì thực hiện toàn bộ câu lệnh trong while-block. Ngược lại, bỏ qua while-block và thực hiện câu lệnh tiếp Gv: Hướng dẫn đọc sơ đồ. theo.
Gv: Hãy xác định thuật toán cho ví dụ trên? Ví dụ 1: Nghiên cứu sơ đồ khối cài đặt Hs: thuật toán Tong_2 (sgk 46) Sau là chương trình thuật toán Tong_2. * Ví dụ 2: Tìm ước số chung lớn nhất của hai số nguyên dương M, N + Thuật toán:
Bước 1: Nhập M, N;
Gv: Đưa ví dụ tính tổng trong ví dụ bài toán 2
Bước 2: Nếu M=N thì lấy ước số chung lớn nhất rồi chuyển bước 5 Hs: Quan sát Bước 3: Nếu M>N thì M M- N ngược lại N N- M; Bước 4: Quạy lại bước 2;
Bước 5: Đưa kết quả ra màn hình, kết Gv: Đưa ví dụ tìm ước số chung lớn thúc nhất cho hai số nguyên dương M, + Chương trình: N Ví dụ:
Hs: Quan sát
In các giá trị 2, 5, 8 ra màn hình Gv: Hãy viết thuật toán cho bài toán? Hs:
Gv: Hãy viết chương trình với thuật toán đã biết?
Gv: So sánh hai câu lệnh ghép vừa học có gì khác nhau?
Hs: Lệnh for...in... lặp lại số lần xác định, còn lệnh while không lặp lại số lần xác định
c. Sản phẩm: Kiến thức về cấu trúc lặp. d. Tổ chức thực hiện: Thực hiện trên lớp. 3. Hoạt động 3: Luyệntập a. Mục tiêu: Biết cấu trúc lặp b. Nội dung: Yêu cầu học sinh xác định: 1. Bài toán ở dạng lặp nào ? 2. Điều kiện lặp, thao tác lặp, Số lần lặp, của mỗi bài toán tính tổng? c. Sản phẩm: cấu trúc lặp được xây dựng trên bài toán tính tổng. d. Tổ chức thực hiện: Giao cho học sinh thực hiện trên lớp. 4. Hoạt động 4: Vậndụng a. Mục tiêu: Vận dụng cấu trúc lặp để viết được bài toán được giao. b. Nội dung: BT1: Lặp với số lần đã biết; số lần lặp là t, thao tác lặp là việc tính tiền lãi, cộng lãi tính được vào gốc để tính tiếp cho tháng sau. BT2: Lặp với số lần chưa biết trước; điều kiện lặp B < A. thao tác lặp là tính lãi theo tháng, cộng lãi vào biến trung gian. Tăng số tháng lên 1. c. Sản phẩm:Chương trình được viết có sử dụng cấu trúc lặp. d. Tổ chức thực hiện:Giao cho học sinh thực hiện ngoài giờ học trên.
Tên bài dạy CẤU TRÚC LẶP
Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết
I. Mục tiêu 1. Kiếnthức: - Biết được lặp là gì ? - Hiểu được cấu trúc và cách thức hoạt động của cấu trúc lặp với số lần lặp đã biết và chưa biết trước. 2. Năng lực: Năng lực chung: - Năng lực tự chủ và tự học. - Năng lực giao tiếp và hợp tác. - Năng lực sáng tạo và giải quyết vấn đề. Năng lực đặc thù môn học cần phát triển: NLc: Biết được các các thuật toán, viết được chương trình. 3. Phẩm chất: - Xác định được bài toán dạng lặp với số lần đã biết hay chưa biết số lần lặp. - Mô hình hóa các tình huống thực tiễn diễn ra có dùng cấu trúc lặp trong tin học. - Diễn tả thuật toán bằng cấu trúc lặp bằng ngôn ngữ lập trình. II. Thiết bị dạy học và học liệu SGK, máy tính, tivi. III. Tiến trình dạy học 1. Hoạt động 1: Mở đầu a) Mục tiêu: - Biết được Lặp, các dạng lặp.
- Hiểu ý nghĩa lặp và cách thức hoạt động của cấu trúc lặp với số lần chưa biết trước. b) Nội dung: Giáo viên nêu bài toán: BÀI TOÁN 1: Đem 1 trang văn bản để phô-tô copy thành 10 bản. Quá trình hoạt động của máy photocopy được thực hiện như sau: Nhận lệnh: số bản copy; số bản in.? Máy photocopy thực hiện bao nhiêu bản in. Học sinh trả lời: Giáo viên đánh giá chốt kiến thức: Thực hiện lệnh: In bản mới được thực hiện chính là số bản cần photo. (lặp lại với số lần biết trước) BÀI TOÁN 2: Tài khoản điện thoại của 1 người còn 100.000 đồng. Người này thực hiện các cuộc gọi để hỏi thăm sức khỏe bạn bè. Nhà mạng sẽ thực hiện trừ tiền sau mỗi cuộc gọi. Người đó sẽ thực hiện được bao nhiêu cuộc gọi cho bạn. Học sinh trả lời: Giáo viên nhận xét chốt kiến thức: Chúng ta chưa biết trước được có bao nhiêu cuộc gọi (số lần người đó gọi điện thoại) được thực hiện nhưng hoạt động gọi điện sẽ ngừng khi tài khoản không còn tiền. c. Sảm phẩm: Đáp án đúng của bài tập. d. Tổ chức thực hiện: Thực hiện tại lớp. 2. Hoạt động 2: Hình thành kiến thức mới. a) Mụctiêu: - Hiểu nhu cầu cần sử dụng cấu trúc lặp trong thuật toán. - Hiểu được cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước. - Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. b) Nội dung:
Sản phẩm dự kiến
Hoạt động của thầy và trò
1. Lặp
Hoạt động 1. Lặp
* Trong một số bài toán có những thao Gv: Giới thiệu khái niệm cấu trúc tác phải thực hiện lặp đi lặp lại nhiều lặp lần. Một đặc trưng của máy tính là có khả năng thực hiện hiệu quả các thao tác lặp * Các ngôn ngữ lập trình đều có các câu Gv: nhấn mạnh là một cấu trúc lệnh để mô tả cấu trúc lặp quan trọng trong lập trình Pascal * Ví dụ: a là số nguyên và a>2, xét các bài toán Gv: Đưa ví dụ có sử dụng câu trúc sau: lặp Bài 1: Tính và đưa ra kết quả ra màn hình tổng: S=
1 1 1 1 + + + .... + a a +1 a + 2 a + 100
Bài 2: Tính và đưa kết quả ra màn hình 1 1 1 1 S= + + + .... + + .... a a +1 a + 2 a+N
cho đến khi
1 < 0,0001 a+N
Gv: Chỉ các phép lặp trong hai ví dụ trên?
Hs:
Gv: Nhận xét và bổ sung nếu thiếu
Với hai bài toán trên, ta thấy để tính tổng S có nhiều điểm tương tự: + S được gán giá trị
1 a
Gv: Hướng dẫn học sinh thấy các phép lặp trong hai ví dụ trên.
+ Cộng vào tổng S một giá trị
1 với Hs: Ghi bài a+N
N=1, 2, 3, 4,..... Việc cộng này được lặp lại một số lần
2. Lặp với số lần biết trước vòng lặp for .. in Có hai thuật toán Tong_1a và Tong_1b để giải bài toán 1: Thuật toán Tong_1a: Bước 1: S 1/a; N 0; Bước 2: N N+1;
Hoạt động 2. Lặp với số lần biết trước và câu lệnh for-in Gv: Hãy xác định thuật toán cho ví dụ trên?
Bước 3: Nếu N>100 thì chuyển sang Hs: bước 5 Gv: Giải thích công thức về dạng Bước 4: S S+1/(a+N) rồi quay lại lặp tiến bước 2 Bước 5: Đưa S ra màn hình, kết thúc
* Để mô tả cấu trúc lặp với số lần biết trước, 2. Vòng lặp for .. in Cú pháp for <biến chạy> in <sequence>: <statements> Trong đó:
Hs: Ghi
- sequence là danh sách giá trị - Statements là khối lệnh của for Hoạt động: Vòng lặp for sẽ thực hiện việc lặp qua từng phần tử của <sequence> và với mỗi phần tử tìm được thì các câu Gv: Nêu công thức về dạng lặp lùi lệnh <statements> sẽ được thực thi. Hs: Ghi Python thường dùng trong vòng lặp đó là range() và xrange() để tạo ra sequence (danh sách giá trị) cho biến chạy Hàm range(): tạo ra một list các giá trị Gv: Giải thích cấu trúc từng câu số nguyên lệnh Cú pháp Hs: Quan sát- ghi range([start], <stop>, [step]) Hoạt động 3. Lặp với số lần chưa 3. Lặp với số lần chưa biết và câu biết và câu lệnh while lệnh while... Gv: Giới thiệu cấu trúc lặp với số * Có thể xây dựng thuật toán tong_2 lần biết trước giải bài toán 2 Hs: Quan sát và ghi Bước 1: S 1/a; N 0; Bước 2: Nếu 1/(a+N)<0,0001 chuyển sang bước 5 Bước 3: N N+1; Bước 4: S S+1/(a+N) rồi quay lại bước 2 Bước 5: Đưa S ra màn hình
Gv: Đưa ví dụ có sử dụng câu trúc lặp
Gv: Hãy xác định thuật toán cho ví dụ trên.
* câu lệnh while-do có dạng Cú pháp: while expression: while-block Trong đó: - expression: là điều kiện - while-block: là khối lệnh của while Hoạt động: Chừng nào expression mang giá trị Gv: Hướng dẫn đọc sơ đồ. True, thì thực hiện toàn bộ câu lệnh trong while-block. Ngược lại, bỏ qua while-block và thực hiện câu lệnh tiếp theo. Gv: Hãy xác định thuật toán cho ví dụ trên? Hs: Ví dụ 1: Nghiên cứu sơ đồ khối cài đặt thuật toán Tong_2 (sgk 46) Sau là chương trình thuật toán Tong_2. * Ví dụ 2: Gv: Đưa ví dụ tính tổng trong ví dụ Tìm ước số chung lớn nhất của hai số bài toán 2 nguyên dương M, N Hs: Quan sát + Thuật toán: Bước 1: Nhập M, N; Bước 2: Nếu M=N thì lấy ước số chung lớn nhất rồi chuyển bước 5
Bước 3: Nếu M>N thì M M- N ngược Gv: Đưa ví dụ tìm ước số chung lớn nhất cho hai số nguyên dương M, lại N N- M; N Bước 4: Quạy lại bước 2; Hs: Quan sát Bước 5: Đưa kết quả ra màn hình, kết thúc + Chương trình: Ví dụ: In các giá trị 2, 5, 8 ra màn hình
Gv: Hãy viết thuật toán cho bài toán? Hs:
Gv: Hãy viết chương trình với thuật toán đã biết?
Gv: So sánh hai câu lệnh ghép vừa học có gì khác nhau?
Hs: Lệnh for...in... lặp lại số lần xác định, còn lệnh while không lặp lại số lần xác định
c. Sản phẩm: Kiến thức về cấu trúc lặp. d. Tổ chức thực hiện: Thực hiện trên lớp. 3. Hoạt động 3: Luyệntập a. Mục tiêu: Biết cấu trúc lặp
b. Nội dung: Yêu cầu học sinh xác định: 1. Bài toán ở dạng lặp nào ? 2. Điều kiện lặp, thao tác lặp, Số lần lặp, của mỗi bài toán tính tổng? c. Sản phẩm: cấu trúc lặp được xây dựng trên bài toán tính tổng. d. Tổ chức thực hiện: Giao cho học sinh thực hiện trên lớp. 4. Hoạt động 4: Vậndụng a. Mục tiêu: Vận dụng cấu trúc lặp để viết được bài toán được giao. b. Nội dung: BT1: Lặp với số lần đã biết; số lần lặp là t, thao tác lặp là việc tính tiền lãi, cộng lãi tính được vào gốc để tính tiếp cho tháng sau. BT2: Lặp với số lần chưa biết trước; điều kiện lặp B < A. thao tác lặp là tính lãi theo tháng, cộng lãi vào biến trung gian. Tăng số tháng lên 1. c. Sản phẩm:Chương trình được viết có sử dụng cấu trúc lặp. d. Tổ chức thực hiện:Giao cho học sinh thực hiện ngoài giờ học trên.
Tên bài dạy KIỂU DANH SÁCH LIST Môn học: Tin Học; Lớp: 11 Thời gian thực hiện:2 tiết I. MỤC TIÊU 1. Kiến thức - Hiểu khái niệm list, các thao tác với list. - Hiểu cách khai báo và truy cập đến các phần tử của list. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất
- Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu kiểu dữ liệu danh sách. a) Mục tiêu: Giúp học sinh biết được khái niệm về list 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. c) Sản phẩm: HS hoà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 I. Kiểu dữ liệu danh sách * Bước 1: Chuyển giao nhiệm vụ: (?) Ví dụ: Duy có rất nhiều sách và muốn lập một * Bước 2: Thực hiện nhiệm vụ: chương trình quản lý sách. + HS: Suy nghĩ, tham khảo sgk trả lời Chương trình cần có chức năng: câu hỏi - Lưu trữ danh sách tên các quyển sách + GV: quan sát và trợ giúp các cặp. - Thêm tên một quyển sách vào danh * Bước 3: Báo cáo, thảo luận: sách + HS: Lắng nghe, ghi chú, một HS phát - Hiện tên các quyển sách trong danh biểu lại các tính chất. sách + Các nhóm nhận xét, bổ sung cho nhau. => Ý tưởng là gì? 1) Khái niệm * Bước 4: Kết luận, nhận định: GV • Danh sách là một dãy hữu hạn các chính xác hóa và gọi 1 học sinh nhắc lại phần tử (có thể không cùng kiểu) kiến thức • Danh sách được đặt tên và các phần tử đều được đánh chỉ số • Các phần tử của List được phân cách nhau ra bởi dấu phẩy (,). • Được giới hạn bởi cặp ngoặc [ ], tất cả những gì nằm trong đó là những phần tử của List. Ví dụ: 2) Cách khởi tạo
Cách 1: Sử dụng cặp dấu ngoặc[] đặt giá trị bên trong Cú pháp: [<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>] Ví dụ: lst = [“Toán học”, “Hình học”, “Tin học”, “Hồn rỗng”] empty_list = [] # khởi tạo list rỗng Cách 2: Sử dụng List Comprehension (bao quát) Cú pháp: [Comprehension] Ví dụ: >>> a = [kteam for kteam in range(3)] >>> a [0, 1, 2] >>> another_lst = [[n, n * 1, n * 2] for n in range(1, 4)] >>> another_lst [[1, 1, 2], [2, 2, 4], [3, 3, 6]] Ví dụ: Nhập dữ liệu cho List các phần tử cùng kiểu Cú pháp: <tênds> = [<kiểu>(<biến chạy>) for <biến chạy> in input().split()] Trong đó: <tênds>, <biến chạy>: được đặt theo quy tắc đặt tên biến <kiểu>: là kiểu int hoặc float tùy vào danh sách nhập vào là số nguyên hay thực Cách 3: Sử dụng constructor List Cú pháp: list (iterable) Lưu ý: iterable là một đối tượng nói chung của các container. (Ta đã được biết hai iterable đó chính là chuỗi, và List).
Ví dụ: >>> lst = list([1, 2, 3]) >>> lst [1, 2, 3] >>> str_lst = list('HOWKTEAM') >>> str_lst ['H', 'O', 'W', 'K', 'T', 'E', 'A', 'M'] >>> list(1) Traceback (most recent call last): Ví dụ: File "<stdin>", line 1, in <module> TypeError: 'int' object is not iterable * Hàm map() Cú pháp map(function, iterable 1, iterable 2, ...) Trong đó: - function: hàm thực thi cho từng phần tử trong iterable - iterable: một list, tuple, dictionary … muốn duyệt Ý nghĩa: - Duyệt tất cả các phần tử của một iterable (list, tuple, dictionary...) qua một hàm cho trước và trả về một list kết quả sau khi thực thi. - Giá trị trả về từ map() được gọi là map object. Đối tượng này có thể được truyền vào các hàm list() (để tạo list trong Python), hay set() (để tạo một set các phần tử mới)… 4) Đưa danh sách ra màn hình Cú pháp: for <biến chạy> in <tênds>: print(<biến chạy>) Hoặc: print(<tênds>) Hoạt động 2: Tìm hiểu các thao tác trên List trong Python a) Mục tiêu: Nắm được cách khai báo mảng một chiều 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. c) Sản phẩm: HS hoà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ụ: II. Các thao tác trên List trong Python Giải thích ví dụ rõ để học sinh phân biệt 1) Các phép toán tên kiểu mảng, tên biến mảng. Phép Ý nghĩa Ví dụ - Yêu cầu học sinh cho ví dụ về 2 cách toán khai báo trên. [“Toán học”, * Bước 2: Thực hiện nhiệm vụ: “Tin + HS: Suy nghĩ, tham khảo sgk trả lời câu Ghép nhiều học”]+[“Hóa hỏi + danh sách học”] => + GV: quan sát và trợ giúp các cặp. thành một [“Toán học”, * Bước 3: Báo cáo, thảo luận: “Tin học”, “Hóa + HS: Lắng nghe, ghi chú, một HS phát học”] biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. Tạo ra một * Bước 4: Kết luận, nhận định: GV danh sách lặp [0, 1]*3=>[0, 1, chính xác hóa và gọi 1 học sinh nhắc lại * đi lặp lại xâu 0, 1, 0, 1] kiến thức gốc với số lần nhân
in
Cho biết một phần tử có xuất hiện trong list hay không, nếu có nhận giá trị True, ngược lại nhận giá trị False
“Vật lý” in [“Toán học”, “Tin học”] False
Hàm len()
Trả về số phần tử trong danh sách
ds = [“-1”, 0 , 1, 2, “…”] len(ds) = 5
2) Đánh chỉ số và các thao tác với chỉ số trong List a) Đánh chỉ số các phần tử trong list: bắt đầu từ 0 đến độ dài list - 1 b) Tham chiếu tới phần tử của list bằng chỉ số đặt trong cặp ngoặc [ và ] Ví dụ:
ds = [“-1”, 0, 1.5, 2, “…”, 123, 23.4, “Tâm”] ds[2] = 1.5 c) Sao chép danh sách: để tạo ra một list mới là đoạn con của list gốc từ chỉ số bắt đầu đến chỉ số dừng – 1 ta viết: tên_list[vị trí bắt đầu:vị trí dừng] Ví dụ: ds = [“-1”, 0, 1.5, 2, “…”, 123, 23.4, “Tâm”] ds[1:3] = [0, 1.5] d) Thay đổi giá trị phần tử trong danh sách Ví dụ: ds = [“-1”, 0, 1.5, 2, “…”, 123, 23.4, “Tâm”] ds[0] = “---” => ds = [“---”, 0, 1.5, 2, “…”, 123, 23.4, “Tâm”] e) Chèn một phần tử vào trong danh sách Cú pháp: <List>.insert (i, x) Ý nghĩa: Thêm phần tử x vào vị trí i trong danh sách f) Sắp xếp danh sách Cú pháp: <List>.sort(key=None, reverse=False) Ý nghĩa: Sắp xếp các phần tử bằng cách so sánh trực tiếp Chú ý: • Từ khóa reverse chỉ có thể cho 2 giá trị, một là True, hai là False. Nếu là False, các phần tử được sắp xếp từ bé đến lớn, còn ngược lại là từ lớn đến bé • Các phần tử trong danh sách phải so sánh được với nhau Ví dụ: g) Thêm một phần tử vào cuối danh sách Cú pháp: <List>.append(x)
Ý nghĩa: Thêm phần tử x vào cuối danh sách
Hoạt động 3: Tìm hiểu Bài tập a) Mục tiêu: Nắm được các thao tác trên mảng một chiều 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. c) Sản phẩm: HS hoà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ụ: Bài 1: Hãy cho biết chương trình dưới đây đưa ra màn hình nội dung gì? (?) * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức Bài 2: Viết chương trình đọc vào 7 số thực tương ứng là nhiệt độ lần lượt từ thứ hai đến chủ nhật trong tuần tới, đưa ra màn hình các thông tin sau: - Các ngày có nhiệt độ dưới 10 độ - Nhiệt độ thấp nhất, cao nhất trong 7 ngày
Bài 3: Viết chương trình nhập vào số nguyên dương n và n số nguyên dương tương ứng là chiều cao của n bạn. Khi xếp hàng các bạn sẽ đứng theo thứ tự tăng dần theo chiều cao. Em hãy đưa ra màn hình dãy đã sắp xếp để thấy thứ tự xếp hàng của n bạn n=int(input("Nhập vào số nguyên dương n= ")) ls=[] print("Nhập vào chiều cao của",n,"bạn:") for x in range(1,n+1): a=float(input()) ls.append(a) print("Dãy đã sắp xếp theo thứ tự tăng dần của chiều cao ") ls.sort() print(ls) 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: GV yêu cầu HS: 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: Viết chương trình nhập dãy N số nguyên (N<=200). In giá trị của phần tử cuối và đầu của dãy số. * 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 Bài tập và thực hành 7 DỮ LIỆU KIỂU DANH SÁCH Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Về kiến thức: - Củng cố các kiến thức về: Kiểu dữ liệu danh sách, lệnh lặp, lệnh rẽ nhánh. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: nhắc lại nội dung kiến thức. B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Củng cố nội dung lý thuyết qua bài tập a) Mục tiêu: Củng cố nội dung lý thuyết 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. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Sản phẩm dự kiến Hoạt động của GV và HS * Bước 1: Chuyển giao nhiệm vụ:
Bài 1: Viết chương trình nhập vào 12 số nguyên dương tương ứng là tiền điện của 12 tháng
Yêu cầu HS hãy nêu 2 cách để khai báo mảng? Hãy giải thích các đại lượng? Cách tham chiếu đến phần tử của mảng?
năm vừa rồi của nhà em, đưa ra màn hình các thông tin sau: - Tổng số tiền điện của cả năm, trung bình mỗi tháng - Liệt kê các tháng dung nhiều hơn trung bình mỗi tháng
Cách nhập dữ liệu? Cách in dữ liệu? * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
print("Nhập vào tiền điện của 12 tháng trong năm") ls=[] for x in range(1,13): a=int(input()) ls.append(a) print("Tổng số tiền điện của cả năm ") t=0 for x in range(0,12): t=t+ls[x] print(t) print("TB mỗi tháng",t/12) print("Các tháng dùng nhiều hơn TB") for x in range(0,12): if ls[x]>t/12: print(ls[x],end=' ')
Hoạt động 2: Giải bài tập số 2 a) Mục tiêu: Giải bài tập số 5 trang 79 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. c) Sản phẩm: HS hoà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 Bài 2: làm bài tập số 5 trang 79 Như chúng ta đã biết, các phần tử trong danh * Bước 2: Thực hiện nhiệm vụ: sách không nhất thiết phải cùng kiểu, mỗi + HS: Suy nghĩ, tham khảo sgk trả lời câu phần tử có thể thuộc kiểu số hoặc kiểu xâu hỏi thậm chí là kiểu danh sách. + GV: quan sát và trợ giúp các cặp. Chương trình dưới đây sử dụng dữ liệu về * Bước 3: Báo cáo, thảo luận: tên và diện tích (đơn vị km2) của các quốc + HS: Lắng nghe, ghi chú, một HS phát gia. Mỗi phần tử của biến danh sách biểu lại các tính chất. countryList là một danh sách, trong danh + Các nhóm nhận xét, bổ sung cho nhau. sách đó mỗi phần tử là kiểu xâu hoặc là số * Bước 4: Kết luận, nhận định: GV chính nguyên hoặc là số thực. xác hóa và gọi 1 học sinh nhắc lại kiến a) Hãy tìm hiểu chương trình và giải thức thích kết quả ra màn hình b) Hãy tìm hiểu them dữ liệu về tên và diện tích của 3 quốc gia khác và thêm vào danh sách, hiện danh sách sau khi thêm c) Liệt kê tên các quốc gia có diện tích lớn hơn một triệu km2. Bài 2: chương trình câu a
Chương trình câu a, b, c:
cn=[["Hoa Kỳ",9525067],["Nga",17098246],["Việt Nam",331212]] print(cn[2]) cn.insert(2,["Singapore",752.7]) print(cn) for x in range(len(cn)): print(cn[x][0]) # câu b cn.insert(2,["Đức",357022]) cn.insert(2,["Canada",9984670]) cn.insert(2,["Pháp",643801]) print(cn) # câu c print("Các quốc gia có diện tích lớn hơn 1 triệu km2 là:") for x in range(len(cn)): if cn[x][1]>1000000: print(cn[x]) 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Cấu trúc lệnh: While ... do ... và For ... do ... 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 ..................................................................................................................................... .....................
Bài tập và thực hành 8 DỮ LIỆU KIỂU DANH SÁCH (tiếp) Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức - Củng cố kiến thức về dữ liệu kiểu danh sách. - Xây dựng cấu trúc dữ liệu, thuật toán giải bài toán đơn giản. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu dãy số Fibonacci. a) Mục tiêu: Nhắc lại kiến thức đã học liên quan bài thực hành. 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. c) Sản phẩm: HS hoà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ụ: Nêu cách khai báo kiểu mảng 1 chiều. Nhập từ bàn phím xây dựng mảng một chiều A có 6 phần tử. * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Bài 1: Dãy Fibonacci là dãy số nguyên dương được định nghĩa như sau: f1 = f2 = 1, ∀ i : 3 ≤ i : fi = fi-1 + fi-2 Viết chương trình tìm phần tử thứ n (n <= 100) của dãy Fibonacci có sử dụng mảng Input
Output
4
3
10
55
30
832040
100
354224848179261915075
n=int(input("Nhập n = ")) f=[1,1] for x in range(1,n-1): f.append(f[x]+f[x-1]) print("Phần tử thứ ",n,"=",f[n-1]) Bài 2: Nhập vào số nguyên dương n <= 105 và dãy các số nguyên dương a1, a2, …, an . a) Đếm số lượng các số nguyên tố trong dãy trên có sử dụng hàm kiểm tra một số là số nguyên tố b) Tìm ước chung lớn nhất của a1, a2, …, an. import math def nt(k): if k==1: return False else: i=2 while (i<=math.trunc(k**0.5))&(k%i!=0): i=i+1 if i>math.trunc(k**0.5):
return True else: return False n=int(input("Nhập n = ")) a=[] for x in range(n): a.append(int(input())) dem=0 for x in range(0,n): if nt(a[x]): dem=dem+1 print("Số lượng số nguyên tố =",dem) # câu b def ucln(x,y): r=x%y while r!=0: x=y; y=r; r=x%y return y for i in range(0,n-1): u=ucln(a[i+1],a[i]) print("UCLN=",u) Hoạt động 2: Tìm hiểu và giải bài toán 3. a) Mục tiêu: Xác định bài toán và tìm hiểu chương trình. 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. c) Sản phẩm: HS hoà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ụ: Bài 3: Nhập vào số nguyên dương n <= 1018, 1. Chiếu đề bài lên bảng. chuyển đổi số nguyên dương n sang hệ nhị 2. Xác định bài toán phân có sử dụng mảng Y/cầu hs xác định dữ liệu vào/ra của bài toán? n=int(input("Nhập n = ")) Tìm hiểu chương trình a=[] * Bước 2: Thực hiện nhiệm vụ: while n//2!=0: + HS: Suy nghĩ, tham khảo sgk trả lời câu a.append(n%2) n=n//2 hỏi a.append(n%2) + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: print("Dãy nhị phân là:") for x in range(len(a)-1,-1,-1):
+ HS: Lắng nghe, ghi chú, một HS phát print(a[x],end='') biểu lại các tính chất. + Các nhóm nhận xét, bổ sung cho nhau. Bài 4: Viết chương trình nhập số nguyên * Bước 4: Kết luận, nhận định: GV dương n, số nguyên dương v (n <= 105, v ≠ chính xác hóa và gọi 1 học sinh nhắc lại 0) và dãy các số nguyên A = {a1, a2, …, an}. kiến thức 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. c) Sản phẩm: HS hoà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 = ")) print("Nhập dãy a[0..n] gồm",n+1,"số:") a=[]
+ HS: Suy nghĩ, tham khảo sgk trả lời for x in range(0,n+1): a.append(float(input())) câu hỏi # cách 1 + GV: quan sát và trợ giúp các cặp. * Bước 3: Báo cáo, thảo luận: b=[] + HS: Lắng nghe, ghi chú, một HS phát for x in range(len(a)): biểu lại các tính chất. if a[x]!=a[i]: b.append(a[x]) + Các nhóm nhận xét, bổ sung cho print(b) nhau. * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại Cách 2: kiến thức 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ố nguyên 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học 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 I. MỤC TIÊU 1. Về kiến thức - Biết được một kiểu dự liệu mới, biết được khái niệm kiểu xâu. - Phân biệt được sự giống và khác giữa kiểu mảng với kiểu xâu. - Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu. - Biết các phép toán liên quan đến xâu. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: - Bài toán đặt vấn đề: Nhập vào họ tên của 1 học sinh từ bàn phím, in kết quả ra màn hình. - Nếu bài toán yêu cầu nhập vào họ tên của 5 học sinh, thì ta sẽ phải tạo 5 mảng để lưu họ tên của 5 học sinh. Vậy nếu là 20, 50 học sinh thì sẽ mất thời gian. - NNLT Pascal đưa ra một kiểu dữ liệu mới : Kiểu xâu B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu về xâu và quy ước về xâu. a) Mục tiêu: Nắm được về xâu và quy ước về xâu 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ:
Sản phẩm dự kiến I. Dữ liệu kiểu xâu
Xét bài toán dịch từ ngôn ngữ tiếng Anh 1. Khái niệm: - Xâu là dãy các kí tự trong bảng mã Unicode và được đặt sang ngôn ngữ tiếng Việt trong cặp dấu nháy đơn hoặc dấu nháy Input: ? kép Output: ? - Mỗi kí tự được gọi là một phần tử của xâu. - Đưa ra một ví dụ minh hoạ. Sau đó yêu cầu học sinh tìm hiểu và trả lời về định nghĩa xâu? VD: 'tin hoc' '2014' 'THPT Hang Hai?'
- Số lượng kí tự trong xâu được gọi là độ dài của xâu - Xâu có độ dài bằng 0 là xâu rỗng b) Ví dụ: - Xâu “I am a robot” có độ dài 12 - Xâu “Tôi là người máy” có độ dài 16
GV hỏi HS đọc SGK trả lời - Độ dài xâu được xác định ntn?
2) Cách tạo một biến kiểu xâu
- Xâu rỗng là xâu ntn?
Cách 1: Dùng lệnh gán:
- Chỉ số phần tử được đánh ntn?
Ví dụ: E = “I am a robot”
- Cách tham chiếu đến một phần tử của Cách 2: xâu ntn? GV đưa ra 3 VD yêu cầu HS quan sát, nhận xét và trả lời + 'Tin hoc' là xâu có độ dài bằng bao nhiêu? + ' ' là xâu gì?
<Tên biến> = input()
Ví dụ: s = input(“Nhập vào 1 xâu từ bàn phím)
+ Giả sử biến xâu hoten lưu giá trị hằng xâu 'Le Thu Ha' muốn tham chiếu đến kí tự 'T' thì viết ntn? * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức Hoạt động 2: Tìm hiểu các thao tác xử lí xâu. a) Mục tiêu: Nắm được 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. c) Sản phẩm: HS hoà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ụ: II. Các thao tác xử lý xâu GV: đưa ra cú pháp của phương pháp 1) Các phép toán khai báo biến xâu, sau đó lấy ví dụ a) Phép ghép xâu: kí hiệu là dấu (+) minh hoạ và yêu cầu HS nhận xét? dùng để ghép nhiều xâu thành 1 xâu * Bước 2: Thực hiện nhiệm vụ: b) Phép nhân xâu (*) tạo ra một xâu lặp + HS: Suy nghĩ, tham khảo sgk trả lời câu đi lặp lại xâu gốc với số làn nhân hỏi Ví dụ: “Tâm” * 3 => “Tâm tinTâm tinTâm + GV: quan sát và trợ giúp các cặp. tin” * Bước 3: Báo cáo, thảo luận: + HS: Lắng nghe, ghi chú, một HS phát c) Phép so sánh: ==, != (khác), <, >, >=,<= được thực hiện theo quy tắc: 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
• Xâu A > xâu B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang phải trong xâu A có mã lớn hơn (trong bảng mã Unicode 16 bit) • Ví dụ: “Tin học” < “Toán học” • Xâu A và B có độ dài khác nhau và B là phần đầu của A thì A lớn hơn B • Ví dụ “Tin học” > “Tin” • Hai xâu bằng nhau nếu chúng giống hoàn toàn d) Phép toán in: cho biết xâu thứ nhất có xuất hiện trong xâu thứ 2 hay không? Có là True, ngược lại là False Ví dụ: “học” in “Tin học” =>True “họcTin” in “Tin học” * 3 =>True “TIN” in “Tin học” =>False 2. Đánh chỉ số và các thao tác với chỉ số trong xâu a) Đánh chỉ số các kí tự trong xâu: bắt đầu từ 0 đến độ dài xâu - 1 b) Tham chiếu tới phần tử xâu: tên_xâu[chỉ số] c) Sao chép xâu: tên_xâu[vị trí bắt đầu:vị trí dừng] Tạo một xâu mới là đoạn con của xâu gốc từ vị trí bắt đầu đến vị trí dừng - 1 S = “Hoàng Thanh Tâm” S[1] = “o” s = S[6:11] = “Thanh” 3. Một số hàm, thủ tục trên xâu a) Hàm len(): trả về độ dài xâu b) Hàm str(): chuyển đổi dữ liệu ở dạng số sang dạng xâu Ví dụ: str(21) => “21”; str(34.21) => “34.21” c) Hàm int(), float(): tương ứng chuyển đổi dữ liệu ở dạng xâu sang dạng số nguyên hay số thực
Ví dụ: int(12) =>12; int(12.56) => 12 float(12.56) => 12.56; float(12) => 12.0 d) Hàm lower(): chuyển xâu thành in thường Ví dụ: S=“ABC” Print(S.lower()) # “abc” e) Hàm upper(): chuyển xâu thành in hoa S=“abc” Print(S.upper()) # “ABC” f) Hàm split(): tách xâu thành các xâu con cách nhau bởi dấu cách S=“lop6a lop6b” Print(S.split()) # hai xâu con nhận được là “lop6a” và “lop6b” Hoạt động 3: Tìm hiểu cách nhập/xuất dữ liệu cho biến xâu a) Mục tiêu: Nắm được cách nhập/xuất dữ liệu cho biến xâu 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. c) Sản phẩm: HS hoà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ụ: GV: đưa ra một chương trình làm VD minh hoạ (Bảng phụ)
Bài 1: Chương trình dưới đây đưa ra màn hình nội dung gì?
print(‘123’*3) print(int(‘123’)*3)
* 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 2: Cho biết chương trình sau thực hiện công việc gì?
+ 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Bài 3: Viết chương trình nhập một xâu và viết xâu đó theo chiều dọc. Ví dụ:
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Hãy lựa chọn đáp án đúng sai 1.Xâu là dãy các kí tự trong bộ mã ASCII có độ dài không quá 255. 2.Xâu rỗng là xâu chỉ có một kí tự cách trống. 3.Tham chiếu đến kí tự đầu của xâu lưu giữ trong biến st là: st[1]; 4.Có thể gán giá trị là một kí tự cho một biến xâu kí tự. 5.Khai báo biến xâu st có độ dài tối đa 26 là: Var st: string[26]; 6.'Hai'+' '+'Phong' ='HaiPhong' 7.Nhập dữ liệu cho biến xâu st chỉ có một dấu cách: Read(st); 8.In giá trị của biến xâu st ra màn hình là: Write(st) 9.'Tin Hoc'>'Tin hoc' 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ãy khai báo các biến xâu: hoten, st1, st2, st3 với độ dài xâu lớn nhất tương ứng là 260, 255, 0, 45. Hãy nêu sự giống và khác nhau giữa mảng một chiều và xâu Xem trước một số hàm và làm việc với xâu và các ví dụ trang 71,72 trong SGK * 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 BÀI TẬP VÀ THỰC HÀNH 6 DỮ LIỆU KIỂU XÂU Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU: 1. Kiến thức: - Củng cố lại kiến thức về xâu kí tự 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh
b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu bài tập a) Mục tiêu: . 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. c) Sản phẩm: HS hoà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ụ: * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Bài 1: Một từ được gọi là đặc biệt nếu đọc từ đó từ trái sang phải cũng giống như đọc tên đó từ phải sang trái. Ví dụ: “mom”, “madam” hay “noon” là các từ đặc biệt Viết chương trình nhập một xâu và kiểm tra xem từ đó có phải từ đặc biệt không Input
Output
a
YES
nan
YES
tloolt
YES
nabn
NO
1234abab4321
NO
n=input('vào 1 xâu = ') x=0 while (n[x]==n[len(n)-1x])&(x<=len(n)//2): x=x+1
if x>len(n)//2: print("YES") else: print("NO") Bài 2: Viết chương trình nhập một xâu và kiểm tra xem trong xâu đó có xuất hiện “Covid-19” để xem nội dung đó có liên quan đến Covid-19 không? Đưa ra màn hình thông báo “YES” hoặc “NO” tương ứng với câu trả lời là khẳng định hoặc phủ định n=input('vào 1 xâu = ') if "Covid-19" in n: Input
Output
Cách phòng ngừa Covid-19
YES
Dịch bệnh viêm đường hô hấp cấp do chủng mới của virus corona gây ra (Covid19) là đại dịch toàn cầu
YES
Dịch bệnh viêm đường hô hấp cấp do chủng mới của virus corona gây ra là đại dịch toàn cầu
NO
print("YES") else: print("NO") Bài 3: Viết chương trình nhập một câu và cho biết câu đó có bao nhiêu từ
n=input('vào 1 câu = ') a=n.split() print("số từ trong câu là:",len(a))
Input
Output
Số dư tài khoản: 200 VND
0
Bài 4: Tin nhắn nhà mạng gửi về điện thoại của bố em có dạng “Số dư tài khoản: *VND”, trong đó dấu * được thay thế là số tiền. Nhà mạng quy định
Số dư tài khoản: 123456 VND
411
Số dư tài khoản: 1234560 VND
4115
Số dư tài khoản: 12345600 VND
41152
giá cước một tin nhắn cơ bản là 300VND. Em hãy viết một chương trình nhập một tin nhắn của nhà mạng gửi về điện thoại của bố em và đưa ra số tin nhắn cơ bản mà bố có thể nhắn với số dư hiện tại (a[x].isdigit()==False nếu không phải là xâu chứa số):
Input
Output
t
t
tin
nit
tin hoc
coh nit
a=n.split()
ab 12 ba
ab 21 ba
x=0
n=input('vào 1 tin nhắn = ')
while (x len(a))&(a[x].isdigit()==False):
<=
x=x+1 print(int(a[x])/300)
Bài 5: Đọc vào một xâu kí tự S. Đưa ra đảo ngược của xâu đó
Bài 6: Cho xâu kí tự S. Thống kê các chữ số ‘0’, số chữ số ‘1’, …, số chữ số ‘9’ trong xâu
s=['0','1','2','3','4','5','6','7','8','9'] n=input('vào 1 xâu = ') for i in range(0,10): d=0 for x in range(0,len(n)): if s[i]==n[x]: d=d+1 print("Chữ số",int(s[i]),":",d) 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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: Ý nghĩa của việc sử dụng thủ tục và hàm. 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 DỮ LIỆU TIỆP Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết
I. MỤC TIÊU 1. Kiến thức: - Biết khái niệm về kiểu dữ liệu tệp. - Biết các lệnh khai báo tệp văn bản. - Biết các bước làm việc với tệp: - Biết một số hàm và thủ tục chuẩn làm việc với tệp. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu về kiểu dữ liệu tệp a) Mục tiêu: Nắm được về kiểu dữ liệu tệp 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. c) Sản phẩm: HS hoà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ụ:
I. Vai trò của kiểu tệp Tất cả các dữ liệu thuộc các kiểu dữ liệu * Bước 2: Thực hiện nhiệm vụ: đã học đều được lưu trữ ở bộ nhớ RAM + HS: Suy nghĩ, tham khảo sgk trả lời và do đó dữ liệu sẽ bị mất khi tắt máy câu hỏi => Với bài toán có khối lượng dữ liệu + GV: quan sát và trợ giúp các cặp. lớn, có yêu cầu lưu trữ để xử lí nhiều lần, * Bước 3: Báo cáo, thảo luận: cần có kiểu tệp + HS: Lắng nghe, ghi chú, một HS phát Đặc điểm của kiểu tệp: biểu lại các tính chất.
+ Các nhóm nhận xét, bổ sung cho nhau.
• Dữ liệu được lưu trữ lâu dài ở bộ nhớ ngoài và không bị mất khi tắt * Bước 4: Kết luận, nhận định: GV nguồn điện chính xác hóa và gọi 1 học sinh nhắc lại • Lượng dữ liệu lưu trữ trên tệp có kiến thức thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa 2) Phân loại tệp Trong Python, file có 2 loại: • Text File · Được cấu trúc như một dãy các dòng, mỗi dòng bao gồm một dãy các kí tự và một dòng tối thiểu là một kí tự dù cho dòng đó là dòng trống. · Các dòng trong text file được ngăn cách bởi một kí tự newline và mặc định trong Python chính là kí tự escape sequence newline \n. • Binary File · Các file này chỉ có thể được xử lí bởi một ứng dụng biết và có thể hiểu được cấu trúc của file này. · Và chúng ta ở đây với mức độ cơ bản chỉ xử lí text file. Hoạt động 2: Tìm hiểu các thao tác cơ bản với tệp a) Mục tiêu: Nắm được Khai báo tệp và các thao tác cơ bản với tệp 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 c) Sản phẩm: HS hoà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ụ: * 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: + 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.
II. Thao tác với tệp văn bản 1) Mở tệp để đọc Cú pháp: <biến tệp> = open(tên_tệp, mode=’r’) 2) Mở tệp để ghi Cú pháp: <biến tệp> = open(tên_tệp, mode=’w’) Ví dụ: f = open(‘vd.inp’, ‘r’) g = open(‘vd.out’, ‘w’) 3) Đọc và ghi tệp
* Bước 4: Kết luận, nhận định: GV • Phương thức readline chính xác hóa và gọi 1 học sinh nhắc lại Cú pháp: <File>.readline() kiến thức Công dụng: · Chỉ đọc một dòng có nghĩa là đọc tới khi nào gặp newline hoặc hết file thì ngừng. · Con trỏ file cũng sẽ đi từ dòng này qua dòng khác. · Kết quả đọc được trả về dưới dạng một chuỗi. · Nếu không đọc được gì, phương thức sẽ trả về một chuỗi có độ dài bằng 0 Ví dụ: f = open(‘vd.inp’, ‘r’) s = f.readline() Chú ý: muốn đọc 1 số nguyên làm như sau s = int(f.readline() Phương thức write Cú pháp: <File>.write(text) Công dụng: Phương thức này sẽ trả về số kí tự mà chúng ta ghi vào. Ví dụ: g = open(‘vd.out’, ‘w’) g.write(s) Lưu ý: Mỗi lần sử dụng write. Con trỏ file sẽ được đặt ngay sau kí tự cuối cùng được ghi • Để ghi dữ liệu trên nhiều dòng, ta có thể xuống dòng bằng câu lệnh • <File>.write(t”\n”) Đóng tệp • Cú pháp: <File>.close() • Ví dụ: f.close() g.close() Ví dụ:
Đọc từ tệp text vd.inp một mảng a gồm các số nguyên dương. Tính tổng các phần tử trong mảng và ghi kết quả ra tệp văn bản vd.out Hướng dẫn: - Đọc chuỗi trong tệp ra - Tách chuỗi thành các số nguyên - Tính tổng - Ghi vào tệp
Hoặc: f=open("FPRIME.inp",'r') g=open("FPRIME.out",'w') n=int(f.readline()) i=2 while n>1: while n%i==0: g.write(str(i)+" ") n=n//i i=i+1 f.close() g.close()
Bài tập Bài 1: Cho 3 số nguyên dương p, q, r Yêu cầu: Kiểm tra 3 số này, theo thứ tự có tạo thành một cấp số nhân hay không. Nếu có thì in ra “YES”, ngược lại thì in ra “NO” Dữ liệu vào: Từ file văn bản MULSEQ.INP: - Gồm một dòng chứa 3 số nguyên dương p, q, r (p, q ≤ 109). Các số viết cách nhau một dấu cách Dữ liệu ra: Ghi ra file văn bản MULSEQ.OUT - Gồm 1 dòng ghi YES hoặc NO tương ứng với kết quả của bài toán dãy số là cấp số nhân hay không là cấp số nhân f=open("MULSEQ.inp",'r') g=open("MULSEQ.out",'w') s=f.readline() p,q,r=map(int,s.split()) if q*q==p*r: g.write("YES") else: g.write("NO") f.close() g.close() Bài 2: Cho một số nguyên dương n
Chương trình bài 3 f=open("GCDSEQ.inp",'r') g=open("GCDSEQ.out",'w') n=int(f.readline()) a=list(map(int,f.readline().split())) def ucln(x,y): r=x%y while r!=0: x=y; y=r; r=x%y return y for i in range(0,len(a)-1): u=ucln(a[i+1],a[i]) g.write(str(u)) f.close() g.close()
Yêu cầu: Phân tích n thành tích các thừa số nguyên tố. In ra tích các thừa số nguyên tố theo thứ tự từ bé đến lớn Dữ liệu vào: Từ file văn bản FPRIME.INP: - Gồm một số nguyên dương n (2 ≤ n ≤ 106). Dữ liệu ra: Ghi ra file văn bản FPRIME.OUT - Gồm 1 dòng ghi ra số theo yêu cầu của đề bài, mỗi số cách nhau một dấu cách f=open("FPRIME.inp",'r') g=open("FPRIME.out",'w') n=int(f.readline()) i=2 while n>1: while n%i!=0: i=i+1 g.write(str(i)+" ") n=n//i f.close() g.close() Bài 3: Cho một dãy số nguyên dương có n phần tử Yêu cầu: Tìm ước chung lớn nhất của dãy số đó Dữ liệu vào: Từ file văn bản GCDSEQ.INP gồm: - Dòng 1: gồm một số nguyên dương n (n ≤ 1000). - Dòng 2: gồm n số nguyên dương là các phần tử của dãy số. (Các số có giá trị không vượt quá 106 và các số cách nhau 1 dấu cách) Dữ liệu ra: Ghi ra file văn bản GCDSEQ.OUT - Gồm 1 số nguyên duy nhất là ước chung lớn nhất của dãy số
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: - Nhắc lại các thao tác trên tệp văn bản? - Hãy đoán xem đoạn chương trình trên thực hiện công việc gì? 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: Trong tệp ‘bai2.txt’ trên ổ C có nội dung: 5 10 15 tương ứng với các biến a,b,c (kiểu nguyên). hãy đọc dữ liệu từ tệp ‘bai2.txt’ và tính giá trị biểu thức: T= ghi kết quả vào tệp ‘bai3.txt’ * 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 Bài 16: V Í DỤ LÀM VIỆC VỚI TỆP Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức:
- Củng cố lại kiến thức đã học về tệp, các lệnh làm việc với tệp. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu bài 1 a) Mục tiêu: Nắm được nội dung cách làm bài tập về kiểu tệp 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. c) Sản phẩm: HS hoà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 Bài 1: vụ: Cho N điểm trong mặt phẳng tọa độ Ai = (xi, yi). Chương trình này thực hiện Khoảng cách Manhattan giữa hai điểm A và B có công việc gì? Vì sao? giá trị D = |xA – xB| + |yA – yB| Giới thiệu cho HS cách tạo file Yêu cầu: Tính khoảng cách Manhattan lớn nhất int, out . Thực hiện chương giữa các cặp điểm đã cho trình để học sinh thấy kết quả. Dữ liệu vào: Từ file văn bản DISTANCE.INP: * Bước 2: Thực hiện nhiệm vụ: - Dòng 1: ghi số nguyên dương n (2 ≤ n ≤ 105). + HS: Suy nghĩ, tham khảo sgk - Dòng 2 .. N + 1: mỗi dòng 2 số nguyên thể trả lời câu hỏi hiện tọa độ của điểm (|xi|, |yi| ≤ 109). Các số + GV: quan sát và trợ giúp các viết cách nhau một dấu cách cặp. Dữ liệu ra: Ghi ra file văn bản DISTANCE.OUT * Bước 3: Báo cáo, thảo luận: - Gồm 1 số nguyên duy nhất là kết quả bài toá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 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức Chương trình
Hoạt động 2: Tìm hiểu bài 2 a) Mục tiêu: Nắm được nội dung cách làm bài 2 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. c) Sản phẩm: HS hoà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ụ: Bài 2: Xét dãy số nguyên dương khác nhau từng đôi một: a1, a2, …an, trong đó 1 ≤ ai ≤ * Bước 2: Thực hiện nhiệm vụ: 106, 1 ≤ n ≤ 105). Với số nguyên x cho trước (1 + HS: Suy nghĩ, tham khảo sgk trả ≤ x ≤ 200000). Hãy xác định số cặp (ai, aj) thỏa lời câu hỏi mãn các điều kiện: + GV: quan sát và trợ giúp các cặp. + ai + aj = x * Bước 3: Báo cáo, thảo luận: +1≤i≤j≤n + HS: Lắng nghe, ghi chú, một HS Dữ liệu vào: Từ file văn bản SUMX.INP gồm: phát biểu lại các tính chất. Dòng 1: chứa số nguyên dương n + Các nhóm nhận xét, bổ sung cho Dòng 2: chứa n số nguyên a1, a2, …an. Các số cách nhau bởi dấu cách nhau. * Bước 4: Kết luận, nhận định: Dòng 3 chứa số nguyên x GV chính xác hóa và gọi 1 học sinh Dữ liệu ra: Ghi ra file văn bản SUMX.OUT nhắc lại kiến thức một số nguyên – số cặp tìm được
Chương trình
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập.
d. Tổ chức thực hiện: 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: -Biện luận nghiệm của pt ax+b=0 BT.inp BT.out 23
-3/2
00
Pt vô số nghiệm
01
Phương trình vô nghiệm
* 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 CHƯƠNG TRÌNH CON Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết
I. MỤC TIÊU 1. Kiến thức : - Nắm được khái niệm chương trình con, lợi ích của việc sử dụng chương trình con - Cách xây dựng chương trình con.
2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: Các chương trình giải các bài nêu phức tạp thường rất dài, có thể gồm nhiều lệnh, khi đọc rất khó hình dung chương trình thực hiện những công việc gì và việc hiệu chỉnh chương trình cũng rất khó khăn. Như vậy làm thế nào để cho bài nêu phức tạp dễ đọc, dễ hiểu, dễ hiệu chỉnh, dễ nâng cấp? Do đó ta nghiên cứu vấn đề mới là CTC. B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu khái niệm chương trình con a) Mục tiêu: Nắm được khái niệm chương trình con 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ: tìm hiểu CTC là gì ? * 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: + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất.
Sản phẩm dự kiến 1.Khái niệm chương trình con a) Khái niệm: Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể thực hiện (được gọi) từ nhiều vị trí trong chương trình b) Lợi ích của chương trình con - Tránh việc lặp đi lặp lại cùng một dãy lệnh nào đó tương tự nhau trong một chương trình
+ Các nhóm nhận xét, bổ sung cho - Chương trình được tạo thành từ các chương trình con nên chương trình dễ nhau. * Bước 4: Kết luận, nhận định: GV đọc, dễ hiểu, dễ kiểm tra, dễ hiệu chính xác hóa và gọi 1 học sinh nhắc chỉnh và phát triển lại kiến thức 2. Cách xây dựng chương trình con trong Python Cú pháp def <function_name>(parameter_1, parameter_2, .., parameter_n): function-block Trong đó: • def: từ khóa • <function_name>: là tên hàm (bắt buộc phải có) • parameter_1, parameter_2, .., parameter_n: là các tham số (không bắt buộc) • function-block: Khối lệnh của hàm có lề thụt vào so với lề từ khóa def Gọi hàm Cú pháp: <function_name>(parameter_1, parameter_2, .., parameter_n) Ví dụ: Viết chương trình con kiểm tra một số có là nguyên tố hay không? Cụ thể: Chương trình con sẽ nhận vào một số nguyên và trả lại giá trị bằng 1 nếu số đó là số nguyên tố, ngược lại trả lại giá trị bằng 0
Hoạt động 2: Tìm hiểu phân loại chương trình con a) Mục tiêu: Nắm được các loại và cấu trúc của chương trình con.
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. c) Sản phẩm: HS hoà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ụ:
2. Phân loại chương trình con.
* Bước 2: Thực hiện nhiệm vụ:
Chương trình con thường gồm 2 loại
+ HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi
- Thủ tục: là chương trình con thực hiện thao tác nhất định nhưng không trả về giá trị nào qua tên gọi Ví dụ: print() thủ tục chuẩn
+ 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 chính xác hóa và gọi 1 học sinh nhắc lại kiến thức
zero(), two() thủ tục do người dùng định nghĩa - Hàm: là chương trình con thực hiện một số thao tác nào đó và trả về giá trị qua tên gọi Ví dụ: Hàm có sẵn: .int(x): trả về phần nguyên của số x .float(x): chuyển x thành kiểu số thực .min(x, y): trả về giá trị nhỏ nhất trong hai số x, y .max(x, y): trả về giá trị lớn nhất trong hai số x, y … Hàm do người dùng định nghĩa: Hàm kt() trong ví dụ trên Lệnh return: trả về giá trị cho hàm và thoát ra khỏi hàm
Bài 1: Hãy tìm hiểu chương trình dưới đây và trả lời các câu hỏi: 1) Chương trình có xây dựng chương trình con tên là gì? Chương trình con đó là hàm hay thủ tục? Có tham số truyền vào không? Mục đích của chương trình con là gì? 2) Chương trình chính gọi chương trình con mấy lần? Kết quả ra màn hình như thế nào
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: HS nêu khái niệm CTC, lợi ích việc sử dụng CTC 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.
Bài 2: Chương trình dưới đây có xây dựng hàm tính số pi có truyền vào một tham số là số lượng số hạng được xét. Em hãy viết tiếp câu lệnh print để đưa ra màn hình só pi được tính xấp xỉ khi xét đến số hạng thứ 123456
Bài 3: Xây dựng thêm hai chương trình con one() và three() như trong ví dụ 1 để ghi ra màn hình như sau: Thực hiện các lệnh gọi chương trình con để ghi ra màn hình 2021 và 2023
Bài 4: Một nhóm gồm n người xếp thành một hàng ngang để chụp ảnh. Người chụp ảnh biết rằng có n! = 1x2x…xn cách xếp n người thành một hàng ngang. Viết một hàm có truyền vào một tham số là một số nguyên dương n để tính n! với n = 10 và n = 20 * HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Xem trước phần - Biến cục bộ, biến toàn cục. - Tham số hình thức, tham số thật sự. * RÚT KINH NGHIỆM ..................................................................................................................................... .....................
Trường: THPT THĂNG LONG Tổ: LÝ - CN
Họ và tên giáo viên Hoàng Thị Thanh Tâm
Tên bài dạy CHƯƠNG TRÌNH CON (tiếp) Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 1 tiết I. MỤC TIÊU 1. Kiến thức : - Sự khác biệt cơ bản giữa hàm và thủ tục . - Biết được mối quan hệ giữa tham số hình thức và tham số thực sự . - Biến cục bộ, biến toàn bộ : Cách khai báo và phạm vi sử dụng . 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất - Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu Tham số hình thức và tham số thực sự a) Mục tiêu: Nắm được khái niệm chương trình con 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. c) Sản phẩm: HS hoà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 * Bước 1: Chuyển giao nhiệm vụ: tìm hiểu CTC là gì ? * 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: + 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ính xác hóa và gọi 1 học sinh nhắc lại kiến thức
Sản phẩm dự kiến 1. Tham số hình thức và tham số thực sự Bài 1: Hãy tìm hiểu chương trình dưới đây và trả lời các câu hỏi: 1) Chương trình có xây dựng chương trình con tên là gì? Chương trình con đó là hàm hay thủ tục? Có tham số truyền vào không? Mục đích của chương trình con là gì? 2) Chương trình chính gọi chương trình con mấy lần? Kết quả ra màn hình như thế nào
a) Tham số hình thức • Là tham số được liệt kê trong cặp dấu ngoặc đơn sau phần tên chương trình con • Ví dụ: biến a là tham số hình thức b) Tham số thực sự Là tham số được truyền vào (nếu có) khi gọi chương trình con Tham số thực sự có thể là một giá trị cụ thể hoặc là 1 biến hoặc là 1 biểu thức. Ví dụ: tham số thực sự chính là 100, -100 khi ta gọi chương trình con ab() trong ví dụ trên Hoạt động 2: Tìm hiểu Biến cục bộ và biến toàn bộ a) Mục tiêu: Nắm được các Biến cục bộ và biến toàn bộ. 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. c) Sản phẩm: HS hoà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 2. Biến cục bộ và biến toàn bộ Xét chương trình tính diện tích của tam giác bằng công thức Heron theo ba cạnh của tam giác a) Em hãy cho biết đâu là tham số hình thức và đâu là tham số thực sự b) Chương trình có sử dụng những biến nào
a) Biến cục bộ - Là biến được tạo ra trong chương trình con và sẽ chỉ được sử dụng trong chương trình con đó - Ví dụ: biến cục bộ là: p, s
b) Biến toàn cục
Làm như này là sai
• Là biến được tạo ra ở bên ngoài chương trình con. Chúng ta có thể sử dụng nó ở bên ngoài và bên trong chương trình con • Ví dụ: xét các chương trình thực hiện việc tăng A lên 1 đơn vị
Như này là sai
Phải làm như sau:
Chú ý: • Chúng ta có thể sử dụng giá trị của biến toàn cục ở trong hay ngoài chương trình con • Nếu muốn thay đổi giá trị của biến toàn cục ở trong chương trình con thì phải khai báo global trước khi dùng Bài 1: Hãy dự đoán chương trình dưới đây đưa ra màn hình những gì
Bài 2: Viết chương trình nhập vào 4 số thực xa, ya và xb, yb tương ứng là tọa độ hai điểm A và B trên mặt phẳng tọa độ Oxy, đưa ra màn hình độ dài các đoạn thẳng AB, OA, OB. Chương trình có xây dựng chương trình con Distance ồm 4 tham số xa, ya, xb, yb để tính độ dài đoạn thẳng nối hai điểm có tọa độ (xa, ya) và (xb, yb)
xa=float(input("Nhập xa= ")) ya=float(input("Nhập ya= ")) xb=float(input("Nhập xb= ")) yb=float(input("Nhập yb= ")) def kc(x1,y1,x2,y2): s=((x2-x1)**2+(y2-y1)**2)**0.5 return s print("Độ dài đoạn thẳng AB=",kc(xa,ya,xb,yb))
Input
Output
1145
5.0
1245
4.242640687119285
1.4 2.6 4.1 5
3.612478373637688
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: HS nêu khái niệm CTC, lợi ích việc sử dụng CTC 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. Bài 3: Viết chương trình nhập vào số nguyên dương a, hãy vẽ hình chữ nhật kích thước a x 10 bằng các dấu * Ví dụ: a = 4 **********
* * * * ********** Chương trình có xây dựng chương trình con drawBox có tham số a Bài 4: Một mảnh đất có dạng hình tứ giác lồi với bốn góc liệt kê theo chiều kim đồng hồ có tọa độ tương ứng là (Ax, Ay), (Bx, By), (Cx, Cy), (Dx, Dy). Hãy tính diện tích mảng đất đó Input
Output
00
20.499999999999996
15 54 50 * HƯỚNG DẪN VỀ NHÀ: - Ôn lại bài học hôm nay; - Xem trước phần - Biến cục bộ, biến toàn cục. - Tham số hình thức, tham số thật sự. * RÚT KINH NGHIỆM ..................................................................................................................................... Tên bài dạy BÀI TẬP VÀ THỰC HÀNH 5 CHƯƠNG TRÌNH CON Môn học: Tin Học; Lớp: 11 Thời gian thực hiện: 2 tiết I. MỤC TIÊU 1. Kiến thức: - Hs tự xây dựng một số thật toán về chương trình con. - Khắc sâu thêm phần kiến thức về lý thuyết lệnh rẽ nhánh, vòng lặp. 2. Năng lực - Năng lực giải quyết vấn đề, sáng tạo. - Năng lực tự học, đọc hiểu. - Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. - Năng lực tính toán, Năng lực thực hành . 3. Phẩm chất
- Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU Giáo viên: Sách giáo khoa, máy tính điện tử. Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính III. TIẾN TRÌNH DẠY HỌC A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: B. HÌNH THÀNH KIẾN THỨC MỚI Hoạt động 1: Tìm hiểu bài 1 a) Mục tiêu: Nắm được 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. c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức d) Tổ chức thực hiện: Sản phẩm dự kiến Hoạt động của GV và HS * Bước 1: Chuyển giao nhiệm vụ: Gv:Đưa nội dung bài tập lên máy chiếu: Gv: Quan sát Hs gõ chương trình và đưa ra câu hỏi thảo luận như sau: Với hai bộ test trên thì kết quả xuất ra màn hình như thế nào?
Bài 1: Viết chương trình nhập vào số nguyên dương n và n số nguyên dương (n <= 1000). Tìm ước chung lớn nhất của n số trên có sử dụng hàm tìm ước chung lớn nhất của hai số nguyên dương
Chương trình
* Bước 2: Thực hiện nhiệm vụ: + HS: Suy nghĩ, tham khảo sgk trả lời def ucln(a,b): câu hỏi r=a%b + GV: quan sát và trợ giúp các cặp. while r!=0: * Bước 3: Báo cáo, thảo luận: a=b + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất. b=r
+ Các nhóm nhận xét, bổ sung cho nhau. * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức
r=a%b return b n=int(input("Nhập n = ")) m=[] for x in range(1,n+1):
Input
Output
d=int(input("Nhập vào số x= "))
4 2468
2
m.append(d)
4 1245
1
for x in range(0,n-1): uc=ucln(m[x],m[x+1]) print("ước chung lớn nhất=",uc)
Hoạt động 2: Tìm hiểu bài 2 a) Mục tiêu: Nắm được bài 1 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. c) Sản phẩm: HS hoà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ụ: Bài 2: Nhập vào số nguyên dương n (n <= Gv: Hãy sửa lại chương trình trên mà 105). Viết hàm kiểm tra một số có là số nguyên không sử dụng biến P? tố không, để in ra các số nguyên tố nhỏ hơn n -Quan sát rồi đưa chương trình hoàn chỉnh lên máy chiếu để Hs so sánh import math * Bước 2: Thực hiện nhiệm vụ: def ngto(k): + HS: Suy nghĩ, tham khảo sgk trả kt=True lời câu hỏi if k==1: + GV: quan sát và trợ giúp các cặp. return False else: * Bước 3: Báo cáo, thảo luận: x=2 + HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất. while x <= math.trunc(k**0.5): if k%x==0:
kt=False + Các nhóm nhận xét, bổ sung cho x=x+1 nhau. return kt * Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc n=int(input("Nhập số n= ")) lại kiến thức for x in range(1,n+1): if ngto(x): print(x,end=' ') Input Output Bài 3: Viết hàm kiểm tra một số nguyên n có 3 23 là số nguyên tố. In các cặp số sinh đôi nhỏ hơn 1000. Các số “sinh đôi” là các số nguyên tố mà 14 2 3 5 7 11 13 khoảng cách giữa chúng là 2 1234 … import math 123456 … def ngto(k): kt=True if k==1: return False else: x=2 while x <= math.trunc(k**0.5): if k%x==0: kt=False x=x+1 return kt n=int(input("Nhập số n= ")) a=[] d=0 print("Các số sinh đôi là:") for x in range(1,n+1): if ngto(x): a.append(x) d=d+1 for x in range(0,d-1): if a[x+1]-a[x]==2: print(a[x],a[x+1]) Bài 4: Viết chương trình nhập vào số nguyên dương chẵn n từ bàn phím. Phân tích n thành tổng của hai số nguyên tố import math def ngto(k):
Input
Output
10
37 55
18
5 13 7 11
kt=True if k==1: return False else: x=2 while x <= math.trunc(k**0.5): if k%x==0: kt=False x=x+1 return kt n=int(input("Nhập số n= ")) for x in range(1,math.trunc(n/2)+1): for y in range(n,math.trunc(n/2)-1,-1): if (x+y==n)&ngto(x)&ngto(y): print(x,y)
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. c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. d. Tổ chức thực hiện: -Nhận xét buổi thực hành=>đưa ra một số lổi thường gặp khi thực hành. - Cần nắm cách khai báo biến xâu, các hàm và thủ tục xử lý xâu,... -Cần nắm thuật toán kiểm tra xâu đối xứng. 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: Bài 2, 3 (SGK/73) * 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 ..................................................................................................................................... ...................................