1 Khái Niệm: Thuật toán là một dãy hữu hạn các thao tác được sắp xếp theo một thứ tự xác định, sao cho sau khi thực hiện xong thuật toán thì từ Input của bài toán ta thu được Output c
Trang 11 -> 10 1-> 20
Baøi 4 BAØI TOAÙN VAØ THUAÔT TOAÙN (Tieât 10-14)
I Môc §Ých & Yªu CÌu :
+ Hieơu ñuùng khaùi nieôm baøi toaùn trong Tin hóc
+ Hieơu roõ khaùi nieôm thuaôt toaùn laø caùch giại baøi toaùn maø veă nguyeđn taĩc coù theơ giao cho
maùy tính thöïc hieôn
+ Hieơu vaø thöïc hieôn ñöôïc moôt soâ thuaôt toaùn ñôn giạn trong SGK nhö tìm giaù trò lôùn nhaât
cụa moôt daõy soâ, tìm UCLN cụa hai soâ nguyeđn döông, saĩp xeâp daõy soâ, tìm moôt giaù trò cho tröôùc trong daõy soâ
+ Xađy döïng thuaôt toaùn cho moôt soâ baøi toaùn ñôn giạn Qua ñoù, hình thaønh moôt soâ kyû naíng
chuaơn bò tieâp thu vieôt hóc Ngođn ngöõ laôp trình : Caùch duøng bieân, khôûi táo giaù trò bieân…
+ Caùc vaân ñeă tređn goùp phaăn phaùt trieơn khạ naíng tö duy khi giại quyeât vaân ñeă trong khoa
hóc, cuõng nhö trong cuoôc soâng
II PHƯƠNG TIỆN DẠY HỌC :
+ Giáo án
III CÁC BƯỚC LÊN LỚP :
1 ư n §Þnh Tư Chøc:
+ Ổn định vị trí
+ Điểm danh, kiểm tra sĩ số
2. Nĩi Dung Bµi Míi
Trong toaùn hóc ta nhaĩc nhieău ñeân khaùi nieôm “baøi toaùn” vaø ta hieơu ñoâ laø nhöõng vieôc con ngöôøi
caăn phại thöïc hieôn sao cho töø nhöõng döõ kieôn ñaõ coù phại tìm ra hay chöùng minh moôt keât quạ naøo ñoù
Vaôy khaùi nieôm “baøi toaùn ” trong tin hóc coù gì khaùc khođng? Ñeơ bieât ñöôïc ñieău naøy hođm nay ta
hóc baøi soâ 4:
Baøi 4 BAØI TOAÙN VAØ THUAÔT TOAÙN
Thíi
I.Baøi Toaùn :
1) Khaùi Nieôm :
Baøi toaùn laø nhöõng vieôc con ngöôøi
muoân maùy tính thöïc hieôn
VD: Tính giaù trò cụa caùc bieơu thöùc : a+b, a.b
Hieơn thò danh saùch hóc sinh cụa lôùp 10A3 ->
Ñađy laø nhöõng Baøi toaùn
• GV: Thaôt ra thì khaùi nieôm baøi
toaùn trong Tin hóc cuõng töông töï nhö baøi toaùn trong toaùn hóc
• GV: Em naøo coù theơ cho thaăy
moôt vaøi ví dú veă baøi toaùn?
Trang 2Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Huúnh Thĩc Kh¸ng
Thêi
2 Các yếu Tố:
Khi máy tính giải 1 bài toán ta cần
quan tâm tới 2 yếu tố:
Thông tin đưa vào máy : Input.
Thông tin muốn máy tính đưa
ra :Output.
VD1: Tìm ƯCLN của hai số nguyên dương.
VD2: Kiểm tra tính nguyên tố của số nguyên
dương N
VD3: Cho một dãy 10 số : a1, a2,…a9, a10, tìm số
lớn nhất trong dãy
II Thuật Toán:
• HS trả lời :
• GV: Đứng trước một bài toán
công việc đầu tiên ta cần làm là gì?
• HS: Công việc đầu tiên là đi
xác định đâu là giữ liệu đề cho đâu là điều cần đật được
• GV: Rất đúng, khi giải 1 bài
toán ta cần xác định đâu là giả thiết, đâu là kết luận cần đạt được Vậy trong Tin học khi đưa cho máy tính giải 1 bài toán ta cần quan tâm đến các yếu tố nào?
• GV: Ghi đề lên bảng, hỏi:
• HS trả lời:
• GV: Ghi đề lên bảng, hỏi:
• HS trả lời:
• GV: Ghi đề lên bảng, hỏi:
• HS trả lời:
• GV: Trong toán để đi từ GT->
KL chúng ta cần biết gì?
• HS trả lời: Biết cách giải hay
p2 giải
• GV: Đúng, vậy quá trình đi từ
Input -> Output được gọi là gì?
• GV: Quá trình đi từ Input ->
Output được gọi là thuật toán Mà vì sao lại gọi là thuật toán?
• GV: Từ thuật toán (Algorithm)
xuất phát từ tên một nhà toán học Al
Khwarizmi sống ở Trung Á ở thế kỷ
IX, ông là tác giả 1 cuốn sách số học trong đó ông đã dùng phương pháp mô tả rất rõ ràng mạch lạc cách giải 1 bài toán Các nhà khoa học thế hệ sau đều học theo như thế
Trang 3VD1: Mô tả quá trình “Nấu cơm” :
Input : Gạo, Nước, Nồi, Lửa
Output : Nồi cơm chín.
B1: Vo gạo, để nước vừa phải.
B2: Nổi lửa, bắc nồi lên.
B3: Đợi sôi, chắt nước, hạ lửa.
B4: Được nồi cơm chín.
Quá trình mô tả như trên người ta gọi là thuật
toán “Nấu cơm” Vậy thuật toán là gì?
1) Khái Niệm:
Thuật toán là một dãy hữu hạn các thao tác
được sắp xếp theo một thứ tự xác định, sao
cho sau khi thực hiện xong thuật toán thì từ
Input của bài toán ta thu được Output cần tìm
VD2 Tìm ƯCLN của 2 số nguyên dương a, b:
Input : a, b.
Output :ƯCLN(a, b)
Ta có thuật toán Ơclid để tìm ƯCLN:
B1: Nhập giá trị cho a, b (cho a, b 1 giá trị).
B2: Nếu a =b Tbáo ƯCLN(a,b)=a, dừng.
B3: Nếu a> b thì a = a-b, Quay lại B2
B4: Nếu a< b thì b = b-a, Quay lại B2
VD3: Tìm ƯCLN của 2 số nguyên dương
12,9:
Input : 12, 9.
Output :ƯCLN(12, 9)
2
2
3
2
3
2 Các Đặc trưng Của Thuật Toán :
a) Tính hữu hạn:
• Việc nghiên cứu về thuật tooancs vai trò rất quan trọng trong khoa học máy tính, vì máy tính chỉ giải quyết vấn đề khi đã có hướng dẫn giải rõ ràng và đúng Nếu hướng dẫn sai hoặc không rõ ràng thì máy tính không thể giải đùng được bài toán
• Trong khoa học máy tính, thuật toán được định nghĩa là một dãy hữu hạn các bước không mập mờ và có thể thực thi được, quá trình hành động theo các bước này phải dừng và cho kết quả như mong muốn
• GV: Tìm ƯCLN của 2 số
nguyên dương 51, 68:
• HS: Lên bảng làm.
Trang 4Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Huúnh Thĩc Kh¸ng
Thêi
Thuật toán phải kết thúc sau một số
hữu hạn lần thực hiện các thao tác
b) Tính xác định :
Sau khi thực hiện một thao tác thì hoặc
là thuật toán kêt thúc hoặc là có đúng 1
thao tác xác định để được thực hiện tiếp
c) Tính đúng đắn:
Sau khi thuật toán kết thúc ta phải thu
được Output cần tìm
d) Đầu vào và Đầu ra:
Mọi thuật toán, dù có đơn giản đến
mấy cũng phải nhận dữ liệu vào, xử lý nó
và đưa ra kết quả cuối cùng
e) Tính hiệu quả :
Dễ hiểu, dễ thực hiện và thực hiện
nhanh
f) Tính phổ dụng:
Một thuật toán phải áp dụng được cho
mọi trường hợp của bài toán chứ không
phải áp dụng cho một vài trường hợp cụ
thể
• GV: Số bước hữu hạn và tính
chất dừng của thuật toán gọi chung là tính hữu hạn
• GV: Tính chất hữu hạn của
thuật toán là một tính chất khá hiển nhiên Ta có thể tìm ở đau ra một lời giải vấn đề- bài toán có vô số bước giải?
• GV: Tính “Không mập mờ” và
“có thể thực thi được” gọi chung là tính xác định
• GV: Tính đúng đắn cũng là một
tính chất khá hiển nhiên nhưng là tính chất khó đạt tới nhất Thật vậy, khi giải quyết 1 vấn đề- bài toán ta luôn mong muốn lời giải của mình sẽ cho kết quả đúng nhưng không phải lúc nào cũng đạt được
• Mọi học sinh khi làm bài kiểm tra điều muốn bài làm của mình có kết quả đúng, nhưng thực tế trong lớp chỉ có một số em làm đúng
• GV: Đây cũng là một tính chất
khá hiển nhiên vì ta phải có GT , có thông tin gì đó thì ta mới có thể biết mình cần làm gì
• Sau khi làm một việc gì đó thì
ta phải thu được một kết quả nào đó, nếu làm mà không có kết quả gì thì làm làm gì cho mệt
• GV: Tính hiệu quả của thuật
toán được đánh giá dựa trên một số tiêu chuẩn như: khối lượng tình toán, không gian, thời gian…
Trang 53 Các Cách Biểu Diễn Thuật Toán :
Ngoài cách liệt kê như trên người ta
còn dùng sơ đồ khối để biểu diễn thuật
toán
Trong sơ đồ khối người ta dùng một số
khối để biểu diễn
Hình : Biểu diễn nhập / xuất
dữ liệu
Hình : Thể hiện thao tác so
sánh (điều kiện)
Hình : Thể hiện các phép
toán
Mũi tên : Quy định trình tự thực
hiện các thao tác
III Một Số Ví Dụ :
Ví Dụ 1:
Kiểm tra tính nguyên tố của một số
nguyên dương.
Bài toán : số 31 là nguyên tố hay
không nguyên tố?
Ví Dụ 2:
Bài toán sắp xếp.
Bài toán : Sắp xếp dãy: 3, 1, 5, 2, 4
theo thứ tự tăng dần
Ví Dụ 3:
Bài toán tìm kiếm tuần tự.
Bài toán : Tìm xem số 5 có trong dãy
số : 1 7 4 5 6 9 8 không? Nếu có thì ở
vị trí thứ mấy?
Ví Dụ 4:
Bài toán tìm kiếm nhị phânï.
Bài toán : Tìm xem số 8 có trong dãy
số : 1 4 5 6 8 9 12 14 không? Nếu có thì ở vị trí thứ mấy?
VD: Tìm ƯCLN của 2 số a, b :
• GV: Bây giờ lớp chúng ta sẽ
tiến hành thảo luận nhóm trong 15 phút, để tìm hiểu về các ví dụ
• GV: Chia lớp thành 5 nhóm
mỗi nhóm có nhiệm vụ nghiên cứu và thảo luận về ý tưởng và thuật toán của 2 ví dụ, sau đó thầy sẽ gọi bất kỳ 1 thành viên của 3 trong 5 nhóm lên trình bày thuật toán và làm bài tập minh hoạ của
1 ví dụ bất kỳ của 1trong 2 ví dụ mà nhóm đảm trách Chúng ta có tối đa là 10 phút để trình bày
• GV: Nếu nhóm nào có nhu
cầu đổi đề sẽ trừ 2 điểm, đổi người trình bày trừ 3 điểm trong tổng số điểm đạt được
4 Cđng Cè H íng DÉn Häc ë Nhµ :
Thế nào là bài toán trong Tin học
Xác định Input và Out put của một bài toán
Thuật toán là gì? Các cách mô tả thuật toán, mô tả một số thuật toán đơn giản
Xem lại các ví dụ minh hoạ để hiểu rõ hơn về thuật toán
5 ChuÈn bÞ bµi cho tiÕt sau :
a = b
Đ
ƯCLN(a, b)=b
a >
a = a- b
S
S
b = b-
b
a = b
Đ
ƯCLN(a, b)=b
a >
b Đ
a = a- b
S
S
b = b- a
Trang 6Gi¸o ¸n Tin Häc Líp 10 Trêng THPT Huúnh Thĩc Kh¸ng
Tìm hiểu khái niệm ngôn ngữ là gì? Ngôn ngữ lập trình là gì?