+ Nếu đã xét hết các số hạng trong dãy mà không có số hạng nào bằng k thì ta kết luận không tìm được k trong dãy Nguyễn Thị Hà... Nguyễn Thị Hà..[r]
Trang 1Nguyễn Thị Hà Đặng Hữu Hoàng
Trang 2Tiết 13
Trang 3Nguyễn Thị Hà
KIỂM TRA BÀI CŨ
Mô tả thuật toán dạng
liệt kê: kiểm tra một số
là số nguyên tố
Mô tả thuật toán dạng
liệt kê: kiểm tra một số
là số nguyên tố
Mô tả thuật toán dạng sơ đồ khối: kiểm tra một số là số nguyên tố
Mô tả thuật toán dạng sơ đồ khối: kiểm tra một số là số nguyên tố
B1: Nhập N;
B2: Nếu N=1 thì N không là SNT;
B3: Nếu N<4 thì N là SNT;
B4: d: =[N ] i:=2;
B5: Nếu i>d thì N là SNT;
B6: Nếu N chia hết cho i thì N
không là SNT;
B7: i:=i+1 quay lại bước 5;
B1: Nhập N;
B2: Nếu N=1 thì N không là SNT;
B3: Nếu N<4 thì N là SNT;
B4: d: =[N ] i:=2;
B5: Nếu i>d thì N là SNT;
B6: Nếu N chia hết cho i thì N
không là SNT;
B7: i:=i+1 quay lại bước 5;
Nhập N
N<4 N=1
i>d
N không là SNT
N là SNT
d: =[N ]; i:=2
d: =[N ]; i:=2
N chia hết cho i
i:=i+1
S
Đ
S
Đ
Đ S
Trang 43 MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN
VD3 : B ài toán tìm kiếm
VD3 : B ài toán tìm kiếm
* Xác định bài toán
- Input : N số nguyên khác nhau a1, a2, … an và số nguyên k
Cho dãy A gồm N số nguyên khác nhau: a 1 , a 2 , … a n và một số
nguyên k Cần biết có hay không chỉ số i (1≤ i ≤ N) mà a i = k Nếu có
hãy cho biết chỉ số đó
Cho dãy A gồm N số nguyên khác nhau: a 1 , a 2 , … a n và một số
nguyên k Cần biết có hay không chỉ số i (1≤ i ≤ N) mà a i = k Nếu có
hãy cho biết chỉ số đó
- Output : Chỉ số i mà ai = k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k.
Thuật toán tìm kiếm tuần tự (Seqential Search)
Ta sẽ so sánh lần lượt k với các số hạng trong dãy + Nếu a = k thì đưa ra thông báo có k trong dãy và đưa ra chỉ
Các em hãy nêu cách xác định bài
toán ?
Các em hãy nêu cách xác định bài
toán ?
Thế còn ý tưởng của thuật toán là
Thế còn ý tưởng của thuật toán là
Trang 5Nguyễn Thị Hà
* Thuật toán
- Liệt kê
B1: Nhập N, các số hạng a1, a2 … an và khoá k ; B2: i: = 1 ;
B3: Nếu ai = k thì thông báo có k trong dãy và đưa ra chỉ số i, rồi kết thúc;
B4: i: =i +1;
B5: Nếu i > N thì thông báo trong không có k dãy, rồi kết thúc B6: Quay về bước 3
Em nào nói giúp
cô có mấy cách biểu diễn thuật
toán ?
Em nào nói giúp
cô có mấy cách biểu diễn thuật
toán ?
Trang 6* Thuật toán
- Sơ đồ khối NhNhập N và aập N và a11, a, a22, …a, …ann; k; k
i: =1
ai = k ?
ai = k ?
i: = i + 1
i> N ?
Thông báo không có k
S
Đ
S
Đ
Có k trong dãy và đưa ra chỉ số i, rồi kết thúc
Có k trong dãy và đưa ra chỉ số i, rồi kết thúc
Trang 7Nguyễn Thị Hà
* Mô phỏng thuật toán tìm kiếm tuần tự
Ta có một dãy A 10 phần tử như sau: 1 5 7 4 2 12 3 8 9 6
và khóa k = 2
≠ k
Vậy: Có k trong dãy và chỉ số i = 5
≠ k ≠ k ≠ k = k
Trang 8BÀI TẬP VỀ NHÀ
Bài 1: Tính f(x) =
a + b nếu a + b > 0
a2 + b2 nếu -10 ≤ a + b ≤ 0 2ab nếu a + b < -10
Bài 2: Tính f(x) =
x2 nếu x ≥ 0 2x + 1 nếu x<0
Hướng dẫn: Ở mỗi bài tập chúng ta đều phải xác định các phần
* Cách xác định bài toán:
- Input:
- Output:
* Ý tưởng :
Trang 9Nguyễn Thị Hà