Tải bản đầy đủ (.ppt) (20 trang)

Bai 4 tin 10 Bai toan va thuat toan

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>

×