Bi 4 BI TON v THUT TON I
Bài 4. BÀI TOÁN và THUẬT TOÁN
I. BÀI TOÁN n 1. 2. 3. 4. Xét các yêu cầu sau : Giải phương trình bậc hai ax 2+bx+c=0 Viết một dòng chữ ra màn hình máy tính. Quản lý các cán bộ trong một cơ quan. Tìm ước chung lớn nhất của hai số nguyên dương a và b. 5. Xếp loại học tập các học sinh trong lớp. Trong TOÁN HỌC Trong TIN HỌC Trong các yêu cầu trên, Yêu cầu 1 và 4 được Tất cả cácyêu yêucầu trên nào được xem như là một bài toán? xem là bài toán đều được xem là bài toán
Khái niệm bài toán trong Tin học? Bài toán là việc nào đó ta muốn máy tính thực hiện.
Các yếu tố cần quan tâm khi giải một bài toán TOÁN HỌC - Giả thiết TIN HỌC Đưa vào máy thông tin gì TOÁN HỌC? Cần lấy ra - Kết luận thông tin gì THUẬT NGỮ Input Output Trong Tin học, để phát biểu một bài toán, ta cần trình bày rõ Input và Output của bài toán đó.
CÁC VÍ DỤ VD 1 : Giải phương trình bậc hai ax 2 + bx + c = 0 (a ≠ 0). n Input : Các số thực a, b, c (a ≠ 0) n Output : Số thực x thỏa : ax 2+bx+ c = 0 VD 2 : Tìm giá trị nhỏ nhất của các số trong một dãy số. n Input : Các số trong dãy số. n Output : Giá trị nhỏ nhất trong dãy số.
CÁC VÍ DỤ (tt) VD 3 : Tìm ước chung lớn nhất của hai số nguyên dương a và b. Hai số nguyên dương a và b. l Input : ? l Output : ? UCLN của a và b. VD 4 : Xếp loại học tập các học sinh trong lớp. Bảng điểm của học sinh. l Input : ? Bảng xếp loại học tập. l Output : ?
Nêu một bài toán và chỉ rõ Input, Output của bài toán đó? Xem thêm các ví dụ trong SGK/24, 25
TÓM LẠI Một bài toán được cấu tạo bởi 2 thành phần cơ bản : n Input (Các thông tin đã có) n Output (Các thông tin cần tìm từ Input)
II. THUẬT TOÁN Bài toán Input Bằng cách nào? Giải bài toán Output Thuật toán Hướng dẫn các thao tác cho máy thực hiện để tìm ra lời giải
BÀI TOÁN Input THUẬT TOÁN (Thao tác 1 Thao tác 2. . . Thao tác n) Output Thuật toán để giải một bài toán là : Thuật để giải toán là một dãy • Một toán dãy hữu hạnmột cácbài thao tác. hữu hạn các thao tác được sắp xếp theo • Các thao sắpcho xếpsau theo một trình tự tác xác được định sao khimột thực trìnhdãy tự xác hiện thaođịnh. tác đó, từ Input của bài toán này, ta nhận được Output cần tìm. • Sau khi thực hiện dãy thao tác đó, từ Input ta tìm được Output của bài toán.
MÔ TẢ CÁC THAO TÁC TRONG THUẬT TOÁN Nêu ra tuần tự các thao tác cần tiến hành Liệt kê Có 2 cách mô tả Dùng sơ đồ khối Dùng một số biểu tượng thể hiện các thao tác
a) LIỆT KÊ VD : Tìm nghiệm phương trình bậc nhất tổng quát : ax + b = 0 ( ) Giải toán thông thường: n Nếu a = 0 thì ( ) không phải là pt bậc nhất. + Neáu b = 0 thì ( ) voâ số nghieäm. + Neáu b ≠ 0 thì ( ) voâ nghieäm. n Nếu a ≠ 0 thì ( ) có nghiệm x = -b/a. LIỆT KÊ : • Bước 1 : Nhập a, b. • Bước 2 : Nếu a = 0 thì quay lại bước 1, ngược lại thì qua bước 3. • Bước 3 : Gán cho x giá trị -b/a, rồi qua bước 4. • Bước 4 : Đưa ra kết quả x và kết thúc.
b) DÙNG SƠ ĐỒ KHỐI n Trong sơ đồ khối, người ta dùng một số biểu tượng thể hiện các thao tác như : : Thể hiện các thao tác nhập, xuất dữ liệu : Thể hiện các phép toán : Thể hiện các thao tác so sánh : Quy định trình tự thực hiện các thao tác
VD: Tìm nghiệm phương trình bậc nhất tổng quát : ax + b = 0 LIỆT KÊ • Bước 1 : Nhập a, b. • Bước 2 : Nếu a = 0 thì quay lại bước 1, ngược lại thì qua bước 3. • Bước 3 : Gán cho x giá trị -b/a, rồi qua bước 4. • Bước 4 : Đưa ra kết quả x và kết thúc. SƠ ĐỒ KHỐI Nhaäp a, b Ñuùng a=0 Sai x = -b/a Ñöa ra x vaø keát thuùc
LƯU Ý Ta cần diễn tả thuật toán bằng một ngôn ngữ sao cho máy tính có thể hiểu và thực hiện được, ngôn ngữ đó gọi là ngôn ngữ lập trình. Kết quả diễn tả thuật toán như vậy gọi là chương trình.
III. VÍ DỤ VỀ THUẬT TOÁN Bài toán 1 : Cho dãy số gồm N số sau (N = 5): 11 6 20 4 8 Tìm giá trị NHỎ NHẤT của dãy số trên ?
HÖÔÙNG DAÃN: - Goïi Min laø giaù trò nhoû nhaát caàn tìm. - Gaùn Min baèng giaù trò phaàn töû ñaàu tieân cuûa daõy. Min=6 11 6 20 4 - Gán Laàn i löôït so saùnh Min vôùi caùc phaàn töû =2 tieáp theo trong daõy. Taïi moãi vò trí so saùnh : Min=11 Min=4 + Neáu Min lôùn hôn giaù trò phaàn töû caàn so saùnh trong daõy thì laáy giaù trò cuûa phaàn Giaù trò nhoû nhaát: 4 töû ñoù gaùn laïi cho Min. - Khi so saùnh ñeán phaàn töû cuoái cuøng trong daõy+ Tăng soá thìi lên Min 1 đơn seõ mang giaù trò nhoû nhaát vị cuûa daõy. 8 Biến i lưu trữ vị trí tiếp theo mà Min sẽ so sánh
SƠ ĐỒ KHỐI : Nhaäp N vaø daõy a 1, …, a. N Min = a 1 , i = 2 i <=N Ñuùng Sai Min > ai Ñuùng Min = ai i = i+1 Sai Ñöa ra Min roài keát thuùc
LIỆT KÊ § Böôùc 1 : Nhaäp N vaø daõy a 1, …, a. N. § Böôùc 2 : Ñaët Min= a 1, i=2; § Böôùc 3 : Neáu i<=N thì thöïc hieän böôùc 4, neáu khoâng thì chuyeån ñeán böôùc 5. § Böôùc 4 : 4. 1. Neáu Min > ai thì ñaët Max=ai. 4. 2. Taêng i moät ñôn vò roài quay veà böôùc 3 § Böôùc 5 : Ñöa ra Min roài keát thuùc.
4. VÍ DỤ VỀ THUẬT TOÁN (tt) Bài toán 2 : Tìm giá trị LỚN NHẤT của một dãy số với Input và Output như sau: n Input : Số nguyên dương N và dãy N số a 1, . . . , a. N. n Output : Giá trị lớn nhất (Max) của dãy số. Mô tả thuật toán để giải bài toán này theo cả 2 cách liệt kê và dùng sơ đồ khối.
CÁC THUẬT NGỮ CHÍNH • Bài toán • Input • Output *Một dãy hữu hạn các thao tác. *Các thao tác được sắp xếp theo một trình tự xác định. Là việc nào đó ta muốn *Sau khi thực hiện dãy thao tác tínhtathực hiện Output đó, máy từ Input tìm được Các thông tin đã có của bài toán. • Thuật toán • Sơ đồ khối (các giả thiết) Các thông tin cần tìm từ Input (kết luận) Dùng các biểu tượng qui ước để thể hiện các thao tác trong thuật toán
BÀI TẬP VỀ NHÀ Bài 1, 3, 4, 5, 6 trang 27 – 28 (SGK)
- Slides: 22