Thuật toán là một cấu trúc rất quan trọng trong ngôn ngữ lập trình. Thuật toán được sử dụng để tối ưu cho máy tính thực hiện các hoạt động một cách khoa học và hiệu quả . Mọi ngôn ngữ lập trình đều cần đến thuật toán. Từ thuật toán là một trong những kiến thức cơ bản được dùng để viết chương trình máy tính. Đây là một nội dung cơ bản và quan trọng của ( bài 5 Từ bài toán đến chương trình ), đối với học sinh mới bắt đầu làm quen với lập trình. Học sinh phải nắm được sự cần thiết của thuật toán trong Pascal. Để vận dụng, viết được chương trình hoàn chỉnh giải quyết các tình huống quen thuộc.
Trang 1SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO NGA SƠN
SÁNG KIẾN KINH NGHIỆM
GIẢI PHÁP GIÚP HỌC SINH LỚP 8 NẮM VỮNG THUẬT TOÁN
THÔNG QUA MỘT SỐ VÍ DỤ MINH HOẠ
Ở TRƯỜNG THCS NGA TRUNG, NGA SƠN
Người thực hiện: Mai Thanh Nghệ Chức vụ: Giáo viên
Đơn vị công tác: Trường THCS Nga Trung SKKN thuộc môn: Tin học
THANH HOÁ NĂM 2019
Trang 2DANH MỤC VIẾT TẮT
Trang 3MỤC LỤC
2.2 Thực trạng vấn đề trước khi áp dụng sáng kiến kinh nghiệm. 2 2.2.1 Thực trạng về cơ sơ vật chất của nhà trường 2 2.2.2 Thực trạng về việc dạy và học môn Tin học ở trường THCS Nga Trung, Nga Sơn 2 2.2.3 Thực trạng về nội dung bài học “Một số ví dụ về thuật toán” trong chương trình 2 2.3 Các giải pháp đã sử dụng để giải quyết vấn đề 3 2.3.1 Vận dụng kiến thức liên môn tích hợp để giảng dạy bài học. 3
Trang 41 Mở đầu
1.1 Lí do chọn đề tài :
Thuật toán là một cấu trúc rất quan trọng trong ngôn ngữ lập trình Thuật toán được sử dụng để tối ưu cho máy tính thực hiện các hoạt động một cách khoa học và hiệu quả Mọi ngôn ngữ lập trình đều cần đến thuật toán
Từ thuật toán là một trong những kiến thức cơ bản được dùng để viết chương trình máy tính Đây là một nội dung cơ bản và quan trọng của ( bài 5
-Từ bài toán đến chương trình ), đối với học sinh mới bắt đầu làm quen với lập trình Học sinh phải nắm được sự cần thiết của thuật toán trong Pascal Để vận dụng, viết được chương trình hoàn chỉnh giải quyết các tình huống quen thuộc [ điền tài liệi minh chung]
Từ thực tế đó để học sinh có thể nắm vững được cú pháp và hoạt động của thuật toán để áp dụng giải quyết một số bài toán trong yêu cầu chuẩn kiến thức,
kỹ năng tạo điều kiện để các em có thể thành thạo viết chương trình tốt, hứng thú với những tiết học hơn, dễ hiểu và hiểu sâu nội dung bài học Đặc biệt các
em sẽ có những chuyển biến rõ rệt trong khả năng vận dụng kiến thức, kỹ năng vào thực tiễn Tôi đã mạnh dạn ứng dụng Sáng kiến kinh nghiệm “Giải pháp
giúp học sinh lớp 8 nắm vững Thuật toán “thông qua một số ví dụ cụ thể” ở trường THCS Nga Trung, Nga Sơn”.
1.2 Mục đích nghiên cứu:
- Giúp các em nắm vững kiến thức về thuật toán và đồng thời biết và hiểu
sâu hơn về cú pháp và hoạt động của thuật toán thông qua một số ví dụ về thuật toán trong ngôn ngữ Pascal
- Giúp các em gắn kết kiến thức, kĩ năng, thái độ các môn học với nhau, với thực tiễn đời sống xã hội, đồng thời tạo hứng thú, yêu thích môn học hơn
- Biết vận dụng các kiến thức để giải quyết các vấn đề thực tiễn bằng cách đưa ra thuật toán tối ưu để giải quyết vấn đề
1.3 Đối tượng nghiên cứu:
Nghiên cứu các giải pháp nhằm giúp học sinh lớp 8 nắm vững về thuật toán, qua bài “Từ bài toán đến chương trình” sao cho một cách khoa học và hiệu quả nhất
1.4 Phương pháp nghiên cứu:
Trong phạm vi đề tài này tôi đã lựa chọn một số phương pháp sau:
* Phương pháp nghiên cứu xây dựng cơ sở lý thuyết:
Thu thập thông tin từ các nguồn tài liệu đặc biệt về Chủ đề - Từ bài toán đến chương trình
* Phương pháp điều tra khảo sát thực tế, thu thập thông tin:
Khảo sát thực tế lớp trực tiếp giảng dạy khối 8
Lắng nghe, trao đổi, rút kinh nghiệm từ những nhận xét, góp ý của đồng nghiệp để trau rồi, nâng cao trình độ nghệp vụ sư phạm của bản thân
Trang 51.5 Những điểm mới của sáng kiến kinh nghiệm.
Sáng kiến này được làm, áp dụng lần đầu tại trường THCS Nga Trung, Nga Sơn và đã đem lại hiệu quả cao
2 Nội dung sáng kiến kinh nghiệm.
2.1 Cơ sở lí luận của sáng kiến kinh nghiệm.
Thuật toán hiện nay thường được dùng để chỉ thuật toán giải quyết các vấn
đề tin học Hầu hết các thuật toán tin học đều có thể viết thành các chương trình máy tính mặc dù chúng thường có một vài hạn chế (vì khả năng của máy tính và khả năng của người lập trình) Trong nhiều trường hợp, một chương trình khi thiết kế bị thất bại là do lỗi ở các thuật toán mà người lập trình đưa vào là không chính xác, không đầy đủ, hay không ước định được trọn vẹn lời giải của vấn đề
Thuật toán được mô tả theo rất nhiều cách: Trong ngôn ngữ tự nhiên (naturallanguagel), bằng sơ đồ khối (flowcharts), hoặc trong cái gọi là mã giải (pseudocode) một loại ngôn ngữ thể hiện thuật toán, không phụ thuộc vào ngôn ngữ lập trình cụ thể
Với học sinh lớp 8 thì thuật toán là một thuật ngữ mới mẻ khi được làm quen nên khả năng tiếp thu gặp nhiều khó khăn dẫn đến học sinh có tâm lý chán nản không thích học môn học này
Nắm vững được thuật toán giúp các em có kiến thức và kỹ năng về lập trình mà cụ thể là lập trình Pascal, tạo cơ sở và tiền đề cho sau này các em học tốt lập trình bằng ngôn ngữ khác
Những quan điểm, định hướng nêu trên tạo tiền đề, cơ sở lí luận của sáng kiến kinh nghiệm
2.2 Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm:
2.2.1 Thực trạng về cơ sở vật chất của nhà trường.
Hiện tại nhà trường có 01 phòng máy, với tổng số máy tính còn hoạt động được để phục vụ công tác giảng dạy môn Tin học là 15 máy Tuy nhiên số lượng này vẫn còn ít, chưa đáp ứng đủ nhu cầu học tập của học sinh 3HS/máy Mặt khác thời gian nhà trường được cấp số máy trên đã quá lâu (Từ năm 2008->đến nay) nhiều máy đã hư hỏng, xuống cấp và được sửa chữa, thay thế các linh kiện cần thiết nhưng do đời máy quá cũ nên chạy chương trình rất chậm, nhiều tính năng lạc hậu, lỗi thời…Điều này đã gây khó khăn cho giáo viên trong quá trình giảng dạy.[tl ]
2.2.2 Thực trạng về việc dạy và học môn Tin học ở trường THCS Nga Trung, Nga Sơn.
- Trong chương trình Tin học bậc THCS, lập trình Pascal là một phần học khó, rất nhiều học sinh do lần đầu tiên được học nên các em tỏ ra lúng túng, mơ hồ…khó khăn trong việc diễn đạt Từ bài toán đến chương trình bằng ngôn ngữ
tự nhiên sang câu lệnh viết trong chương trình máy tính
- Mặt khác môn Tin học là một môn học Tự chọn nên nhiều học sinh, trong đó kể cả những học sinh khá, giỏi cũng có thái độ thờ ơ, ngại trau dồi kiến thức, học đối phó, miễn cưỡng
Trang 62.2.3 Thực trạng về nội dung bài học “Một số ví dụ về thuật toán” trong
chương trình.
Thuật toán là một nội dung cơ bản và quan trọng trong bài 5 của chương trình Tin học 8 Các em phải nắm được sự cần thiết của thuật toán, biết rằng mọi ngôn ngữ lập trình đều có cấu trúc từ thuật toán, vì thế hiểu được cú pháp, hoạt động và tầm quan trọng của thuật toán đối với chương trình trong Pascal Trên cơ sở tìm hiểu tình hình của nhà trường, thực trạng của giáo viên
và học sinh Năm học 2017-2018, sau khi học xong bài 5 với phương pháp dạy học cũ tôi đã tiến hành khảo sát 113 học sinh ở 3 lớp 8A, 8B, 8C bằng việc cho các em làm bài kiếm tra 15 phút, với nội dung câu hỏi như sau:
Đề bài: Cho 2 số nguyên dương Hãy cho biết kết quả so sánh 2 số đó dưới dạng
"a lớn hơn b", "a nhỏ hơn b" hoặc "a bằng b"
a: Input và Output của bài toán là gì?
b: Thử chạy với các cặp số khác nhau: a=6,b=8; a=8,b=6; a=7,b=7;
Kết quả như sau:
Kết quả khảo sát trên cho thấy rõ tỉ lệ học sinh trung bình, yếu, kém ở cả
3 lớp tương đối cao( TB: 41.6%; Yếu, kém: 15%) Điều này khẳng định rằng các em nắm chưa vững được kiến thức bài học Bản thân rất trăn trở và đã tìm nhiều giải pháp để tạo hứng thú học tập cho các em nhằm cái thiện cách nhìn, cách học, chất lượng môn học và đúc rút thành kinh nghiệm: “Giải pháp giúp học sinh lớp 8 nắm vững “Từ bài toán đến chương trình thông qua một số ví dụ
về thuật toán” ở trường THCS Nga Trung, Nga Sơn”
2.3 Các giải pháp đã sử dụng để giải quyết vấn đề:
2.3.1 Vận dụng kiến thức liên môn tích hợp để giảng dạy bài học:
1 TÊN HỒ SƠ DẠY HỌC
BÀI 5: TỪ BÀI TOÁN ĐẾN CHƯƠNG TRÌNH - TIẾT 22,23.
2
MỤC TIÊU DẠY HỌC
2.1 Kiến thức
a) Môn Tin học
- Học sinh biết được chương trình là thể hiện của thuật toán trên một ngôn ngữ
cụ thể
- Học sinh biết được thế nào là mô tả thuật toán
- Học sinh biết mô tả thuật toán bằng phương pháp liệt kê các bước
- Học sinh hiểu được bài toán, xác định được Input và Output của bài toán
Trang 7b) Môn Toán học
- Biết công thức tính diện tích hình chữ nhật
- Biết cách tìm ước số chung lớn nhất của hai số
- Biết công thức tính diện tích hình bán nguyệt (nửa hình tròn)
- Biết so sánh 2 số thực a và b
- Tính tổng các số tự nhiên trong một dãy số
Chương trình lớp 6: bài 17- Ước chung lớn nhất
Chương trình lớp 8: bài 9- Hình chữ nhật
Chương trình lớp 9: bài10- Diện tích hình tròn – Hình quạt tròn
c) Môn Giáo dục công dân
- Biết cách tiết kiệm nhiên liệu (điện năng)
- Biết cách bảo vệ tài nguyên môi trường
Chương trình lớp 6 bài 3: Tiết kiệm
Chương trình lớp 7 bài 14: Bảo vệ môi trường và tài nguyên thiên nhiên 2.2.Kỹ năng
* Học sinh thực hiện được:
- Xác định được Input và Output của bài toán
- Biết cách mô tả thuật toán
- Biết vận dụng linh hoạt và sáng tạo để giải các bài toán có tính thực tiễn và hiểu biết về tự nhiên xã hội trong giai đoạn hiện nay
* Học sinh thực hiện thành thạo:
Việc xác định Input và Output, mô tả chi tiết thuật toán cho bài toán cụ thể nào đó
2.3.Thái độ
* Thói quen:
Hình thành ở học sinh thói quen nghiên cứu, tìm tòi và tư duy trong môn tin cũng như các môn học khác
* Tính cách:
- Giáo dục ý thức sáng tạo và nghiêm túc học tập và nghiên cứu
- Hợp tác trong trao đổi, thảo luận nhóm
- Có ý thức thực hành tiết kiệm, bảo vệ môi trường
2.4 Định hướng năng lực hình thành
- Năng lực giải quyết vấn đề
- Năng lực giao tiếp
- Năng lực hợp tác
- Năng lực sử dụng công nghệ thông tin và truyền thông
3 ĐỐI TƯỢNG DẠY HỌC CỦA BÀI HỌC
- Học sinh trường THCS Nga Trung
+ Số lượng: 113 học sinh đại trà
+ Số lớp: 3 lớp
+ Khối/ lớp: Lớp 8A,8B,8C
4 Ý NGHĨA CỦA BÀI HỌC
4.1 Ý nghĩa của bài học đối với thực tiễn dạy học
- Qua việc dạy học của bài học thì học sinh đã có tư duy, vận dụng được kiến thức của nhiều môn học khác nhau để giải quyết một vấn đề cụ thể
Trang 8- Từ những kiến thức của bài học và cách vận dụng kiến thức của nhiều môn học khác nhau để giải quyết vấn đề mà học sinh có thể vận dụng đối với các tình huống khác
4.2 Ý nghĩa của bài học đối với thực tiễn đời sống
- Hiểu được cách tính tiền điện của ngành điện lực
- Học sinh có được những kiến thức để vận dụng vào cuộc sống hàng ngày Đó
là nâng cao khả năng rèn luyện của bản thân và cộng đồng
- Từ đó có kĩ năng sống, có ý thức thực hành tiết kiệm điện năng nói riêng và các dạng năng lượng khác nói chung
- Qua việc dạy học của bài học rèn cho học sinh phẩm chất: cẩn thận, chu đáo, sáng tạo và kỹ năng cần thiết để xử lý các tình huống gặp phải trong cuộc sống
5 THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU
5.1 Thiết bị dạy học
- Phòng học bộ môn gồm các thiết bị: máy tính giáo viên, máy chiếu, máy tính của học sinh
- Bút dạ, giấy A3
5.2 Học liệu
- Môn Tin: sách giáo khoa môn tin học 8, sách giáo viên tin học 8
- Môn Toán: sách giáo khoa môn toán học lớp 8và lớp 9
- Môn Giáo dục công dân: sách giáo khoa môn GDCD lớp 6, lớp 7
- Ảnh cảnh ô nhiễm môi trường
- Ảnh cách tiết kiệm điện năng
- Hoá đơn tiền điện
5.3 Ứng dụng công nghệ thông tin
- Sử dụng phần mềm Microsoft Office PowerPoint 2007, Microsoft Word 2007
- Sử dụng ứng dung Google Tài liệu của google Driver
- Sử dụng email
6 HOẠT ĐỘNG DẠY HỌC VÀ TIẾN TRÌNH DẠY HỌC
6.1 Ổn định: kiểm tra sĩ số
6.2 Kiểm tra bài cũ: Lồng gép trong quá trình dạy
6.3 Nội dung:
(Nội dung kiến thức bài 5 tiếp theo : Từ bài toán đến chương trình)
GV vào bài- kết nối: Trong tiết 20,21 của bài 5 các em đã được học về bài toán và xác định bài toán, quá trình giả bài toán trên máy tính, thuật toán và mô
tả thuật toán, hôm này thầy và các em cùng tìm hiểu về một số ví dụ về thuật toán có nội dung toán học, giáo dục công dân và ví dụ có nội dung thực tiễn Thông qua các ví dụ các em hiểu sâu sắc về thuật toán và được củng cố kiến thức ở một số môn học và có thêm hiểu biết về đời sống xã hội, kỹ năng sống
Hoạt động 1: Bài toán và xác định bài toán
Hoạt động 2: Quá trình giải bài toán trên máy tính.
Hoạt động 3: Thuật toán và mô tả thuật toán.
Hoạt động 4 : Một số ví dụ về thuật toán.
Hoạt động của giáo viên và học sinh Nội dung
Ví dụ 1 Một hình A được ghép từ một
hình chữ nhật với chiều rộng 2a, chiều
Ví dụ 1:
INPUT: Số a là 1/2 chiều rộng
Trang 9dài b và một hình bán nguyệt bán kính a
như hình 29 dưới đây:
Hình 29
Yêu cầu học sinh trả lời câu hỏi dưới đây
Hình A gồm những hình nào tạo thành?
? Nêu cách tính diện tích hình trên?
? Diện tích Hình chữ nhật tính như thế
nào?
? Diện tích hình bán nguyệt tính như thế
nào?
công thức chung S= S1 + S2
Hướng dẫn hs viết thuật toán
GV kiểm tra một số bài làm dưới lớp
GV nhận xét, nhắc nhở một số lỗi trình
bày của HS
Ví dụ 2 Tính tổng của 100 số tự nhiên
đầu tiên
? Làm thế nào để tính được tổng các số tự
nhiên từ 1 đến 100?
Ví dụ 3 Đổi giá trị của hai biến x và y.
? Thực hiện x:=y, y:=x được không? Tại
của hình chữ nhật và là bán kính của hình bán nguyệt, b là chiều dài của hình chữ nhật
OUTPUT: Diện tích của hình A Thuật toán đơn giản để tính diện tích hình A có thể gồm các bước sau:
Bước 1 S1 2*a*b {(Tính diệna*a*b {(Tính diệnb {(Tính diện tích hình chữ nhật)};
Bước 2 S2
2
a 2
{(Tính diện tích hình bán nguyệt)};
Bước 3 S S1 + S2 và kết thúc Lưu ý: Trong biểu diễn thuật toán, người ta cũng thường sử dụng kí hiệu để chỉ phép gán một biểu thức cho một biến
Ví dụ 2
INPUT: Dãy 100 số tự nhiên đầu tiên: 1, 2, 100
OUTPUT: Giá trị của tổng 1 + 2 + + 100
Bước 1 SUM 0
Bước 2 SUM SUM + 1
Bước 101 SUM SUM + 100 Viết gọn lại:
Bước 1 SUM 0; i 0
Bước 2 i i + 1
Bước 3 Nếu i ≤ 100, thì SUM SUM + i và quay lại bước 2
Bước 4 Thông báo kết quả và kết thúc thuật toán
Trang 10GV: Ta phải lấy 1 biến z làm biến trung
gian
Ví dụ 4 Cho 2 số thực a và b Hãy cho
biết kết quả so sánh 2 số đó dưới dạng "a
lớn hơn b", "a nhỏ hơn b" hoặc "a bằng
b"
? Input và Output của bài toán là gì?
? Thử chạy với các cặp số khác nhau:
a=3,b=4; a=4,b=3; a=5,b=5;
* Tích hợp môn toán:
GV liên hệ: Qua các bài toán trên chúng
ta đã được ôn lại các công thức toán học
cơ bản như: Diện tích hình chữ nhật,
hình tròn; tổng các số tự nhiên, so sánh 2
số
- GV : Hàng tháng gia đình các em đều đi
nộp tiền điện tại chi nhánh điện Giá điện
được tính như thế nào?
Các em sẽ được hiểu rõ qua nội dung bài
tập sau
Ví dụ 5: Để khuyến khích tiết kiệm điện,
giá điện sinh hoạt được tính theo kiểu luỹ
tiến, nghĩa là nếu người sử dụng càng
dùng nhiều điện thì giá mỗi số điện
Ví dụ 3 Đổi giá trị của hai biến
x và y
INPUT: Hai biến x, y có giá trị tương ứng là a và c
OUTPUT: Hai biến x, y có giá trị tương ứng là a và b
Bước 1 z x {Sau bước này giá trị của z sẽ bằng a}
Bước 2 x y {Sau bước này giá trị của x sẽ bằng b}
Bước 3 y z {Sau bước này giá trị của y sẽ bằng giá trị của z, chính là a, giá trị ban đầu của biến x}
Ví dụ 4 Cho hai số thực a và b
Hãy cho biết kết quả so sánh hai
số đó dưới dạng "a lớn hơn b", "a nhỏ hơn b" hoặc "a bằng b"
INPUT: Hai số thực a và b
OUTPUT: Kết quả so sánh
Thuật toán sau đây có thể giải quyết bài toán này: Bước 1 Nếu a > b, kết quả là "a lớn hơn b" và chuyển đến bước 3 Bước 2 Nếu a < b, kết quả là "a nhỏ hơn b"; ngược lại, kết quả là
"a bằng b"
Bước 3 Kết thúc thuật toán
Ví dụ 5:
INPUT: Số điện n OUTPUT: Số tiền cần phải trả T