Mở đầu -1-SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ PHÒNG GD&ĐT HẬU LỘC TRƯỜNG THPT ĐINH CHƯƠNG DƯƠNG SÁNG KIẾN KINH NGHIỆM CÁCH VIẾT THUẬT TOÁN CỦA MỘT SỐ BÀI TOÁN CỤ THỂ BẰNG PHƯƠNG PHÁP LIỆT
Trang 1
I.MỞ ĐẦU
MỤC LỤC
I Mở đầu
-1-SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
PHÒNG GD&ĐT HẬU LỘC TRƯỜNG THPT ĐINH CHƯƠNG DƯƠNG
SÁNG KIẾN KINH NGHIỆM
CÁCH VIẾT THUẬT TOÁN CỦA MỘT SỐ BÀI TOÁN CỤ THỂ
BẰNG PHƯƠNG PHÁP LIỆT KÊ HAY SƠ ĐỒ KHỐI
Người thực hiện: Đỗ Thị Hiền Chức vụ: Giáo viên
Đơn vị công tác:Trường THPT Đinh chương Dương
SKKN thuộc lĩnh vực (môn): Tin học
Trang 2
1.Lí do chọn đề tài 3
2.Mục đích nghiên cứu 4
3.Đối tượng nghiên cứu 4
4.Phương pháp nghiên cứu 4
II Nội dung sáng kiến kinh nghiệm 4
1 Cơ sở lí luận của sáng kiến kinh nghiệm 4
2.Thực trạng của vấn đề trước khi áp dụng sáng kiến kinh nghiệm 4
3 Các sáng kiến kinh nghiệm hoặc các giải pháp đã sử dụng để giải quyết vấn đề 5
4 Hiệu quả của sáng kiến kinh nghiệm 15
III Kết luận, kiến nghị 16
- Kết luận, kiến nghị 16
- Tài liệu tham khảo 17
I MỞ ĐẦU
1 Lí do chọn đề tài
Trang 3Ngày nay, trên thế giới đang diễn ra quá trình tin học hoá trên nhiều lĩnh vực hoạt động của xã hội loài người và đem lại nhiều hiệu quả to lớn
Sự phát triển mạnh mẽ như “vũ bão” của tin học đã làm cho xã hội có nhiều nhận thức mới về cách tổ chức các hoạt động Nhiều quốc gia trên thế giới ý thức được rất rõ tầm quan trọng của tin học và có những đầu tư lớn cho lĩnh vực này, đặc biệt trong giáo dục nâng cao dân trí về tin học và đào tạo nguồn nhân lực có chất lượng cao Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, vì thế chúng ta hi vọng có thể sớm hoà nhập với khu vực và trên thế giới
Đảng và Nhà nước ta đã nhận thấy được tầm quan trọng của ngành Tin học và đã đưa môn học này vào nhà trường phổ thông như những môn khoa học khác bắt đầu từ năm học 2006-2007
Trong quá trình giảng dạy môn Tin học 10, khi dạy Bài 4 “BÀI TOÁN
VÀ THUẬT TOÁN ”, nội dung của bài này là giới thiệu cho học sinh cách
viết thuật toán bằng cách liệt kê hay sơ đồ khối và nội dung của bài này nó cũng là cơ sở để giúp cho chúng ta viết chương trình trên máy tính một cách dễ dàng bằng cách dựa vào thuật toán của bài toán, nội dung này rất khó và mới đối với các em
Từ lí do trên, tôi xin trình bày sáng kiến kinh nghiệm “CÁCH VIẾT THUẬT TOÁN CỦA MỘT SỐ BÀI TOÁN CỤ THỂ BẰNG PHƯƠNG PHÁP LIỆT KÊ HAY SƠ ĐỒ KHỐI “ Với các ví dụ được trình bày trong
sáng kiến kinh nghiệm của mình sẽ giúp cho học sinh nắm bắt hơn về cách viết thuật toán của một bài toán khi học bài 4 tin học 10
Do lần đầu tiên thực hiện làm sáng kiến kinh nghiệm, nên không tránh khỏi những thiếu sót Mong quý thầy cô góp ý để lần sau làm tốt hơn
2 Mục đích nghiên cứu
3
Trang 4Sử dụng tớnh chṍt lặp của cỏc thuọ̃t toỏn trước hết để học sinh nắm được cỏc
bước, ý nghĩa của thuọ̃t toỏn Và thụng qua cỏc vớ dụ hướng dẫn học sinh nắm vững, hiểu rừ thuọ̃t toỏn
3 Đối tượng nghiờn cứu.
Học sinh khối 10 tại trường THPT Đinh Chương Dương
Sử dụng cỏc vớ dụ để thực hiện thuọ̃t toỏn
4 Phương phỏp nghiờn cứu
Kết hợp thực tiễn giỏo dục ở trường THPT Đinh Chương Dương
Cú tham khảo cỏc tài liệu tin học 10 và tài liệu về sỏng kiến kinh
nghiệm
II NỘI DUNG SÁNG KIẾN KINH NGHIỆM
“CÁCH VIẾT THUẬT TOÁN CỦA MỘT SỐ BÀI TOÁN CỤ THỂ BẰNG PHƯƠNG PHÁP LIỆT Kấ HAY SƠ ĐỒ KHỐI ’’
1 Cơ sở lớ luận của sỏng kiến kinh nghiệm.
Sự phỏt triển như vũ bảo của Cụng nghệ Thụng tin và Truyền thụng đúng vai trò khụng nhỏ trong sự phỏt triển chung của nhõn loại chớnh vỡ thế
Bộ Giỏo dục và Đào Tạo đó đưa Tin học trở thành một mụn học chớnh trong cỏc trường THPT Cú thể thṍy, đõy là một quyết định đỳng đắng trong xu thế hội nhọ̃p và phỏt triển của đṍt nước Bởi vỡ học sinh cú kiến thức về tin học sẽ giỳp cho học sinh hòa nhọ̃p với xó hội ngày nay một người phỏt triển toàn diện khụng thể thiếu hiểu biết về tin học
2 Thực trạng của vấn đề trước khi ỏp dụng
Trớc đây khi cha áp dụng phơng pháp giảng dạy bằng cụng nghệ thụng tin, lấy ví dụ từ thực tế học sinh luôn phản ánh với giáo viên rằng bộ môn này khó hiểu và trừu tợng Khi kiểm tra với mức độ đề tơng đơng với các ví dụ trong sách giáo khoa, các em vẫn mơ hồ và đạt kết quả cha cao
3 Cỏc sỏng kiến kinh nghiệm hoặc cỏc giải phỏp đó sử dụng để giải quyết vấn đề
Trang 5Giáo viên đa ra đề kiểm tra 1 tiết đối với lớp 10A1 có 35 học sinh nh sau:
Bài 1: Xác định Input và Output của bài toán sau:
“Tính tổng các bình phơng các chữ số của 1 số tự nhiên bất kỳ có 4 chữ số ” Bài 2: Liệt kê các bớc của thuật toán để giải bài toán sau :
“Rút gọn phân số a
bvới a, b bất kỳ, b0”
Bài 3: Viết thuật toán để sắp xếp 1 dãy số nguyên bất kỳ nhập từ bàn phím theo thứ
tự giảm dần
Kết quả kiểm tra nh sau:
Đối với Bài 1, hầu nh học sinh chỉ tìm đợc Input và Output của bài toán mà cha viết đợc đầy đủ thuật toán để giải nó
Đối với Bài 2, Bài 3 học sinh cha mô phỏng đợc thuật toán bằng sơ đồ khối
Vỡ vọ̃y tụi đưa ra cỏc giaỉ phỏp như sau:
a) Các bớc thực hiện bài giảng "Tìm hiểu bài toán và thuật toán"
* Hoạt động 1: Giúp học sinh hiểu rõ khái niệm "Bài toán" trong Tin học:
Giáo viên đặt vấn đề bằng cách đa ra các ví dụ để học sinh quan sát:
Ví dụ 1: Giải phơng trình bậc 2 tổng quát: ax2+ bx+ c= 0 (a 0)
Ví dụ 2: Bài toỏn kiểm tra tớnh nguyờn tố của một số nguyờn dương N
Phát vấn học sinh: Em hãy xác định dữ kiện ban đầu và kết quả của mỗi
bài toán sẽ có dạng gì ? (Dạng số, hình ảnh, hay văn bản ?)
Học sinh trả lời:
ở ví dụ 1 Các hệ số a, b, c bất kỳ Nghiệm của phơng trình (nếu
có) có dạng số nguyên hoặc
số thực
ở ví dụ 2 Số nguyờn dương N N là số nguyờn tố hoặc N
khụng phải là số nguyờn tố
Phát vấn học sinh: Em hãy nhận xét sự giống và khác nhau giữa bài trong Tin
học và bài toán trong Toán học?
Học sinh trả lời: Bài toán trong Toán học yêu cầu chúng ta giải cụ thể để
tìm ra kết quả, còn bài toán trong Tin học yêu cầu máy tính giải và đa ra kết quả cho chúng ta
5
Trang 6Từ đây giáo viên trình chiếu khái niệm Bài toán trong Tin học : Là một
việc nào đó mà ta muốn máy tính thực hiện để từ thông tin đầu vào (dữ kiện) máy tính cho ta kết quả mong muốn
- Những dữ kiện của bài toán đợc gọi là Input.
- Kết quả máy tính trả ra đợc gọi là Output của bài toán.
Sau đó giáo viên yêu cầu học sinh tìm lại Input và Output của 2 ví dụ trên
Nh vậy, khái niệm bài toán không chỉ bó hẹp trong phạm vi môn toán, mà phải đợc hiểu nh là một vấn đề cần giải quyết trong thực tế, để từ những dữ kiện
đã cho máy tính tìm ra kết quả cho chúng ta
* Hoạt động 2: Giúp học sinh hiểu rõ khái niệm "Thuật toán" trong Tin học:
B ớc 1 : Giáo viên nêu tình huống để giúp học sinh tìm Input và Output
Làm thế nào để từ Input của bài toán, máy tính tìm cho ta Output ?
Học sinh trả lời: Ta cần tìm cách giải bài toán và làm cho máy tính hiểu đợc
cách giải đó
Đến đây sẽ có em thắc mắc: Nh vậy chúng ta vẫn phải giải bài toán mà
có khi còn phức tạp hơn trong Toán học ?
Giáo viên giải thích: Nếu nh trong Toán học chúng ta phải giải trực tiếp
từng bài để lấy kết quả, thì ở đây, chúng ta chỉ cần tìm cách giải bài toán tổng quát và máy tính sẽ giải cho ta một lớp các bài toán đồng dạng
Ví dụ: Bài toán giải phơng trình bậc 2 với 3 hệ số a,b,c bất kỳ, bài toán tìm diện tích tam giác với độ dài 3 cạnh đợc nhập bất kỳ, bài toán tìm UCLN của 2 số nguyên bất kỳ, bài toán quản lý học sinh …
B ớc 2 : Giáo viên đa ra khái niệm thuật toán và các tính chất của
một thuật toán:
Khái niệm: “Thuật toán để giải một bài toán là một dãy hữu hạn các
thao tác đợc sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy các thao tác ấy, từ thông tin đầu vào (Input) của bài toán ta nhận đợc kết quả (Output) cần tìm”.
Các tính chất của một thuật toán:
- Tính dừng
- Tính xác định
- Tính đúng đắn
Cỏc bước tiến hành khi viết thuật toỏn của một bài toỏn :
Xỏc định bài toỏn: Là đi tỡm Input và Output của bài toỏn
Tỡm ý tưởng để giải bài toỏn
Viết thuật toỏn bằng phương phỏp liệt kờ hay sơ đồ khối
Trang 7 B ớc 3 : Giới thiệu cho học sinh 2 cách biểu diễn một thuật toán
- Cách l: Liệt kê các bớc: Chính là dùng ngôn ngữ tự nhiên để diễn tả các bớc
cần làm khi giải một bài toán bằng máy tính.
Sử dụng sơ đồ khối : trong sơ đồ khối người ta dựng một số khối, đường mũi tờn với quy ước :
Hỡnh thoi thể hiện thao tỏc so sỏnh
Hỡnh chữ nhật thể hiện cỏc phộp tớnh toỏn
Hỡnh ụ van thể hiện thao tỏc nhập, xuất dữ liệu
Cỏc mũi tờn trỡnh tự thực hiện cỏc thao tỏc
Giáo viên nhắc học sinh phải nhớ các quy ớc trên để biểu diễn thuật toán đợc chính xác
* Hoạt động 3: Giới thiệu và hớng dẫn học sinh viờ́t thuật toỏn của một số bài toỏn cụ thể:
Bài tập 1 Viết thuật toỏn cho bài toỏn tỡm nghiệm phương trỡnh bậc 2
Lời giải :
+Input : Cho ba số thực a, b, c
dựa vào kết quả của mà suy ra nghiệm của phương trỡnh.
Cách 1: Liệt kê từng bớc
- Bớc 1: Bắt đầu
- Bớc 2: Nhập 3 hệ số a,b,c.
- Bớc 3: Tính biệt số = b 2 - 4ac
- Bớc 4: Nếu < 0 thông báo phơng trình vô nghiệm rồi kết thúc.
- Bớc 5: Nếu = 0 thông báo phơng trình có nghiệm kép b
x 2a
rồi kết thúc.
- Bớc 6: Nếu > 0 thông báo phơng trình có 2 nghiệm x1,x2= b
2a
, rồi kết thúc.
- Bớc 7: Kết thúc.
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
7
= 0
Đỳng
Sai
Đỳng Ph ơng trình vô nghiệm
Ph ơng trình có nghiệm kép x= -b/2a
Ph ơng trình có 2 nghiệm
x1,x2=(-b)/2a
Bắt đầu
Nhập a,b,c
Tính = b2- 4ac
< 0
Kờ́t thỳc
Sai
Trang 8
Bài tập 2 Viết thuật toỏn cho bài toỏn tỡm nghiệm phương trỡnh bậc nhất
ax +b =0
Lời giải :
+Input : Cho hai số thực a, b
+ Output : Nghiệm của phương trỡnh ax+ b=0
biện luận phương trỡnh dựa vào hệ số a, b và suy ra nghiệm của phương trỡnh
Cách 1: Liệt kê từng bớc
- B1: Nhập a, b
- B2 : Nếu a <> 0 thỡ phương trỡnh cú nghiệm x=-b/2a =>B4
- B3 : Nếu a=0
- B3.1 Nếu b=0 thỡ kết luận phương trỡnh cú vụ số nghiệm => B4
- B3.2 Nếu b< > 0 thỡ kết luận phương trỡnh vụ nghiệm => B4
- B4: Kết thỳc
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
8
Phương trỡnh
vụ nghiệm
Nhọ̃p a,b
a 0
Phương trỡnh cú nghiệm x=-b/a
b 0
Phương trỡnh cú
Kết thỳc
Đỳng
Sai
Đỳng
Sai
Trang 9Bài tập 3 Viết thuật toỏn tớnh tổng sau:
S=1/2+1/3+1/4+…+1/N
Lời giải :
+ Input : Nhập N
+ Output : Tổng S
đi lặp lại nhiều lần với tổng sau bằng tổng trước cộng i với i chạy từ 1 cho đến N và khi i >N thỡ thuật toỏn dừng lại và xuất tổng S
Cách 1: Liệt kê từng bớc
B1: Nhập số N
B2: S 0; I 0;
B3 : Nếu i >N thỡ đưa ra tổng S rồi kết thỳc
B4: S S+ 1/I,I i+1
B5 : Kết thỳc thuật toỏn
Yờu cầu học sinh chuyển từ cỏch viết thuật toỏn bằng phương phỏp liệt kờ sang
sơ đồ khối
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
9
i <=N
Đ
Nhọ̃p N
S 0; i0
KQ :S
S S+1/N ii+1
S
Trang 10Bài 4 : Cho N và dãy a 1 ,…,a N , hãy tỡm giỏ trị nhỏ nhất (Min) của dãy đó Lời giải:
Yờu cầu học sinh tỡm Input và Output của bài toỏn
+ Input : Nhập N và dãy a 1 ,…,a N
+ Output : Giỏ trị nhỏ nhất (Min) của dãy số
Gọi học sinh dựa vào bài toỏn tỡm Max của dãy hãy nờu ý tưởng giải bài toỏn
- Lần lược với I chạy từ 2 đến N, so sỏnh giỏ trị số hạng a i với giỏ trị Min, nếu a i < Min thỡ Min sẽ nhận giỏ trị mới là a i.
Cách 1: Liệt kê từng bớc
- Bước 1 Nhập N và dãy a 1 ,…,a N
- Bước 2 Min a 1 , i 2
- Bước 3 Nếu i >N thỡ đưa ra giỏ trị Min rồi kết thỳc
- Bước 4
Bước 4.1 Nếu a i <Min thỡ Min a i ;
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
10 Đỳng
Sai
Min a 1 , i2
i >N
a i <Min
Mina i
Đưa ra giỏ trị Minkết thỳc
Đỳng
Sai
Trang 11
Bài 5:Viết thuật toán hoán đổi giá trị của hai biến số thực A và C dùng biến trung gian B
Lời giải:
Yêu cầu học sinh tìm Input và Output của bài toán
Input: Hai số thực A và C
Output: Hai số thực C và A
Giáo viên nêu lên ví dụ :”cô có 1 cái xô đựng gạo và 1 cái chậu đựng muối cô muốn hoán đổi số lượng gạo trong xô phải được đựng vào chậu và số lượng muối ở trong chậu phải được chuyển sang đựng trong xô” để làm được điều đó em nào có thể nêu cách làm ?
Học sinh trả lời
- B1: Em đổ gạo ở trong xô sang một thùng không
- B2: Đổ lượng muối ở trong chậu sang xô
- B3: Em lấy gạo ở trong thùng không đổ chậu
- B4: Kết quả là em được xô thì đựng muối chậu thì đựng gạo
Từ ví dụ trên giáo viên hình thành ý tưởng giải bài toán
theo các bước sau:
11
B1:
B3:
B4:
( A lấy giá trị của C ) (C lấy giá trị của B)
Trang 12
Cách 1: Liệt kê từng bớc
- B1 : Nhọ̃p giỏ trị A, C
- B2 : B A
- B3 : A C ;
- B4 : C B
- B5 : Đưa ra giỏ trị mới của A và C rồi kết thỳc
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
trước.
Lời giải:
Yờu cầu học sinh tỡm Input và Output của bài toỏn
+ Input : Nhập N và dãy a 1 ,…,a N
+ Output : Số lượng cỏc số õm trong dãy số
Nhọ̃p A và C
B A
AC
CB
Đưa ra giỏ trị mới của A
và C rồi kết thỳc
Trang 13- Khởi tạo giỏ trị Dem =0
- Lần lược với i chạy từ 1 đến N, nếu a i nhỏ hơn 0 thỡ tăng biến Dem lờn 1 đơn vị cho đến khi i >N thỡ dừng lại và xuất giỏ trị biến Dem.
Cách 1: Liệt kê từng bớc
- B1: Nhập số nguyờn dương N và n số a 1 ,…,a N;
- B2: i 1; Dem 0;
- B3 Nếu i > N đưa ra giỏ
- trị Dem rồi kết thỳc ;
- B4 Nếu a i <0 thỡ Dem Dem +1;
- B5 i i+1, rồi quay lại B3
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
Bài 7 : Viết thuật toỏn tớnh và hiển thị tổng cỏc số dương trong dãy số A={ a 1 ,a 2 ,…a N } cho trước.
Yờu cầu học sinh tỡm Input và Output của bài toỏn
+ Input : Nhập N và dãy a 1 ,…,a N
13
S
S
a i <0
Nhập số nguyờn dương N
và n số a 1 ,…,a N;
i1; Dem 0
i > N
ii+1
Đưa ra giỏ trị Dem rồi kết thỳc Dem Dem +1
Đ
Đ
Trang 14+ Output : Tổng cỏc số lớn hơn 0 trong dãy
- Lần lược với i chạy từ 1 đến N, nếu a i lớn hơn 0 thỡ tăng biến Sum lờn 1 đơn vị cho đến khi i>N thỡ dừng lại và xuất giỏ trị biến Sum
Cách 1: Liệt kê từng bớc
- B1: Nhập số nguyờn dương N và n số a 1 ,…,a N;
- B2: i 1; Sum 0;
- B3 Nếu i > N đưa ra giỏ trị Sum rồi kết thỳc ;
- B4 Nếu a i >0 thỡ Sum Sum +1;
- B5 i i+1, rồi quay lại B3
Cách 2: Biểu diễn thuật toán bằng sơ đồ khối
4 Hiệu quả của sỏng kiến kinh nghiệm
S
S
a i >0
Nhập số nguyờn dương
N và n số a 1 ,…,a N;
i1; Sum 0
i > N
ii+1
Đưa ra giỏ trị Sum rồi kết thỳc
Sum Sum +1
Đ
Đ
Trang 15So sánh, đối chứng tỉ lệ % kết quả của học sinh trớc và sau khi thực hiện
đề tài ta thấy rõ ràng kết quả của học sinh sau khi đợc học bằng giáo án điện tử trên máy chiếu kết hợp mô phỏng cụ thể, kết quả thực tế đối với lớp 10A4 có 35 học sinh (với đề kiểm tra giống lớp 10A1 ở trên) sau khi thực hiện đề tài nh sau:
- Cỏc em trong lớp cú thỏi độ học tớch cực hơn rṍt nhiều Thể hiện
ở tinh thần tham gia trả lời cõu hỏi
- Với cỏc cõu trả lời của mỡnh, cỏc em đó thể hiện được sự tư duy trong bài học một cỏch tốt hơn
- Kết quả kiểm tra như sau:
III PHẦN KẾT LUẬN
Tin học núi chung đúng vai trò hết sức quan trọng trong xó hội hiện đại, tin học đó làm thay đổi nhọ̃n thức của con người và ứng dụng trong hầu hết cỏc hoạt động của xó hội loài người
Với việc xõy dựng cỏc thuọ̃t toỏn minh họa như trờn, trong quỏ trỡnh giảng dạy Tin học 10, bản thõn thṍy rằng cỏc tiết học về bài toỏn và thuọ̃t toỏn khụng còn nhàm chỏn, khụ cứng nữa mà trở nờn sụi nổi hơn và học sinh cũng
cú thể hiểu cỏc thuọ̃t toỏn một cỏch dễ dàng hơn
Hơn nữa, với mụ̃i thuọ̃t toỏn, giỏo viờn cú thể minh họa bằng rṍt nhiều bộ Test khỏc nhau mà khụng mṍt nhiều cụng sức, cú thể núi đõy là đặc điểm nổi bọ̃t mà mỏy tớnh cú thể trợ giỳp cho con người
Đề tài này ra đời từ kinh nghiệm của bản thõn trong quỏ trỡnh giảng dạy và
từ những kiến thức mà tụi đó tham khảo với đồng nghiệp, cú thể chương trỡnh của tụi còn chưa đạt tối ưu Tụi rṍt mong sự gúp ý chõn thành của quý thầy cụ
để tụi cú một sỏng kiến kinh nghiệm hoàn hảo hơn
15