Một số kỹ năng vận dụng thuật toán để giải các bài toán cơ bản trong Tin học 10

Một số kỹ năng vận dụng thuật toán để giải các bài toán cơ bản trong Tin học 10

Với sự phát triển ngày càng lớn mạnh của khoa học kỹ thuật và công nghệ, Công nghệ thông tin chính là chiếc cầu nối để người học, người lao động tiếp cận với những sự thay đổi ấy. Yêu cầu đã được đặt ra cho ngành giáo dục để đáp ứng được sự đòi hỏi cấp thiết của công cuộc công nghiệp hóa, hiện đại hóa đất nước, nhất thiết phải đổi mới phương pháp dạy học theo hướng vận dụng công nghệ thông tin và sử dụng các thiết bị dạy học hiện đại vào quá trình dạy - học để phát huy mạnh mẽ tư duy sáng tạo, kỹ năng thực hành và tạo hứng thú cho học sinh từ đó góp phần nâng cao chất lượng giáo dục, chất lượng nguồn lao động.

Thực tế giảng dạy cho thấy học sinh ngày nay chủ yếu là cố gắng hướng tới những điều thực sự thu hút và liên quan tới mình, tới trào lưu chung của xã hội. Đặc biệt là học sinh THPT là những chủ nhân tương lai thực sự của đất nước, trong quá trình học cùng với những ước mơ, hoài bảo của mình trước khi rời ghế nhà trường sẽ có những câu hỏi đặt ra cho các em như sẽ chọn ngành gì, nghề gì, và trường gì để học và sau khi học thì sẽ tìm việc làm ở đâu?.Nói cách khác các em đang tìm nhiều cách để giải quyết một vấn đề chưa rõ ràng. Khi đã xác định một công việc cụ thể, thực hiện các bước giải quyết nó để đạt được mục đích đó là lập trình một việc không dễ dàng đối với tất cả các học sinh nói chung. Xuất phát từ tình hình thực tế giảng dạy trong những năm qua tại trường với đặc điểm tình hình học sinh Thành Phố nhưng phần lớn là học sinh thuộc các xã của các huyện mới xác nhập vào Thành Phố, điều kiện kinh tế gia đình còn khó khăn, chất lượng đầu vào tương đối thấp việc học và ứng dụng công nghệ thông tin vào thực tế cuộc sống là việc không dễ chút nào bởi vì phần lớn các em chưa có điều kiện được tiếp xúc với máy tính, điều kiện cơ sở vật chất, máy móc, thiết bị phục vụ giảng dạy và học tập của học sinh tại trường cũng còn nhiều hạn chế.

 

doc 20 trang thuychi01 6453
Bạn đang xem tài liệu "Một số kỹ năng vận dụng thuật toán để giải các bài toán cơ bản trong Tin học 10", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ
TRƯỜNG THPT NGUYỄN TRÃI
SÁNG KIẾN KINH NGHIỆM
MỘT SỐ KỸ NĂNG VẬN DỤNG THUẬT TOÁN ĐỂ GIẢI CÁC BÀI TOÁN CƠ BẢN TRONG TIN HỌC 10
Người thực hiện: Lê Văn Hùng
Chức vụ: Giáo viên
SKKN thuộc lĩnh vực: Tin học
THANH HÓA, NĂM 2016
MỤC LỤC
A. MỞ ĐẦU	
1
1. Lý do chọn đề tài	
1
2. Mục đích nghiên cứu
2
3. Đối tượng nghiên cứu
2
4. Phương pháp nghiên cứu 
2
B. NỘI DUNG
3
1. Cơ sở lí luận
3
2. Thực trạng của vấn đề trước khi áp dụng SKKN
3
3. Các giải pháp thực hiện
3
 3.1. Các bước tiến hành
3
 3.2. Các biện pháp để tổ chức thực hiện
4
a. Tìm hiểu và phân biệt "Bài toán" trong Tự nhiên và "Bài toán" trong Tin học:
4
b. Tìm hiểu khái niệm "Thuật toán" và tầm quan trọng của việc lựa chọn thuật toán để giải quyết các bài toán trong Tin học.
5
 c. Một số ví dụ minh họa.
6
4. Hiệu quả của SKKN đối với hoạt động giáo dục, với bản thân, đồng nghiệp và nhà trường
15
C. KẾT LUẬN VÀ KIẾN NGHỊ
17
1. Kết luận
17
2. Kiến nghị
17
Tài liệu tham khảo
18
A. MỞ ĐẦU
1. Lý do chọn đề tài
	Với sự phát triển ngày càng lớn mạnh của khoa học kỹ thuật và công nghệ, Công nghệ thông tin chính là chiếc cầu nối để người học, người lao động tiếp cận với những sự thay đổi ấy. Yêu cầu đã được đặt ra cho ngành giáo dục để đáp ứng được sự đòi hỏi cấp thiết của công cuộc công nghiệp hóa, hiện đại hóa đất nước, nhất thiết phải đổi mới phương pháp dạy học theo hướng vận dụng công nghệ thông tin và sử dụng các thiết bị dạy học hiện đại vào quá trình dạy - học để phát huy mạnh mẽ tư duy sáng tạo, kỹ năng thực hành và tạo hứng thú cho học sinh từ đó góp phần nâng cao chất lượng giáo dục, chất lượng nguồn lao động. 
Thực tế giảng dạy cho thấy học sinh ngày nay chủ yếu là cố gắng hướng tới những điều thực sự thu hút và liên quan tới mình, tới trào lưu chung của xã hội. Đặc biệt là học sinh THPT là những chủ nhân tương lai thực sự của đất nước, trong quá trình học cùng với những ước mơ, hoài bảo của mình trước khi rời ghế nhà trường sẽ có những câu hỏi đặt ra cho các em như sẽ chọn ngành gì, nghề gì, và trường gì để học và sau khi học thì sẽ tìm việc làm ở đâu?...Nói cách khác các em đang tìm nhiều cách để giải quyết một vấn đề chưa rõ ràng. Khi đã xác định một công việc cụ thể, thực hiện các bước giải quyết nó để đạt được mục đích đó là lập trình một việc không dễ dàng đối với tất cả các học sinh nói chung. Xuất phát từ tình hình thực tế giảng dạy trong những năm qua tại trường với đặc điểm tình hình học sinh Thành Phố nhưng phần lớn là học sinh thuộc các xã của các huyện mới xác nhập vào Thành Phố, điều kiện kinh tế gia đình còn khó khăn, chất lượng đầu vào tương đối thấp việc học và ứng dụng công nghệ thông tin vào thực tế cuộc sống là việc không dễ chút nào bởi vì phần lớn các em chưa có điều kiện được tiếp xúc với máy tính, điều kiện cơ sở vật chất, máy móc, thiết bị phục vụ giảng dạy và học tập của học sinh tại trường cũng còn nhiều hạn chế.
 Các giáo viên trong quá trình giảng dạy đều hướng dẫn cho học sinh biết một bài toán có thể được giải với nhiều cách (thuật toán) khác nhau và mỗi thuật toán chỉ giải được một bài toán hoặc một lớp bài toán. Nhưng thực tế cho thấy đứng trước một bài toán trong tin học học sinh thường lúng túng khi xác định thuật toán hoặc không xác định được thuật toán. Từ đó dẫn đến khó khăn trong việc giải quyết các bài toán, việc này cũng có thể do nhiều nguyên nhân, chẳng hạn do điều kiện kinh tế gia đình chưa có máy vi tính để học, thực hành, vốn tiếng anh còn hạn chế, một số phần trong chương trình của môn Tin học 10, 11 tương đối khó nên các em chưa chú tâm, đầu tư học tập bộ môn. Nên khi cho một bài toán tin học có dạng tương tự một bài toán cơ bản có trong sách giáo khoa, thì các em học khá, giỏi có thể hình dung và tìm được thuật toán cho bài toán, còn phần lớn các đối tượng học sinh còn lại thì gặp khó khăn trong việc xác định thuật toán để giải quyết bài toán đặt ra. Vì vậy việc vận dụng, hình thành kỹ năng xây dựng thuật toán là công việc rất quan trọng để giải quyết các bài toán nói chung và trong tin học 10 nói riêng. Đây là nội dung kiến thức có trong chương trình Tin học 10, liên hệ chặt chẽ và là tiền đề để các em học tốt chương trình môn Tin học 11 và học lập trình sau này, vì vậy việc giúp học sinh vận dụng và xây dựng được thuật toán để giải các bài toán như thế nào để học sinh có sự đam mê, gây được hứng thú học tập là điều đáng quan tâm, trăn trở và mặc dù có nhiều đề tài tương tự đề cập đến nhưng với tình hình thực tế giảng dạy, chất lượng học sinh và cơ sở vật chất tại trường bản thân tôi mạnh dạn lựa chọn đề tài “ Một số kỹ năng vận dụng thuật toán để giải các bài toán cơ bản trong Tin học 10” với mong muốn có thể nâng cao chất lượng học tập bộ môn Tin học trong nhà trường và cùng chia sẻ kinh nghiệm trong giảng dạy với các đồng nghiệp đặc biệt là các đồng nghiệp ở những trường có điều kiện cơ sở vật chất và chất lượng học sinh còn thấp. 
2. Mục đích nghiên cứu
	Xác định tầm quan trọng của việc xây dựng thuật toán để giải quyết các bài toàn trong tin học, thông qua các ví dụ cụ thể để học sinh nắm được tầm quan trọng của thuật toán, các bước, trình tự thực hiện của thuật toán để vận dụng vào việc giải các bài toán tương tự từ đó tạo cho các em học sinh có thêm định hướng, niềm đam mê về lập trình và nghề nghiệp mà các em sẽ lựa chọn sau này. 
3. Đối tượng nghiên cứu
	- Học sinh khối 10 tại trường THPT Nguyễn Trãi, Thành phố Thanh Hóa.
	- Sử dụng các bài toán cơ bản để thực hiện thuật toán.
4. Phương pháp nghiên cứu 
	- Kết hợp giữa giảng dạy và học tập của học sinh tại trường THPT Nguyễn Trãi, Thành Phố Thanh Hóa.
	- Tham khảo các tài liệu tin học về cấu trúc dữ liệu và giải thuật, về lập trình Pascal và các tài liệu khác có liên quan.
B. NỘI DUNG
1. Cơ sở lí luận
	Khi học sinh học đến bài Bài 4. “BÀI TOÁN VÀ THUẬT TOÁN” SGK Tin học 10. Việc xác định bài toán (2 thành phần Input và Output) sau khi tham khảo các ví dụ và sự hướng dẫn của giáo viên thì hầu hết các em học sinh đều nắm được kiến thức này. Nhưng việc tìm ra Output từ Input ban đầu đó chính là thuật toán của bài toán thì hầu hết học sinh lại gặp nhiều khó khăn trong việc hình dung ra thuật toán và hay nhầm lẫn trong việc thực hiện các bước của thuật toán hoặc chưa xác định được khi nào thuật toán dừng.
2. Thực trạng của vấn đề trước khi áp dụng
	Khi đặt ra một bài toán cơ bản cụ thể theo ngôn ngữ tự nhiên thì với kiến thức đã học, học sinh chỉ sau một số thao tác tính toán là có thể trả lời kết quả của bài toán đó có thể đúng hoặc sai. Nhưng khi bài toán đó ở dạng tổng quát và đặt ra tình huống giải quyết bài toán trong tin học thì phần lớn học sinh thường lúng túng và khó khăn trong việc tìm lời giải của bài toán từ đâu và bắt đầu như thế nào? điều đó gây tâm lý chán nản, thiếu tự tin đối với môn học cho các em. Trên cơ sở đó để giúp học sinh định hướng tốt trong quá trình vận dụng để lựa chọn và xây dựng thuật toán thì thầy, cô giáo cần tạo cho học sinh thói quen tìm thuật toán cho bài toán đặt ra từ các các bài toán cơ bản quen thuộc mà các em đã biết theo ngôn ngữ tự nhiên hoặc các thuật toán tương tự đã có, khai thác các yếu tố đặc trưng của bài toán để tìm thuật toán áp dụng cho các bài toán mới tương tự. Việc áp dụng thuật toán của các bài toán để xây dựng thuật toán cho các bài toán tương tự là một quá trình giúp học sinh rèn luyện kỹ năng xây dựng thuật toán để giải các bài toán trong tin học 10, 11.
3. Các giải pháp thực hiện
3.1.	Các bước tiến hành
1. Lựa chọn và xây dựng hệ thống bài toán cơ bản, phù hợp để thực hiện và rèn luyện kỹ năng xây dựng thuật toán thông qua các buổi học, mỗi buổi học nên chọn một đến hai bài toán cơ bản để mở rộng và phát triển kỹ năng lựa chọn và xác định thuật toán cho các bài toán khác.
2. Củng cố khái niệm Thuật toán và 2 phương pháp để diễn tả thuật toán đó là Liệt kê và dùng Sơ đồ khối
Mỗi buổi học nên xây dựng hệ thống bài tập như sau:
- Trên cơ sở các nội dung trong SGK, lưa họn bài toán cơ bản hoặc bài toán quen thuộc với học sinh để hướng dẫn học sinh lựa chọn và xác định thuật toán.
- Mở rộng bài toán tương tự vẫn giữ nguyên thuật toán ở của các ví dụ đã có để học sinh thông qua đó mà vận dụng.
- Gợi ý học sinh tự đặt ra một bài toán cơ bản trong thực tế để các em tự lựa chọn và xây dựng thuật toán cho phù hợp.
- Mở rộng bài toán để học sinh tự rèn luyện kỹ năng xây dựng thuật toán ở nhà trên giấy sau đó nộp lại để giáo viên kiểm tra đánh giá.
3. Tổ chức cho học sinh hình thành kỹ năng lựa chọn và vận dụng thuật toán thông qua các buổi học có sự hướng dẫn của giáo viên.
4. Cần có hệ thống máy vi tính, máy chiếu. Hệ thống các bài toán và thuật toán để giải quyết các bài toán đó được soạn thảo kỹ lưỡng trên các phần mềm hỗ trợ giảng dạy và học tập. 
5. Tổ chức kiểm tra để thu thập thông tin về khả năng vận dụng, khả năng tư duy thuật toán, lập trình của học sinh.
3.2.	Các biện pháp để tổ chức thực hiện
a. Tìm hiểu và phân biệt "Bài toán" trong Tự nhiên và "Bài toán" trong Tin học.
	- Bài toán trong tự nhiên phần lớn học sinh đã từng học và trả lời được đó là việc từ giả thiết đã cho tìm ra kết luận của bài toán.
- Bài toán trong tin học nói chung là một việc nào đó ta muốn máy tính thực hiện, thường được giải ở dạng tổng quát vì vậy việc xác định bài toán chính là xác định 2 thành phần Input và Output của bài toán, việc chỉ ra được cách để tìm ra Output đó chính là thuật toán của bài toán đã cho.
b. Tìm hiểu khái niệm "Thuật toán" và tầm quan trọng của việc lựa chọn thuật toán để giải quyết các bài toán trong Tin học.
Máy tính ra đời nhằm mục đích giúp con người trong việc xử lý, lưu trữ thông tin theo những yêu cầu riêng. Khi sử dụng máy tính người dùng chỉ quan tâm đến hai yếu tố: đưa vào máy thông tin gì (Input) và nhận được thông tin gì (Output). Muốn máy tính làm được công việc này ta cần chỉ ra cho máy dãy các thao tác mà máy có thể thực hiện được. Đó chính là thuật toán để giải bài toán. 
“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ừ Input của bài toán ta nhận được 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
Từ định nghĩa và tính chất của thuật toán ta thấy thuật toán có các đặc điểm:
	- Dãy hữu hạn các thao tác;
	- Sắp xếp có thứ tự;
	- Từ Input cho ra Output.
Ví dụ: Đi học về để có cơm cho chúng ta ăn bố mẹ chúng ta phải làm những công việc: Lấy gạo đem vo, cho vào nồi, đổ nước, cắm điện, bật công tắc... GV (Giáo viên) có thể đặt ra câu hỏi? Trình tự các công việc này có thể thay đổi được hay không?khi thay đổi có ảnh hướng gì đến các công việc còn lại? Với câu hỏi này Hs sẽ khẳng định rằng thứ tự thự hiện các công việc trên là không thể thay đổi và nếu thay đổi thì công việc thực hiện sẽ không hiệu quả hoặc không thể thực hiện được. Từ đó GV nhấn mạnh tầm quan trọng của thuật toán đó là phải đảm bảo các tính chất và có những đặc điểm như đã nêu.
GV cho Hs vận dụng để trả lời câu hỏi và bài tập số 2, SGK Tin học 10 Tr 44.
Dãy thao tác sau:
Bước 1: Xóa bảng;
Bước 2: Vẽ đường tròn;
Bước 3: Quay lại bước 1.
Có phải là thuật toán không? Tại sao?
Một số học sinh chủ quan, chưa khắc sâu khái niệm và tính chất của thuật toán sẽ trả lời dãy thao tác trên là thuật toán vì nó được biểu diễn theo các bước của thuật toán. Một số học sinh khác sẽ trả lời mặc dù là dãy thao tác chỉ gồm có 3 bước nhưng theo khái niệm và các tính chất của thuật toán dãy thao tác trên lặp đi lặp lại vô hạn không có tính dừng nên không phải là thuật toán.
GV giới thiệu hai cách diễn tả thuật toán: Cách diễn tả cho con người (liệt kê các bước và dùng sơ đồ khối) và cách diễn tả cho máy tính (chương trình). Trong phạm vi kiến thức cách thứ hai sẽ được giới thiệu trong các bài sau, GV giới thiệu kỹ cách thứ nhất:
GV đưa ra ví dụ tìm giá trị lớn nhất của một dãy số nguyên trong Sgk Tin học 10 Tr 33 trên màn chiếu để Hs cùng quan sát và giới thiệu đây là 2 cách diễn tả thuật toán. 
	Liệt kê các bước: Là việc 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.
	Dùng sơ đồ khối: Một số qui ước, ký hiệu.
Ký hiệu
Mô tả
Thao tác nhập, xuất dữ liệu.
Thể hiện các phép tính toán.
Thể hiện các thao tác so sánh.
Trình tự thực hiện các thao tác 
c. Một số ví dụ minh họa.
Ví dụ 1: Xây dựng thuật toán giải phương trình bậc nhất: ax + b = 0 
	GV đặt câu hỏi khi giải một phương trình bậc nhất theo toán học ở dạng tổng quát có thể xảy ra những trường hợp nào?
HS dễ dàng trả lời một phương trình bậc nhất theo toán học có thể xảy ra 1 trong 3 trường hợp (TH):
	TH1: Có nghiệm duy nhất khi a≠0.
	TH2: Vô nghiệm khi a=0 và b≠0.
	TH3: Vô số nghiệm khi a=0; b=0.
Từ đó GV đi đến hướng dẫn Hs diễn tả thuật toán của bài toán ứng với các TH nêu trên. 
Cách 1. Liệt kê các bước:
- Bước 1: Nhập vào 2 số a và b. 
- Bước 2: Xét điều kiện a = 0 ? 
	- Đúng thì chuyển sang bước 3. 
	- Sai thì thông báo phương trình có nghiệm là x = - b/a và kết thúc; 
- Bước 3: Xét điều kiện b = 0 ? 
	- Nếu b = 0, thì thông báo phương trình có vô số nghiệm và kết thúc; 
	- Nếu b ≠ 0, thì thông báo phương trình vô nghiệm và kết thúc;
Cách 2. Dùng sơ đồ khối:
S
Nhập a, b
a=0?
Thông báo nghiệm x=-b/a và kết thúc
Đ
b=0?
S
Đ
Thông báo vô nghiệm và kết thúc
Thông báo vô số nghiệm và kết thúc
	Thông qua ví dụ trên GV phát vấn học sinh về ưu nhược điểm của từng cách diễn tả thuật toán? Sau khi Hs trả lời GV nhấn mạnh.
@. Phương pháp liệt kê: Là phương pháp biểu diễn thuật giải theo ngôn ngữ tự nhiên, không yêu cầu người viết hay người đọc nắm vững các quy tắc. Nhược điểm dài dòng, không thể hiện rõ cấu trúc thuật toán gây khó hiểu cho người đọc dễ dẫn đến nhầm lẫn hoặc xét thiếu các trường hợp.
@. Phương pháp dùng sơ đồ khối: Là công cụ trực quan để diễn đạt các thuật toán, giúp người đọc theo dõi được sự phân cấp các trường hợp, quét hết được các trường hợp còn thiếu và dễ hiểu trình tự quá trình xử lý của thuật toán.
GV gợi ý và yêu cầu học sinh về nhà vận dụng ví dụ 1, phát triển và diễn tả thuật toán cho bài tập 5 SGK Tin học 10 Trang 44 và tìm hiểu các ví dụ SGK.
Ví dụ 2: Thuật toán tìm nghiệm của phương trình bậc hai tổng quát: ax2 + bx + c = 0.
	Với một phương trình bậc 2 cụ thể học sinh có thể vận dụng nhiều kiến thức toán học để giải như: đưa về hằng đẳng thức đáng nhớ, phân tích đa thức thành nhân tử, tính delta.. nhưng ở dạng tổng quát thường các phương pháp trên Hs khó áp dụng được ngoại trừ phương pháp tính delta.
	Với ngôn ngữ toán học tự nhiên các em vừa học xong cấp 2 thì một phương trình bậc 2 tổng quát với phương pháp tính delta học sinh có thể dễ dàng tìm ra nghiệm của phương trình là một trong 3 trường hợp: Vô nghiệm hoặc có nghiệm kép hoặc có 2 nghiệm phân biệt. Dựa vào tính chất này GV hướng dẫn học sinh diễn tả thuật toán và nhấn mạnh thuật toán kết thúc khi 1 trong 3 trường hợp trên xảy ra.
*. Phương pháp liệt kê: 
- Bước 1: Nhập vào 3 hệ số a, b và c. 
- Bước 2: Tính delta = b*b – 4*a*c.
- Bước 3: Xét điều kiện nếu delta < 0, thì thông báo phương trình vô nghiệm và kết thúc. 
	- Bước 4: Nếu delta = 0, thì thông báo phương trình có nghiệm kép –b/(2*a) và kết thúc. 
	- Bước 5: Ngược lại delta > 0, thì thông báo phương trình có hai nghiệm phân biệt x1= (-b + sqrt(delta))/(2*a) và x2=(-b – sqrt(delta))/(2*a) và kết thúc. 
*. Dùng sơ đồ khối như sau: 
Nhập a, b, c (a≠ 0)
deltaß b2- 4ac
delta>0?
Thông báo 2 nghiệm
x1,x2=(-b±sqrt(delta)/(2*a)
và kết thúc
delta=0?
Thông báo nghiệm kép
x=-b/(2*a) và kết thúc
Thông báo vô nghiệm và kết thúc
Đ
S
Đ
S
F. Sau khi hướng dẫn các cách biểu diễn thuật toán để giải bài toán trên:
	- Giáo viên mô phỏng thuật toán với các giá trị cụ thể khác nhau của a, b, c để học sinh khắc sâu tính chất của thuật toán.
	- Nêu ra các ứng dụng của bài toán này trong thực tế: dùng để giải các phương trình bậc 2 trên máy tính cá nhân, tích hợp vào máy tính bỏ túi như: Casio FX 500A, Casio FX 500MS,....yêu cầu học sinh kiểm nghiệm kết quả bằng cách dùng một trong các loại máy tính bỏ túi trên để nhập 3 hệ số a,b,c vào máy là ngay lập tức máy tính sẽ cho nghiệm chính xác của bài toán từ đó tạo cho các em hứng thú tìm tòi cái mới của môn học và hăng say hơn.	
Ví dụ 3: Tìm giá trị bé nhất của một dãy số gồm N phần tử a1, a2,, an. (Bài tập 4 SKG Tin học 10 Trang 44).
GV quay trở lại ví dụ Tìm giá trị lớn nhất của một dãy số nguyên SGK Tin học 10 Trang 33 trong phần giới thiệu thuật toán (Trên màn chiếu) để học sinh quan sát, tìm ra điểm giống và khác nhau của hai ví dụ này từ đó hình thành ý tưởng để vận dụng xây dựng được thuật toán của bài toán. Với ví dụ này sau khi được quan sát thuật toán tìm giá trị lớn nhất học sinh thường chủ quan rất dễ mắc sai lầm trong việc áp dụng xây dựng thuật toán cho bài toàn tìm giá trị bé nhất vì cho rằng từ bài toán tìm Max chỉ cần đổi các dấu lớn (>) thành dấu bé (<) trong thuật toán tìm Max là được. Từ đó dẫn đến thuật toán sai ngay từ bước 3, vì vậy GV cần lưu ý chỉ ra cho HS sự sai lầm này từ đó định hướng cho Hs hình thành ý tưởng để vận dụng và xác định đúng thuật toán cho bài toán tìm Min
A Ý tưởng: 
	- Khởi tạo Min là a1.
- lần lượt với i từ 2 đến N, so sánh Min với ai, nếu ai <Min thì Min nhận giá trị mới là ai, cuối cùng sẽ tìm được Min của dãy số cần tìm.
Với học sinh việc dãy số đã được sắp xếp thì việc chỉ ra giá trị Min là rất đơn giản. Nhưng với dãy số bất kỳ thì có thể có ý tưởng khác khi khởi tạo giá trị ban đầu có thể ở giữa hoặc bất kỳ vị trí nào trong dãy chứ không nhất thiết là giá trị đầu tiên. Tuy nhiên với việc khởi tạo giá trị ban đầu là a1 và với cách duyệt dãy số lần lượt từ đầu đến cuối dãy thì giá trị Min sẽ lần lượt được so sánh với các ai còn lại và như vậy sẽ không bị nhầm lẫn và bỏ sót các trường hợp khi so sánh. Thông qua khái niệm duyệt để học sinh làm quen dần với cách thay đổi giá trị các biến. 
Cách 1: Liệt kê các bước
- Bước 1: Nhập N và dãy a1, a2,, an.
- Bước 2: Min ß a1, iß 2.
- Bước 3: Nếu i > N thì đưa ra giá trị Min rồi kết thúc.
- Bước 4: 4.1: Nếu ai < Min thì Minß ai 
 4.2: iß i+1 rồi quay lại bước 3
Nhập N và dãy a1 ...aN
Minßa1 , iß 2
i>N?
 Minßai
 iß i + 1
Đưa ra Min và kết thúc
Đ
S
S
ai<Min?
Đ
Cách 2: Dùng sơ đồ khối
	Để thể hiện và khẳng định rõ hơn các tính chất của thuật toán với ví dụ này GV cần đưa một hoặc hai dãy số bất kỳ để mô phỏng với các hiệu ứng thể hiện từng bước của thuật toán cho HS quan sát.
	Trên cơ sở của ví dụ này GV yêu cầu học sinh vận dụng vào việc diễn tả thuật toán cho bài toán sắp xếp.
Ví dụ 4: Cho N và dãy số a1,a2,,an hãy sắp xếp dãy số đó thành dãy số không tăng( Bài tập 6 SGK tin học 10 trang 44).
Bài toán sắp xếp là dạng bài toán rất phổ biến và quen thuộc trong cuộc sống hàng ngày đặc biệt là lứa tuổi học sinh như: sắp xếp đội hình nghi thức thiếu nhi từ thấp đếp cao, sắp xếp danh sách HS của lớp...theo một tiêu chí nào đó như tăng dần hoặc giảm dần điểm trung bình chung các môn
	Đối với bài toán này yêu cầu sắp xếp dãy số theo thứ tự không tăng (giảm dần) có nhiều ý tưởng khác nhau để diễn tả thuật toán này như sắp xếp chọn, sắp xếp tuần tự, sắp xếp chèntuy nhiên để đa số HS có thể tiếp thu được nội dung thuật toán GV cần cho Hs quan sát lại Ví dụ 2: Bài toán sắp xếp dãy tăng dần SGK Tin học 10 trang 37 trên cơ sở đó hướng dẫn HS vận dụng xây dựng thuật toán sắp xếp bằng tráo đổi hay gọi là sắp xếp nổi bọt (bubble sort) tương tự như Sgk.
Hs tìm ra sự khác biệt giữa 2 ví dụ này và mấu chốt của vấn đề để giải quyết bài toán này, sẽ có nhiều HS nhầm lẫn hoặc chưa nắm kỹ thuật toán sửa các bước thuật toán trên như ở bước 3 (M>2), bước 6 (iai+1 thành ai <ai+1.
	Giáo viên trình chiếu và hướng dẫn học sinh 2 cách biểu diễn thuật toán.
Cách 1: Liệt kê các bước
	- Bước 1: Nhập N và các số hạng a1,a2,,an.
	- Bước 2: MßN ;
	- Bước 3: Nếu M< 2 đưa ra dãy A đã được sắp xếp và kết thúc.
	- Bước 4: MßM-1, iß0;
	- Bước 5: ißi+1;
	- Bước 6: Nếu i>M quay lại bước 3;
	- Bước 7: Nếu ai <ai+1 

Tài liệu đính kèm:

  • docmot_so_ky_nang_van_dung_thuat_toan_de_giai_cac_bai_toan_co_b.doc