Lí do chọn đề tài Do yêu cầu đổi mới về phương pháp dạy học vào chương trình Tin học phổ thông và định hướng đổi mới phương pháp dạy học đã được cụ thể hóa trong chỉ thịcủa Bộ giáo dục v
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN
TRƯỜNG THPT DIỄN CHÂU 5
Nghệ An, tháng 4 năm 2022
Trang 2MỤC LỤC
Trang
PHẦN I MỞ ĐẦU……… 1
1.1 Lý do chọn đề tài……… ……… … 1
1.2 Mục đích và nhiệm vụ của đề tài……… … 2
1.3 Đối tượng và phạm vi nghiên cứu……… 2
1.4 Giới hạn của đề tài……….…… ………… 2
1.5 Phương pháp nghiên cứu……… …… 3
1.6 Bố cục của đề tài SKKN……… 3
PHẦN II NỘI DUNG ĐỀ TÀI……… 3
Chương 1 CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN……… … ……… 3
1 Cơ sở lý luận……….………… ….…… 3
1.1 Kỹ năng là gì? 3
1.2 Tại sao nên áp dụng kỹ năng lập trình để giải quyết các bài toán … 3
1.3 Vai trò của việc rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học lập trình vào thực tiễn……… 4
2 Những quan điểm của cá nhân về vấn đề xây dựng hệ thống bài tậpcó nội dung thực tiễn……… ……… …….….……… 4
3 Thực trạng của việc dạy và học lập trình hiện nay………….…….……… 5
3.1.Những khó khăn của học sinh khi học về lập trình… ……….… …… 5
3.2 Những khó khăn về ngôn ngữ lập trình……… …… ………… 5
3.3 Những khó khăn về nội dung kiến thức……… ……… 5
3.4 Những khó khăn của giáo viên trong quá trình dạy học về chủ đề này… 6
Chương 2 SỬ DỤNG MỘT SỐ BÀI TOÁN VÀ PHƯƠNG PHÁP DẠY HỌC GIÚP HỌC SINH PHÁT HUY TÍNH TÍCH CỰC THÔNG QUA MỘT SỐ BÀI TẬP CÓ NỘI DUNG THỰC TIỄN BẰNG NGÔN NGỮ PYTHON 6
1 Một số bài tập có tính thực tế trong cuộc sống……… 6
Bài tập 1: Giải phương trình bậc 2 một ẩn……….……… 6
Bài tập 2: Trả tiền điện thắp sáng……… 7
Bài tập 3: Em sinh ngày thứ mấy trong tuần? 9
Bài tập 4: Năm Âm lịch được tính như thế nào? 10
Bài tập 5: Chọn vị trí để đường chạy ngắn nhất? 11
Bài tập 6: Tìm mật khẩu cho tài liệu……… 13
Bài tập 7: Thời gian chờ……… 14
2 Một số cấu trúc và câu lệnh của Python sử dụng trong đề tài………….… 15
2.1 Câu lệnh IF ……… …… 15
2.2 Câu lệnh lặp FOR……… 18
2.3 Câu lệnh lặp WHILE……… 18
Trang 33 Một số gợi ý về phương pháp dạy học giúp học sinhphát huy tính tích
cực của học sinh thông qua một số bài tập đã được xây dựng……… 19
Chương 3 THỰC NGHIỆM SƯ PHẠM……… 20
1 Mục đích thực nghiệm sư phạm 20
2 Đối tượng thực nghiệm 20
3 Tiến hành thực nghiệm 20
3.1 Công tác chuẩn bị 20
3.2 Tài liệu thực nghiệm 21
3.3 Hiệu quả của sáng kiến kinh nghiệm 21
3.4 Kết luận chung 22
PHẦN III KẾT LUẬN VÀ KIẾN NGHỊ……… 23
1 Kết luận……… … 23
2 Kiến nghị……… … 23
2.1 Đối với giáo viên……… …… 24
2.2 Đối với tổ, nhóm chuyên môn……… 24
2.3 Đối với Ban giám hiệu nhà trường……… 24
2.4 Đối với các cấp quản lý giáo dục 24
Tài liệu tham khảo 26
Trang 4PHẦN I MỞ ĐẦU 1.1 Lí do chọn đề tài
Do yêu cầu đổi mới về phương pháp dạy học vào chương trình Tin học phổ thông và định hướng đổi mới phương pháp dạy học đã được cụ thể hóa trong chỉ thịcủa Bộ giáo dục và đào tạo đã nêu: “Phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc trưng của môn học, đặc điểm đối tượng học sinh, điều kiện của từng lớp học, bồi dưỡng cho học sinh phương pháp tự học, khả năng hợp tác; rèn luyện kĩ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú và trách nhiệm học tập cho học sinh
Hiện nay, môn Tin học trong trong trường phổ thông yêu cầu kiến thức kĩ năng trong phần lập trình là rất hạn chế, bản thân môn Tin học phổ thông không được coi trọng và không có trong danh sách các môn thi tốt nghiệp THPT hay thi vào các trường đại học, cao đẳng Vì vậy, một bộ phận không nhỏ học sinh ít quan tâm đến môn Tin học, thường có thái độ thờ ơ trong khi tầm ứng dụng vào thực tiễn cuộc sống và lao động thì lại rất lớn Đổi mới phương pháp dạy học, xây dựng chương trình giáo dục thích hợp, sử dụng ngôn ngữ lập trình ngắn gọn,
dễ viết, dễ hiểu và ứng dụng cao có thể làm công cụ để làm việc trong tương lai như Python và giải các bài toán thực tiễn sẽ đem đến hứng thú học tập cho học sinh Qua đó các em có thiện cảm hơn, nhận định đúng đắn vai trò của môn Tin học, tạo tiền đề cho cách tự học, tự nghiên cứu của học sinh
Những ứng dụng của Tin học vào thực tiễn trong chương trình và sách giáo khoa, cũng như thực tế dạy học Tin học chưa được quan tâm một cách đúng mức và thường xuyên Trong sách giáo khoa môn Tin học thường chỉ tập trung đến những vấn đề, những bài toán trong toán học; số lượng ví dụ, bài tập có nội dung liên môn và thực tế để học sinh học tập và rèn luyện còn rất ít
Trong kiến thức Tin học 11 định hướng cho học sinh về lập trình và sử dụng ngôn ngữđể giải quyết một số bài toán; tuy nhiên, sách giáo khoa chủ yếu sử dụng ngôn ngữ lập trình Pascal để giới thiệu cấu trúc, câu lệnh và các ví dụ minh họa, có chăng một ít về ngôn ngữ C++ Trong khi đó ngôn ngữ này có không ít hạn chế về khả năng giải quyết vấn đề, tính thực tiễn không cao, ít người sử dụng, học sinh không hứng thú trong việc tự học, tự nghiên cứu
Ngày nay, với sự bùng nổ của khoa học kỹ thuật và sự phát triển như “vũ bão” của công nghệ đòi hỏi một lượng không nhỏ người lao động có trình độ cao về lập trình Vì thế, định hướng cho học sinh sử dụng ngôn ngữ nào để vừa hứng thú trong quá trình học tập, vừa tự giác tìm tòi học hỏi, vừa hữu ích trong công việc tương lai lại là một vấn đề khác Python là một trong những ngôn ngữ lập trình đang được chú ý bởi tính đa dạng về ứng dụng, dữ liệu lớn, thư viện phong phú và được sử dụng rỗng rãi trên toàn cầu
Với những lí do như trên tác tôi lựa chọn đề tài:“Phát huy tính tích cực của học sinh thông qua một số bài tập có nội dung thực tiễn bằng ngôn ngữ Python” làm đối tượng nghiên cứu, nhằm nâng cao chất lượng dạy học của bản
Trang 5thân, đồng thời góp phần khơi dậy niềm đam mê và tình yêu Tin học cho học sinh, đặc biệt là tin học lập trình Giúp học sinh có phương pháp tự học, tự nghiên cứu kiến thức, phát huy tối đa năng lực vốn có của học sinh
Trong đề tài này, tôi chủ yếu tập trung khai thác những bài toán cơ bản có tính thực tiễn nhằm tạo hứng thú, vui tươi trong học tập cho học sinh Trên cơ sở
đó tìm ra các giải pháp mới và tạo nên hệ thống các bài tập thực tiễn điển hình
có tính ứng dụng cao hơn Với cách giải quyết bài toán lập trình trước đây,học sinh thường sử dụng ngôn ngữ lập trình Pascal hay C++, mà các ngôn ngữ này thường có cấu trúc phức tạp, sử dụng câu lệnh nhiều, nguồn thư viện hạn chế, tốn nhiều thời gian, sản phẩm của việc lập trình ứng dụng vào thực tiễn không cao Trong khi đó, Python được biết đến là ngôn ngữ được sử dụng phổ biến
nhất trên thế giới ngày nay (27,95% - Apr 2022), với lượng lập trình viên hùng hậu, sản phẩm được sử dụng rộng rãi (YouTube, Google, Yahoo Maps, …), là
ngôn ngữ bậc cao có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho đông đảo người lập trình và đặc biệt hơn Python cho phép người sử dụng viết mã với
số lần gõ phím tối thiểu nhất Từ đó, giúp học sinh dễ dàng nắm bắt và giải quyết các vấn đề đặt ra một cách nhẹ nhàng
1.2 Mục đích và nhiệm vụ của đề tài
- Nghiên cứu cơ sở lý luận về vấn đề rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học lập trình để giải quyết một số bài toán có nội dung thực tiễn, xây dựng hệ thống bài tập có nội dung thực tiễn trong dạy học môn Tin học
11 ở trường THPT, đồng thời đưa ra những gợi ý, lưu ý về phương pháp dạy học
hệ thống bài tập đó
- Xác định vai trò và ý nghĩa của việc rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học để giải quyết các bài toán có nội dung thực tiễn, đồng thời xây dựng hệ thống bài tập có nội dung thực tiễn nhằm đáp ứng yêu cầu rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học để giải quyết một số bài toán đó
- Đưa ra một số phương pháp dạy học giúp học sinh tiếp cận với ngôn ngữ Python, tạo hứng thú học tập thông qua một số ví dụ thực tiễn
1.3 Đối tượng và phạm vi nghiên cứu
Học sinh khối 11 và khối 12; học sinh có đam mê về lập trình; học sinh dự thi học sinh giỏi; Giáo viên giảng dạy bộ môn tin học trường THPT Diễn Châu 5 - Diễn Châu - Nghệ An
1.4 Giới hạn của đề tài
- Đề tài chỉ tập trung nghiên cứu các bài toán cơ bản về thực tiễn và các phương pháp dạy học môn Tin học THPT
- Ngôn ngữ Python chưa được xây dựng chương trình cụ thể để thực hiện dạy học rộng rãi trong trường, nên đề tài chỉ thực hiện được ở một số lớp cụ thể
Trang 61.5 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận
- Phương pháp điều tra quan sát
- Phương pháp thực nghiệm sư phạm
1.6 Bố cục của đề tài SKKN
Ngoài phần mở đầu, phần kết luận và tài liệu tham khảo, đề tài được trình bày trong 3 chương
Chương 1 Cơ sở lí luận và thực tiễn
Chương 2.Vận dụng một số phương pháp dạy học giúp học sinh hình
thành kĩ năng tìm hiểu ngôn ngữ lập trình Python
Chương 3 Thực nghiệm sư phạm
PHẦN II NỘI DUNG ĐỀ TÀI
Chương 1
CƠ SỞ LÝ LUẬN VÀ THỰC TIỄN
1 Cơ sở lý luận
1.1 Kỹ năng là gì?
Có rất nhiều khái niệm về kỹ năng theo nhà tâm lý học Liên Xô
L.Đ.Lêvitôv: “Kỹ năng là sự thực hiện có kết quả một động tác nào đó hay một
hoạt động phức tạp hơn bằng cách lựa chọn và áp dụng những cách thức đúng đắn, có tính đến những điều kiện nhất định” Theo ông những người có kỹ năng
là những người phải nắm và vận dụng một cách đúng đắn về những cách thức hành động giúp cho việc thực hiện hành động đạt được hiệu quả Đồng thời ông cũng nhấn mạnh, con người có kỹ năng không chỉ đơn thuần nắm lý thuyết và hành động mà còn phải được ứng dụng vào thực tế
1.2 Tại sao nên áp dụng kỹ năng lập trình để giải quyết các bài toán thực tế?
Chủ tịch Hồ Chí Minh lãnh tụ vĩ đại của cách mạng Việt Nam, đồng thời là nhà giáo dục lớn của dân tộc Người đã để lại cho chúng ta nhiều quan điểm
giáo dục có giá trị, trong đó quan điểm: “Học phải đi đôi với hành, lý luận phải liên hệ với thực tế” là cơ sở khoa học, phương pháp luận biện chứng, là quy luật
của sự phát triển toàn diện nhân cách con người, phát triển nền giáo dục Việt Nam hiện đại, có ý nghĩa sâu sắc trong định hướng lý luận cũng như chỉ đạo thực tiễn giáo dục, đào tạo ở các nhà trường trong hệ thống giáo dục quốc dân hiện nay
Trong giai đoạn toàn Đảng, toàn dân đang thi đua học tập và làm việc theo phong cách của Người và lời dạy đó của Bác vẫn vẹn nguyên giá trị trong lao
Trang 7động cũng như học tập Vận dụng lý thuyết để giải các bài toán thực tế để đưa vào ứng dụng trong đời sống hằng ngày đang được thu hút sự chú ý và quan tâm của học sinh ngày nay
1.3 Vai trò của việc rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học lập trình vào thực tiễn
- Trong thời đại cách mạng công nghiệp lần thứ tư (4.0) được hình thành từ
sự phát triển mạnh mẽ của các công nghệ số, cho nên công nghệ thông tin nói chung và lập trình nói riêng là mắt xích có vai trò rất quan trọng của cuộc cách mạng này Vì thế, rèn luyện cho học sinh năng lực vận dụng kiến thức Tin học lập trình vào các bài toán thực tiễn là phù hợp với xu thế phát triển chung của Thế giới cũng như ở Việt Nam chúng ta, góp phần vào sự phát triển ứng dụng Tin học công nghệ cao của toàn cầu
- Để thực hiện được nguyên tắc lý luận kết hợp với thực tiễn trong việc dạy học Tin học, cần:
+ Đảm bảo cho học sinh nắm vững kiến thức Tin học lập trình để có thể vận dụng chúng vào thực tiễn;
+ Chú trọng nêu các ứng dụng của Tin học vào thực tiễn, rèn luyện cho học sinh có những kỹ năng lập trình vững chắc;
+ Tăng cường thời gian thực hành Tin học trong nội khóa cũng như ngoại khóa
- Rèn luyện năng lực vận dụng kiến thức Tin học vào thực tiễn, giúp học sinh có kỹ năng thực hành và làm quen dần các tình huống thực tiễn
2 Những quan điểm của cá nhân về vấn đề xây dựng hệ thống bài tập
có nội dung thực tiễn
Đề tài được nghiên cứu dựa trên thực tế các tiết dạy về lập trình Tin học
11 với chủ ý làm đậm nét hơn các ứng dụng của Tin học vào thực tiễn Sáng
kiến kinh nghiệm đưa ra nhằm vào tính mục đích, tính khả thi, tính hiệu quả của
việc xây dựng hệ thống bài tập có nội dung thực tiễn
- Tính mục đích của hệ thống bài tập có nội dung thực tiễn được xác định dựa
trên cơ sở những mục đích chung của giáo dục đó là hệ thống các bài tập có nội dung thực tiễn với ý nghĩa ứng dụng rõ rệt, thông qua quá trình rèn luyện cho học sinh khả năng và ý thức sẵn sàng ứng dụng Tin học vào thực tiễn
- Tính khả thi của hệ thống bài tập có nội dung thực tiễn được hiểu là khả
năng thực hiện được (xây dựng được, sử dụng được) hệ thống bài tập này trong
thực tế dạy học ở trường THPT Diễn Châu 5 hiện nay
Trang 8- Tính hiệu quả của việc xây dựng hệ thống bài tập có nội dung thực tiễn
trong dạy học Tin học được hiểu là sự tiến bộ vững chắc, mức độ thành thạo trong việc giải các bài tập có nội dung thực tiễn của học sinh, hình thành và phát triển ở học sinh thói quen và hứng thú vận dụng kiến thức Tin học vào các tình huống trong học tập, lao động và sản xuất trong đời sống
3 Thực trạng của việc dạy và học lập trình hiện nay
3.1.Những khó khăn của học sinh khi học về lập trình
Tin học lập trình là một môn học mới ở các trường phổ thông nên học sinh còn nhiều bỡ ngỡ khi tiếp cận với môn học này Nội dung tin học lập trình lớp 11 là một nội dung mới lạ đối với đa số học sinh, với học sinh miền núi hay vùng nông thôn như trường chúng tôi việc học Toán, Ngoại ngữ đã khó nay học lập trình thì điều đó lại càng khó khăn hơn bởi nhiều khái niệm, thuật ngữ, cấu trúc dữ liệu, cú pháp, câu lệnh học sinh mới được tiếp xúc lần đầu Chính vì vậy
mà học sinh dễ mắc sai lầm khi lập trình giải quyết các bài toán Khi thực hiện giảng dạy môn Tin học lớp 11 tại Trường THPT Diễn Châu 5; tôi thấy rằng, việc học sinh lập trình để giải các bài toán trên máy tính thường gặp rất nhiều khó khăn trong việc sử dụng các câu lệnh để diễn tả các bước của thuật toán, phát hiện và sửa lỗi về cú pháp, ngữ nghĩa, v.v… Trong khi đó để viết được một chương trình hoàn chỉnh thì học sinh phải có tư duy logic về thuật toán, biết khai báo kiểu dữ liệu một cách hợp lí, biết sử dụng các câu lệnh đúng cú pháp
3.2 Những khó khănvề ngôn ngữ lập trình
- Trong chương trình Tin học 11, Pascal được sử dụng chủ đạo để dạy ngôn ngữ lập trình cho học sinh phổ thông vì hơn 30 năm trước nó không có đối thủ về mặt diễn tả thuật toán một cách trong sáng Tuy nhiên, hơn 10 năm nay, Pascal mất ưu thế về mọi mặt vì có một số nhược điểm gây khó khăn cho các em học sinh so với một số ngôn ngữ khác như:
+ Giao diện chương trình không thân thiện, dễ gây sự nhàm chán cho học sinh
+ Về mặt cú pháp nó chỉ dễ đọc đối với những học sinh các nước nói tiếng Anh
+ Không có tính thực tiễn, nên không gây hứng thú cho học sinh
+ Rườm rà, không có IDE giúp bắt lỗi cú pháp nhanh chóng
3.3 Những khó khăn về nội dung kiến thức
- Các bài tập áp dụng công thức toán học quá nhiều, học sinh phải có kiến thức tốt về toán thì mới có thể làm được các bài tập trong sách giáo khoa
- Phần lớn các bài tập chỉ liên quan đến tính toán, thuần túy về toán học, không liên quan đến thực tiễn do đó học sinh chưa hiểu được lập trình để làm gì ngoài viêc tính toán với các con số
- Không trực quan và sinh động
Trang 9- Phần lớn học sinh chỉ cố hoàn thành các bài tập giáo viên cho một cách
bị động, không kích thích tư duy tính sáng tạo, không thu hút sự chú ý của học sinh, do đó học sinh học chỉ để đối phó với môn học
- Với ngôn ngữ Pascal, học sinh khó liên hệ với việc xây dựng các ứng dụng trong thực tế, vì thế học sinh không hình dung hết vai trò của sản phẩm lập trình trong cuộc sống hàng ngày
3.4 Những khó khăn của giáo viên trong quá trình dạy học về chủ đề này
Giáo viên Tin học cấp THPT hiện nay xét về mặt bằng chung vẫn còn thiếu Nhiều trường giáo viên Tin học là các thầy cô được đào tạo chuyên ngành Toán - Tin (trong đó chương trình Toán là chủ yếu), vì thế dẫn đến việc lúng túng trong giảng dạy môn Tin học, đặc biệt là việc ứng dụng kiến thức trong sách giáo khoa vào thực tế và việc cập nhật các kiến thức mới cho học sinh Số
lượng học sinh/lớp ở các trường THPT khá cao (trung bình từ 40 đến 42 học
sinh) gây khó khăn rất lớn cho giáo viên khi hướng dẫn học sinh thực hành Bên
cạnh đó cơ sở vật chất còn thiếu và lạc hậu cũng dẫn tới chất lượng các tiết học thực hành không cao Với tâm lý là môn học “phụ”, nên nhiều giáo viên không yêu thích và đam mê với công tác giảng dạy chuyên môn, lại phải kiêm nhiệm nhiều công tác khác nên cũng không có nhiều thời gian để giáo viên đầu tư cho soạn giáo án, thiết kế chương trình đổi mới phương pháp giảng dạy hay tự bồi dưỡng chuyên môn Ngôn ngữ Pascal là một ngôn ngữ lạc hậu, tính thực tế không cao nên không thu hút sự yêu thích tìm tòi khám phá của giáo viên
Chương 2
SỬ DỤNG MỘT SỐ BÀI TOÁN VÀ PHƯƠNG PHÁP DẠY HỌC GIÚP HỌC SINH PHÁT HUY TÍNH TÍCH CỰC THÔNG QUA MỘT SỐ
BÀI TẬP CÓ NỘI DUNG THỰC TIỄN BẰNG NGÔN NGỮ PYTHON
1 Một số bài tậpcó tính thực tế trong cuộc sống
Bài tập 1: Gải phương trình bậc 2 một ẩn
Cho 3 số thực a,b,c là hệ số của phương trình ax2 + bx + c = 0 Hãy lập
trình đưa ra các tình trạng nghiệm của x (với mọi giá trị của a,b,c)
Dữ liệu: Nhập vào từ bàn phím 3 số thực a,b,c với a,b,c là hệ số của phương trình ax2 + bx + c = 0
Kết quả: In ra màn hình tình trạng nghiệm của x, mỗi trường hợp được ghi
trên 1 dòng; Các số thực được làm tròn đến 2 chữ số thập phân
Nhận xét: Đây là một bài toán rất cơ bản của lập trình, gắn liền với việc
học sinh giải toán hằng ngày trên máy tính cá nhân fx500; thông qua bài toán này, giáo viên có thể giới thiệu cho học sinh biết vì sao máy tính cá nhân cũng
có thể giải các bài toán cơ bản, đó chính là trong máy tính bỏ túi cũng đã được
Trang 10cài đặt sẵn các chương trình và các chương trình đó được cụ thể hóa bằng một ngôn ngữ lập trình bậc cao, chẳng hạn như ngôn ngữ Python
Chương trình được viết bằng Python như sau:
from math import sqrt
print ( "Giải phương trình bậc 2: ax^2 + bx + c = 0" )
a = float ( input ( "a= " ))
print ( "Phương trình có 2 nghiệm phân biệt." )
x1 = float ((-b - sqrt ( delta )) / ( 2 * a))
x2 = float ((-b + sqrt ( delta )) / ( 2 * a))
print ( "x1 = ", round (x1 , 2 ))
print ( "x2 = ", round (x2 , 2 ))
Kết quả của bộ test a = 3; b = 4; c = -7
Trang 11Bài tập 2: Trả tiền điện thắp sáng
Cho bảng giá tính tiền điện sinh hoạt hàng tháng theo giá bán lẻ của của tổng công ty điện lực EVN sau:
Yêu cầu: Tính số tiền điện phải trả cho công ty điện lực của 1 hộ gia đình
trong một tháng, biết rằng ngoài tiện điện phải trả, người dùng còn phải trả thế giá trị gia tăng (VAT) là 8%
Dữ liệu: Nhập vào từ bàn phím số nguyên dượng N (0 < N ≤ 10000) là số
kW điện mà hộ gia đình đó sử dụng trong một tháng
Kết quả: In ra màn hình 3 giá trị tương ứng với 3 dòng có cấu trúc như sau:
Dòng 1: Số tiền tương ứng với giá bán điện của EVN
Dòng 3: Tổng số tiền điện mà hộ gia đình đó phải trả trong tháng
Nhận xét: Đây là một bài toán rất thực tế, gắn liền với thực tiễn cuộc sống,
liên quan đến quyền lợi, ý thức trách nhiệm và nghĩa vụ của mỗi gia đình Hiện nay, giá tiền điện sinh hoạt của mỗi hộ gia đình phải trả hàng tháng được tính theo giá điện bậc thang lũy tiến, dùng nhiều trả tiền nhiều
Thông qua bải toán này cũng có thể giáo dục học sinh thấy được biểu giá điện bậc thang và chi phí phải trả tiền điện hàng tháng lớn như thế nào, qua đó nhằm giáo dục học sinh ý thức tiết kiệm điện trong tiêu dùng vì điện là nguồn năng lượng quý giá và luôn thiếu hụt trong sản xuất, đặc biệt vào dịp hè điện luôn yếu và thiếu thường xuyên Tiết kiệm điện cũng là tiết kiệm kinh tế cho gia đình vì dùng nhiều điện thì phải trả nhiều tiền
Chương trình được viết bằng Python như sau:
a=int(input("Nhập vào số kWh điện tiêu thụ trong
tháng:"))
if a<=50: x=a*1678
elif a<=100: x=50*1678 +(a-50)*1734
elif a<=200: x= 50*1678 + 50*1734 + (a-100)*2014
elif a<=300: x=50*1678 + 50*1734 + 100*2014 +
(a-200)*2536
elif a<=400: x=50*1678 + 50*1734 + 100*2014 +
100*2536 + (a-300)*2536
else: x=50*1678 + 50*1734 + 100*2014 + 100*2536 +
Trang 12100*2536 +(a-400)*2927
v=round(x*8/100)
tong=x+v
print()
print("Số tiền tiêu thụ điện là:",x,"VNĐ")
print("Thuế VAT: ",v ,"VNĐ")
print("Tổng tiền phải trả: ",tong,"VNĐ")
Kết quả của bộ test a = 10000
Bài tập 3: Em sinh ngày thứ mấy trong tuần?
Nhập vào ngày, tháng, năm sinh dương lịch của một em học sinh Rồi cho biết em đó sinh vào ngày thứ mấy trong tuần
Yêu cầu: Nhập vào 3 số nguyên dd (dd ≤ 31), mm (mm ≤ 12) và yy, tương
ứng của 3 giá trị ngày – tháng – năm (Dương lịch)
Kết quả: In ra dòng thông báo ngày – tháng – năm tương ứng với ngày thứ
mấy trong tuần
Nhận xét: Đây là bài toán rất thực tế và tạo hứng thú học tập cho học sinh
vì ngày sinh nhật chúng ta có thể nhớ, song mình được sinh ra ngày thứ mấy trong tuần thì ít ai biết được Vì vậy, hầu như học sinh nào cũng muốn biết mình hay bạn mình được sinh vào thứ mấy, qua đó lớp học được sôi nổi, tạo động lực học lập trình hơn cho học sinh
Với bài toán này, tôi hướng dẫn và cung cấp cho học sinh cách tính thứ trong tuần như sau:
- Năm = 1900 + năm %1900 (% phép toán chia lấy dư trong Python)
- Nếu tháng < 3 thì tháng = tháng + 12 và năm = năm – 1;
- Thứ = ABS(ngày + 2x tháng +3x(tháng +1) // 5 + năm + năm //4)%7 (//
phép toán chia lấy nguyên trong Python)
- Nếu Thứ = 0 thì in ra Chủ nhật
Chương trình được viết bằng Python như sau:
print()
print('Nhập vào ngày tháng năm Dương lịch:')
dd=int(input("Ngày:"))
mm=int(input("Tháng:"))
yy=int(input("Năm:"))
Trang 13if thu<=0: print("là ngày chủ nhật")
else: print("là ngày thứ",thu+1)
Kết quả của bộ test: ngày 30 tháng 4 năm 2022
Bài tập 4: Năm Âm lịch được tính như thế nào?
Cũng là bài toán liên quan đến ngày tháng năm, tuy nhiên bài toán lần này đơn giản hơn nhiều nhưng không phải học sinh nào cũng biết về quy tắc này Đó
là chuyển năm Dương lịch sang năm Âm lịch (Can – Chi) Xuất phát từ bài tập 4.23 trang 36 sách bài tập Tin học 11 Bài toán như sau:
Theo năm Dương lịch được biểu diễn bằng một số nguyên ứng với năm
Âm lịch lại được gọi là Can và Chi
Có tất cả 10 can: Canh, Tân, Nhâm, Quý, Giáp, Ất,Bính, Đinh, Mậu, Kỷ
Có tất cả 12 chi: Thân, Dậu, Tuất, Hợi, Tý, Sửu, Dần, Mão, Thìn, Tỵ, Ngọ, Mùi
Trang 14Hướng dẫn: Can và chi được lấy lần lượt theo chiều kim đồng hồ Ví dụ,
năm 2021 là Tân Sửu, năm 2022 là Nhâm Dần, năm 2023 là Quý Mão…trong
đó, từ đứng trước là can, từ đứng sau là chi
Can = năm % 10 (VD: 2022 % 10 = 2 → “Nhâm”)
Can[0] =”Canh”
Chi = năm % 12 (VD: 2022 % 12 = 6 → “Dần”)
Chi[0] = “Canh”
Yêu cầu: Nhập vào từ bàn phím một số nguyên dương N là năm Dương
lịch, đưa ra màn hình dòng thông báo tên gọi năm Âm lịch tương ứng
Nhận xét: Đây là bài toán khá đơn giản, tuy nhiên nó chỉ đơn giản đối với
một số người đã biết về quy tắc này đặc biệt là người lớn tuổi, với các bạn trẻ như học sinh ngày nay hầu như chỉ biết đến 12 con giáp (tương ứng với 12 chi)
Để tính can của năm âm lịch thì hầu hết học sinh không hề để ý đến; Qua bài toán này muốn gợi ý cho học sinh hiểu biết cách đổi năm Dương lịch sang năm
Âm lịch theo cách gọi truyền thống của ông cha ta xưa nay
Chương trình được viết bằng Python như sau:
print(“Năm”,n,”là năm”,Can[n%10],Chi[n%12])
Kết quả của bộ test: năm 2022
Bài tập 5: Chọn vị trí để đường chạy ngắn nhất?
Trong một buổi học trải
nghiệm của trường THPT Diễn
Châu 5, giáo viên tổ chức cuộc
thi chạy trên bãi biển với điều
kiện sau: các học sinh xuất phát
từ điểm A và đích đến là điểm B,
nhưng trước khi đến B phải
nhúng mình vào nước biển tại
điểm M Bài toán đặt ra là lựa
chọn điểm M ở đâu để tổng
chiều dài đường chạy là ngắn