Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (155.79 KB, 20 trang )
<span class='text_page_counter'>(1)</span>Bài cũ: 1.Nêu khái niệm bài toán, thuật toán? 2.Trình bày thuật toán bằng cách các bước liệt kê bài toán giải phương trình bậc nhất : ax + bx = 0 (a ≠ 0)..
<span class='text_page_counter'>(2)</span> 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.
<span class='text_page_counter'>(3)</span> Tiết 11. Bài 4. BÀI TOÁN và. THUẬT TOÁN (t2).
<span class='text_page_counter'>(4)</span> 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.
<span class='text_page_counter'>(5)</span> DÙNG SƠ ĐỒ KHỐI Quy ước: 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.
<span class='text_page_counter'>(6)</span> VD 1: Từ thuật toán gpt : ax + b = 0 theo cách liệt kê hãy biểu diễn thuật toán bằng sơ đồ khối. 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 Nhập a, b. a=0. đúng. Sai. x = -b/a Đưa ra x, kết thúc.
<span class='text_page_counter'>(7)</span> VD 2: Cho dãy số gồm N số sau (N = 6): 11 7 25 4 15 9 Tìm giá trị NHỎ NHẤT của dãy số trên ? Hãy. xác định bài toán? Tìm ý tưởng? Xây dựng thuật toán?.
<span class='text_page_counter'>(8)</span> Xác định bài toán Input. : Số nguyên dương N và dãy N số a1,...,aN. Output : Giá trị lớn nhất (Max) của dãy số..
<span class='text_page_counter'>(9)</span> Tìm ý tưởng?. . Gán Min bằng giá trị phần tử đầu tiên của dãy.. . Lần lượt so sánh Min với các phần tử tiếp theo trong dãy. Tại mỗi vị trí so sánh : + Nếu Min bé thua giá trị phần tử cần so sánh trong dãy thì lấy giá trị của phần tử đó gán lại cho Min.. . . - Khi so sánh đến phần tử cuối cùng trong dãy số thì Min sẽ mang giá trị nhỏ nhất của dãy..
<span class='text_page_counter'>(10)</span> Thuật toán: Liệt kê Bước 1 : Nhập N và dãy a1,…, aN. Bước 2 : Đặt Min= a1, i=2; Bước 3 : Nếu i<=N thì thực hiện bước 4, nếu không thì chuyển đến bước 5. Bước 4 : 4.1. Nếu Min < ai thì đặt Min =ai. 4.2. Tăng i một đơn vị rồi quay về bước 3 Bước 5 : Đưa ra Min rồi kết thúc..
<span class='text_page_counter'>(11)</span> SƠ ĐỒ KHỐI :. Nhập N và dãy a1,…, aN. Min = a1 , i = 2 i <=N đúng Sai. Min > ai đúng. Min = ai i = i+1. Sai. Đưa ra Min rồi kết thúc.
<span class='text_page_counter'>(12)</span> BÀI TẬP VỀ NHÀ 1.Trình bày thuật toán bằng 1 trong 2 cách đã học: tìm Max, giá trị lớn nhất của dãy số gồm N số a1,…, aN 2. Bài 3, 4, 5 trang 44 (SGK).
<span class='text_page_counter'>(13)</span> Bài cũ: 1.Trình bày thuật toán sắp xếp tráo đổi ? 2.Trình bày thuật toán tìm kiếm tuần tự?.
<span class='text_page_counter'>(14)</span> Tiết 14. Bài 4. BÀI TOÁN và. THUẬT TOÁN (t5).
<span class='text_page_counter'>(15)</span> Bài toán: Cho dãy n số nguyên a1,..,an đã sắp xếp không giảm, số nguyên k. Hãy tìm và chỉ ra vị trí của k (nếu có) trong dãy..
<span class='text_page_counter'>(16)</span> Trò chơi Tìm số nguyên trong đoạn từ 1..100 Hãy chuẩn bị số bất kỳ, sau 7 câu hỏi sẽ tìm được?.
<span class='text_page_counter'>(17)</span> Thuật toán tìm kiếm nhị phân Ý tưởng: Sử dụng tính chất dãy A đã sắp xếp không giảm, ta tìm cách thu hẹp nhanh phạm vi tìm kiếm bằng cách so sánh k với số hạng ở giữa dãy (agiưa), khi đó chỉ xảy ra một trong ba trường hợp: - Nếu agiưa= k => tìm được chỉ số, kết thúc; - Nếu agiưa > k => do dãy A đã được sắp xếp không giảm nên việc tìm kiếm thu hẹp chỉ xét từ a1 agiưa -1; - Nếu agiưa < k => do dãy A đã được sắp xếp không giảm nên việc tìm kiếm thu hẹp chỉ xét từ agiưa + 1 aN. Quá trình trên được lặp đi lặp lại cho đến khi tìm được OUTPUT..
<span class='text_page_counter'>(18)</span> Mô phỏng thuật toán tìm kiếm nhị phân Với k = 21 và dãy A gồm 10 số hạng như sau: A. 2. 4. 5. 6. 9. 21 22 30 31 33 33. i. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Lượt thứ nhất: agiưa là a5 = 9; 9 < 21 vùng tìm kiếm thu hẹp trong phạm vi từ a6 a10; Lượt thứ hai: agiưa là a8 = 30; 30 > 21 vùng tìm kiếm thu hẹp trong phạm vi từ a6 a7; Lượt thứ ba: agiưa là a6 = 21; 21= 21 Vậy số cần tìm là i = 6..
<span class='text_page_counter'>(19)</span> Hãy trình thuậtnhị toán tìm kiếm nhị phân Thuật toánbày tìm kiếm phân: bằng sơbước đồ khối từ cách trình bày liệt kê? các liệt kê Bước 1: Nhập N, các số hạng a1, a2,…, aN và giá trị khoá k; Bước 2: Đầu 1, Cuối N; Bước 3: Giưa [(đầu + Cuối)/2]; Bước 4: Nếu aGiưa = k thì thông báo chỉ số Giưa rồi kết thúc; Bước 5: Nếu aGiưa > k thì đặt Cuối = Giưa -1 rồi chuyển sang bước 7; Bước 6: Đầu Giưa + 1; Bước 7: Nếu đầu > Cuối thì thông báo dãy A không có số hạng có giá trị bằng k, rồi kết thúc; Bước 8: Quay lại bước 3..
<span class='text_page_counter'>(20)</span> BÀI TẬP VỀ NHÀ Bài 1, 3, 4, 5, 6 trang 27 – 28 (SGK).
<span class='text_page_counter'>(21)</span>