20
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).

Bài cũ:

Embed Size (px)

DESCRIPTION

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). 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. - PowerPoint PPT Presentation

Citation preview

Page 1: Bài cũ:

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).

Page 2: Bài cũ:

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

Page 3: Bài cũ:

Tiết 11

Bài 4. BÀI TOÁN và THUẬT TOÁN (t2)

Page 4: Bài cũ:

MÔ TẢ CÁC THAO TÁC TRONG THUẬT TOÁN

Có 2 cách mô tảLiệt kê

Dùng sơ đồ khối

Nêu ra tuần tự các thao tác cần tiến hành

Dùng một số biểu tượng thể hiện các thao tác

Page 5: Bài cũ:

: Thể hiện các thao tác so sánh

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 phép toán

: Quy định trình tự thực hiện các thao tác

: Thể hiện các thao tác nhập, xuất dữ liệu

Page 6: Bài cũ:

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

Nhập a, b

a = 0

x = -b/a

Sai

đúng

Đưa ra x, kết thúc

• 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ỐILIỆT KÊ

Page 7: Bài cũ:

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?

Page 8: Bài cũ:

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ố.

Page 9: Bài cũ:

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.

Page 10: Bài cũ:

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 3Bước 5 : Đưa ra Min rồi kết thúc.

Page 11: Bài cũ:

SƠ ĐỒ KHỐI : Nhập N và dãy a1,…, aN

Min = a1 , i = 2

i <=N

Min > ai

Min = ai

i = i+1

Đưa ra Min rồi kết thúc

Sai

đúng

đúng

Sai

Page 12: Bài cũ:

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)

Page 13: Bài cũ:

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ự?

Page 14: Bài cũ:

Tiết 14

Bài 4. BÀI TOÁN và THUẬT TOÁN (t5)

Page 15: Bài cũ:

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.

Page 16: Bài cũ:

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?

Page 17: Bài cũ:

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.

Page 18: Bài cũ:

Mô phỏng thuật toán tìm kiếm nhị phân

10987654321i

333130222196542A

Với k = 21 và dãy A gồm 10 số hạng như sau:

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;

3331302221

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.

2221

66

21

Page 19: Bài cũ:

Thuật toán tìm kiếm nhị phân: các bướ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.

Hãy trình bày thuật toán tìm kiếm nhị phân bằng sơ đồ khối từ cách trình bày liệt kê?

Page 20: Bài cũ:

BÀI TẬP VỀ NHÀ

Bài 1, 3, 4, 5, 6

trang 27 – 28 (SGK)