skkn lựa chọn và thiết kế thuật toán
Trang 1THUẬT TOÁN
I LÝ DO CHỌN SÁNG KIẾN
Ngày nay, công nghệ thông tin được ứng dụng rộng rãi trong thực tế ở nhiềulĩnh vực Để đáp ứng nhu cầu đó của xã hội, môn Tin học đã được đưa vàotrường trung học phổ thông nhằm bước đầu cung cấp cho các em học sinh nhữngkiến thức cơ bản Tuy nhiên, do đặc trưng của môn học có những khái niệm trừutượng nên các em gặp nhiều khó khăn trong quá trình tiếp thu bài Đặc biệt trongchương trình Tin học 11, khi học phần lập trình đòi hỏi phải tư duy thì khó khănnhất đối với các em là bước “Lựa chọn và thiết kế thuật toán”
Việc lựa chọn và thiết kế thuật toán để giải bài toán trên máy tính là mộtbước rất quan trọng Bởi vì nếu bỏ qua bước này thì đôi khi việc lập trình cho rakết quả không tối ưu Cũng giống như khi giải một bài tập toán, vật lý, để tìm
ra kết quả chính xác thì buộc học sinh phải xác định công thức cần áp dụng làcông thức nào
Khi nắm vững cách lựa chọn và thiết kế thuật toán, các em học sinh có thể
dễ dàng viết chương trình để giải bài toán trên máy tính bằng bất kỳ ngôn ngữbậc cao nào Làm được việc này sẽ kích thích sự hứng thú học môn Tin học hơn.Điều quan trọng hơn, việc lựa chọn và thiết kế thuật toán để giải bài toántrên máy tính giúp rèn luyện cho học sinh khả năng tư duy, sáng tạo, biết phântích và giải quyết tình huống Đây là những kỹ năng rất cần thiết để sau này các
em hoà nhập vào thực tế cuộc sống
Từ những lý do nêu trên, qua thực tế giảng dạy bản thân tôi thấy cần đưa ramột số kinh nghiệm để trao đổi với các đồng nghiệp nhằm giúp học sinh bướcđầu hiểu rõ và tiếp cận với thuật toán giải bài toán để việc lập trình đạt kết quả tốthơn Vì thời gian có hạn, tôi chỉ trình bày cách xây dựng thuật toán để giải bàitoán bằng cách lập sơ đồ khối
Trong phần trình bày của tôi không tránh khỏi những thiếu sót Tôi rấtmong sự trao đổi, góp ý của quý thầy cô đồng nghiệp Tôi xin chân thành cảm
ơn.
Trang 2II.THỰC TRẠNG TRƯỚC KHI THỰC HIỆN CÁC GIẢI PHÁP CỦA SÁNG KIẾN
1) Thuận lợi:
− Tồn ngành, tồn xã hội đang đề cao việc ứng dụng cơng nghệ thơngtin vào tất cả các lĩnh vực
− Mơn Tin học là mơn chính khố trong trường phổ thơng
− Các em học sinh thích được thực hành trên máy tính để nghiên cúutìm tịi
− Ngơn ngữ bậc cao trong mơn Tin học gần gũi với ngơn ngữ giao tiếptrong cuộc sống
III NỘI DUNG ĐỀ TÀI
1) Cơ sở lý luận
− Đa số các câu nĩi hàng ngày của con người như: “Các bước để vá mộtruột xe bị lủng”, “Nếu….thì…”, “Nếu…thì…ngược lại…”, “Trong khi
….thì làm….” đều cĩ thể diển đạt bằng ngơn ngữ Sơ đồ khối
− Điều quan trọng là khi đã xây dựng được thuật tốn bằng sơ đồ khối thì
ta cĩ thể sử dụng bất kỳ một ngơn ngữ bậc cao nào cũng viết đượcchương trình một cách rất thuận tiện và đảm bảo tính tối ưu
2) Nội dung,bi ện pháp thực hiện các giải pháp của sáng kiến.
Trang 3TĨM TẮT LÝ THUYẾT
A) BÀI TOÁN.
• Trong phạm vi tin học, cĩ thể quan niệm bài tốn là một việc nào đĩ mà tamuốn máy tính thực hiện
• Khi dùng máy tính giải bài tốn, ta cần quan tâm đến hai yếu tố:
o Đưa vào máy thơng tin gì (Input)
o Cần lấy ra thơng tin gì (Output)
B) THUẬT TOÁN
a) Thuật tốn để giải một bài tố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 thao tác ấy ,
từ Input của bài tốn , ta nhận được Output cần tìm.
Những đặc trưng cơ bản của thuật tốn:
− Tính tổng quát: Thuật tốn khơng đề cập chỉ một bài tốn riêng lẽ mà bao hàm một lớp bài tốn cùng một kiểu,
− Cĩ giới hạn: Quá trình biến đổi từ thơng tin ban đầu đến kết quả cuối cùng qua một số giới hạn các biến đổi.
− Tính duy nhất: Tồn bộ quá trình biến đổi, cũng như trình tự thực hiện phải được xác định và là duy nhất Như vậy khi dùng thuật tốn cùng một tin tức ban đầu phải cĩ cùng một kết quả.Trong thuật tốn ở mỗi giai đoạn phải nêu chính xác các bước tiếp theo, cĩ nghĩa là thứ
tự thực hiện, các thao tác và quyết định phải được quy định rõ ràng.
− Tính đúng đắn: Sau khi thuật tốn kết thúc, ta phải nhận được Output cần tìm.
Thuật tốn cĩ thể phân loại như sau:
− Thuật tốn khơng phân nhánh
− Thuật tốn cĩ phân nhánh
− Thuật tốn theo chu trình cĩ bước lặp xác định và cĩ bước lặp khơng xác định.
Trang 4Thuật toán không phân nhánh là thuật toán đơn giản nhất Trong thực
tế thường gặp thuật toán phân nhánh theo các điều kiện so sánh đúng hoặc sai Phổ biến nhất trong các bài toán thực tế là thuật toán gồm nhiều chu trình , theo nhiều nhánh, đó là đặc trưng của thuật toán giaỉ các bài toán khoa học kỷ thuật
b) Các kí hiệu để diễn tả thuật toán bằng sơ đồ khối.
Thể hiện thao tác so sánh
Thể hiện các phép tính toán
Thể hiện các thao tác nhập, xuất dữ liệu
Quy định trình tự thực hiện các phép toán
Trang 5MỘT SỐ VÍ DỤ
VỀ LỰA CHỌN VÀ THIẾT KẾ THUẬT TOÁN
Thuật toán không phân nhánh
VD1 :
Cho A=x2+y2;B=x+y+3A;
C=xy+A-2B2;x,y ∈R Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối để tính C
Trang 6VD2:
Tí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= 2gh, trong
đó g là gia tốc rơi tự do và g = 9.8 m/s2 Độ cao h được nhập từ bàn phím Hãy mô tả
thuật toán giải bài toán bằng sơ đồ khối.
- Input: độ dài 3 cạnh a,b,c
- Output: chuvi, dientich, các đường cao ha,hb,hc
Trang 7- Input: Toạ độ 3 điểm A, B và C;
- Output: Tích vô hướng AB AC;
; Bài 3
Nhập từ bàn phím toạ độ 3 điểm A,B,C Tính độ dài các đoạn thẳng AB,AC vàBC
Hướng dẫn:
- Input: Toạ độ 3 điểm A, B và C;
- Output: Độ dài các đoạn thẳng AB,AC và BC
Trang 8 Thuật toán có phân nhánh
Trang 10S Đ
Nhập A,B,C
A > B
B > C
A > C
Thông báo Max
và kết thúc
Trang 11VD5:
Cho phương trình bậc hai ax2+bx+c=0
Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối
* Xác định bài toán
• Input: a,b,c (a<>0)
• Output: Nghiệm x thoả phương trình ax2+bx+c=0
Sơ đồ khối
S
Đ S
Đ
Nhập a,b,c (a<>0)
Trang 12nếu nếu nếu
VD6: Cho bài toán
Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối
Trang 13BÀI TẬP ĐỀ NGHỊ
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối:
Bài 1: Nhập dữ liệu là tháng trong năm
Hướng dẫn
- Tháng trong năm phải từ 1 đến 12
- Nếu thoả thì thông báo là tháng, ngược lại thì thông báo khôngphải là tháng trong năm
Bài 2: Nhập vào một năm cho ra số ngày của năm đó
Hướng dẫn
- Có hai loại ngày là 365 ngày và 366 ngày
- Năm nhuận là 365 ngày, không nhuận là 366 ngày
- Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưngkhông chia hết cho 100
Bài 3: Tính căn bậc hai của một số
Hướng dẫn
- Sử dụng hàm Sqrt(x)
- Nếu nhập vào số âm thì thông báo số đó không có căn bậc hai
Bài 4: Giải bất phương trình ax+b> 0
Hướng dẫn
- Sử dụng thuật toán như các bài đã gặp
Bài 5: Nhập một điểm thi của học sinh và phân loại nếu điểm thấp hơn 5 thì khôngđạt, từ 5 đến < 6.5 thì trung bình, từ 6.5 đến <8 thì khá, từ 8 đến < 9 thì giỏi, >=9đến 10 thì xuất sắc
Hướng dẫn
- Sử dụng If lồng nhau
Trang 14 Thuật toán theo chu trình có bước lặp xác định.
Sơ đồ:
Sai Đúng
Điều kiện Câu lệnh
Trang 16Tính giai thừa của một số nguyên dương n (n!=1.2 (n-1).n
Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối
* Xác định bài toán
• Input: Số nguyên dương n;
• Output: Giai thừa của n (GT)
Trang 18BÀI TẬP ĐỀ NGHỊ
Hãy mô tả thuật toán giải các bài toán sau bằng sơ đồ khối:
Bài 1: Tính tổng
S= 1 + 2 + 3 + ……… + nvới n nhập từ bàn phím
Trang 19 Thuật toán theo chu trình có bước lặp không xác định.
Sơ đồ:
VD10:
Tìm ước số chung lớn nhất của hai số nguyên dương a và b
Hãy mô tả thuật toán giải bài toán bằng sơ đồ khối
Nhập a, b
a←a - b Thông báo
Sai
Đúng
Điều kiện
Câu lệnh
Trang 21Hãy mơ tả thuật tốn giải các bài tốn sau bằng sơ đồ khối:
- Chú ý: N<=1 thì thơng báo “Khơng xét”
- Lấy N chia cho các số tự nhiên lớn hơn 1 và nhỏ hơn nĩ Nếu N
là số nguyên tố thì các phép chia cĩ số dư khác 0 Nếu N khơng
là số nguyên tố thì sẽ cĩ một phép chia cĩ dư bằng 0
IV KẾT QUẢ
Nĩi chung, thơng qua một mơn học, giáo viên khơng chỉ truyền đạt cho họcsinh những kiến thức tối thiểu mà cịn kích thích cho các em sự hứng thú học tập, sựtìm tịi sáng tạo Từ đĩ các em sẽ mang những điều đã học vận dụng vào thực tế cuộcsống Riêng bộ mơn Tin học, người giáo viên càng cĩ nhiểu thuận lợi để thực hiệnđiều đĩ Thực tế sau khi áp dụng sáng kiến kinh nghiệm này vào giảng dạy mơn Tinhọc lớp 11 ở trường tơi nhận thấy chất lượng bộ mơn được nâng cao đáng kể:
− Kỹ năng tư duy, sáng tạo, biết phân tích và giải quyết tình huống của các emhọc sinh ngày càng tốt hơn
− Các em cĩ thể tự viết được những chương trình để giải các bài tập Tốn, Lý,Hố của bậc phổ thơng
Trang 22lựa chọn và thiết kế thuật tốn để viết một chương trình nên các em học sinhcàng yêu thích và say mê học hơn, kết quả học tập của các em tốt hơn.
V BÀI HỌC KINH NGHIỆM
Sau khi thực hiện sáng kiến tơi rút ra những kinh nghiệm sau:
− Vì “lựa chọn và thiết kế thuật tốn” nằm trong chương trình Tin học lớp 10nhưng được ứng dụng vào chương trình Tin học lớp 11, nên khi giáo viên yêucầu viết chương trình để giải một bài tốn thì học sinh hay bỏ qua bước này
− Trong quá trình dạy luơn phát huy tính tích cực, chủ động, sáng tạo của họcsinh
− Tổ chức hoạt động nhĩm để các em thảo luận và xây dựng ý tưởng trước khithiết kế thuật tốn
− Hướng dẫn để giúp các em học sinh biết lựa chọn thuật tốn tối ưu nhất
− Tạo khơng khí học tập thân thiện
VI TÀI LIỆU THAM KHẢO
- Tin học lớp 10 – Nhà xuất bản giáo dục
- Tin học lớp 10 – Sách giáo viên– Nhà xuất bản giáo dục
- Tin học lớp 11 – Nhà xuất bản giáo dục
- Tin học lớp 11 – Sách giáo viên– Nhà xuất bản giáo dục
Vĩnh an, ngày 20 tháng 10 năm 2011
Người thực hiện