Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Câu Hỏi 1: Máy vi tính có mấy phần chính?
Câu Hỏi 2: Cho ví dụ về thiết bị đầu vào, thiết bị đầu ra.
- Máy vi tính có ba p...
Bài 4: Bài toán và Thuật toán
(Tiết 1)
- Xét các yêu cầu trong sau:
• Giải PT bậc 2: ax^2+bx+c=0.
• Viết 1 dòng chữ ra màn hình máy tính.
• Quản lí cán bộ cơ qua...
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 và kết luận (ví dụ lên bảng)
 Tin học:
Đưa vào máy t...
Ví dụ: Tìm UCLN của a, b.
Input: Hai số a, b.
Output: UCLN(a,b)
Một bài toán được cấu thành bởi hai thành phần
cơ bản là ...
Bài toán
Input Bằng cách nào Output
Giải bài 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
Thu...
Bài toán
Input Thuật toán Output
(thao tác 1 → thao tác 2 → … → thao tác n)
Đinh nghĩa:
• Một dãy hữu hạn các thao tác;
• ...
1. Học bài và làm bài 1, bài 2 trong SGK và
bài 1.28/17 SBT
2. Đọc sách và chuẩn bị bài cho tiết tiếp
theo.
Dặn dò
Bài 4: Bài toán và Thuật toán
(Tiết 2)
 Làm thế nào để trình bày thuật toán giải quyết
một bài toán cho hợp lý, dễ hiểu và thông qua
thuật toán có thể thu được ...
1. Mô tả bằng cách liệt kê.
Ví dụ: Tính diện tích hình chữ nhật.
 Xác định công thức tính S=chiều dài * chiều rộng
 Xác ...
Ví du: Tìm số lớn nhất trong hai số a, b
Input: hai số a, b
Output: Max
Thuật toán:
Cách mô tả thuật toán
Input, Output?
B...
2. Mô tả bài toán bằng sơ đồ khối
Các khối, đường được sử
dụng:
Hình thoi thể hiện thao
tác so sánh.
Hình chữ nhật thể hiệ...
Tính dừng: Thuật toán phải kết thúc sau một số
hữu hạn lần thực hiện.
Tính xác định: Sau khi thực hiện một thao tác thì
...
Bài 4: Bài toán và Thuật toán
(Tiết 3)
1. Xác định bài toán:
- Input: N là một số nguyên dương.
- Output: N là số nguyên tố hoặc N không là số
nguyên tố.
2. Ý tư...
3. Xây dựng thuật toán:
a. Cách liệt kê:
• Bước 1: Nhập số nguyên dương N;
• Bước 2: Nếu N=1 thì thông báo N; không là số ...
b. Sơ đồ khối
Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
 Cải tiến thuật toán
Ý tưởng:
Tìm i tăng dần trong phạm vi từ 2 đến phần nguyên
𝑁 thỏa điều kiện là ước của N:
- Nếu khôn...
Cách liệt kê:
Bước 1: Nhập số nguyên dương N;
Bước 2: Nếu N=1 thì thông báo N không là số nguyên tố,
kết thúc chương trình...
Sơ đồ khối
Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
i  2
Nhập N
N = 1?
i  i+1
N không phải là
số nguyên tố
Đúng
Sai
Đúng
Sai
i > ?N 
 
N < 4?
N i?
N là số nguyên
tố
Đún...
i  2
Nhập N
N = 1?
i  i+1
N không phải là
số nguyên tố
Đúng
Sai
Đúng
Sai
i > ?N 
 
N < 4?
N i?
N là số nguyên
tố
Đún...
Bài 4: Bài toán và Thuật toán
(Tiết 4)
Dãy A chưa được sắp xếp Dãy A được sắp xếp
1. Xác định bài toán:
Input: Dãy A gồm N số nguyên a1, a2, .., an
VD: Dãy A gồm các số nguyên 2 4 8 7 1 5
Output: Dãy A đư...
2. Ý tưởng:
- Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số
trước > số sau, ta đổi chỗ chúng cho nhau. (Các số
lớn sẽ...
3. Xây dựng thuật toán:
• Nhập N, các số hạng a1, a2, .., an.
• Đầu tiên gọi M là số hạng cần so sánh, vậy M sẽ chứa
giá t...
3. Xây dựng thuật toán:
• Nếu lần so sánh thứ i > số phép so sánh M: đã
hoàn tất M số phép so sánh của lượt này.
• Lặp lại...
a. Cách liệt kê
• Bước 1: Nhập N, các số hạng a1, a2,..,an;
• Bước 2: M  N;
• Bước 3: Nếu M < 2 thì đưa ra dãy A đã được ...
b. Sơ đồ khối
Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
Mô phỏng thực hiện thuật toán
6 1 5 3 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
6 51 3 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
6 31 5 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
1 5 3 6 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
1 5 3 6 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
1 5 3 6 7 8 10 7 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
10 71 5 7 83 6 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
3 61 5 7 8 7 10 12 4
Lần duyệt 1
Mô phỏng thực hiện thuật toán
12 41 5 7 8 7 103 6
Lần duyệt 1
Mô phỏng thực hiện thuật toán
3 61 5 7 8 7 10 4 12
Lần duyệt 1
Kết quả Lần duyệt 1
Mô phỏng thực hiện thuật toán
61 7 8 7 10 4 125 3
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 8 7 10 4 123 5
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 8 7 10 4 123 5
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 8 7 10 4 123 5
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 10 4 123 5 8 7
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 7 8 10 4 123 5
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 7 8 123 5 10 4
Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 7 8 4 10 123 5
Lần duyệt 2
Kết quả Lần duyệt 2
Mô phỏng thực hiện thuật toán
61 7 7 10 123 5
Lần duyệt 3
8 4
Mô phỏng thực hiện thuật toán
61 7 7 4 8 10 123 5
Lần duyệt 3
Kết quả Lần duyệt 3
Mô phỏng thực hiện thuật toán
61 7 8 10 123 5
Lần duyệt 4
7 4
Mô phỏng thực hiện thuật toán
61 7 4 7 8 10 123 5
Lần duyệt 4
Kết quả Lần duyệt 4
Mô phỏng thực hiện thuật toán
61 7 8 10 123 5
Lần duyệt 5
7 4
Mô phỏng thực hiện thuật toán
61 4 7 7 8 10 123 5
Lần duyệt 5
Kết quả Lần duyệt 5
Mô phỏng thực hiện thuật toán
71 7 8 10 123 5
Lần duyệt 6
6 4
Mô phỏng thực hiện thuật toán
41 6 7 7 8 10 123 5
Lần duyệt 6
Kết quả Lần duyệt 6
Mô phỏng thực hiện thuật toán
71 7 8 10 123 6
Lần duyệt 7
5 4
Mô phỏng thực hiện thuật toán
51 6 7 7 8 10 123 4
Lần duyệt 7
Kết quả Lần duyệt 7
Mô phỏng thực hiện thuật toán
51 6 7 7 8 10 123 4
Lần duyệt 8
Kết quả Lần duyệt 8
Mô phỏng thực hiện thuật toán
41 6 7 7 8 10 123 5
Lần duyệt 9
Kết quả Lần duyệt 9
Mô phỏng thực hiện thuật toán
41 6 7 7 8 10 123 5
Lần duyệt 10
Kết quả Lần duyệt 10
Bài 4: Bài toán và Thuật toán
(Tiết 5)
1. Xác định bài toán:
• Input: Dãy A gồm N số nguyên khác nhau: a1, a2,…,
an và một số nguyên k (khóa)
VD: Dãy A gồm các s...
2. Ý tưởng:
Tìm kiếm tuần tự được thực hiện một cách tự
nhiên: lần lượt đi từ số hạng thứ nhất, ta so sánh
giá trị số hạng...
3. Xây dưng bài toán
a. Cách liệt kê:
• Bước 1: Nhập N, các số hạng a1, a2, .. ,an và giá trị
khóa k;
• Bước 2: i 1;
• Bư...
b. Sơ đồ khối
Ví dụ: Bài toán tìm kiếm tuần tự
Mô phỏng: Bài toán tìm kiếm tuần tự
A 5 7 1 4 2 9 8 11 25 51
i 1 2 3 4 5 - - - - -
k = 2 và N = 10
i
A[1] = 5 <> 2A[2] = 7...
1. Xác định bài toán:
Input: Dãy A là dãy tăng gồm N số nguyên khác
nhau a1, a2,..,an, và một số nguyên k.
VD:Dãy A gồm cá...
2. Ý tưởng:
Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm
cách thu hẹp nhanh vùng tìm kiếm bằng cách so
sánh k với số hạ...
3. Xây dựng thuật toán:
a. Cách liệt kê:
Bước 1: Nhập N, các số hạng a1, a2,.., an và giá trị khóa k;
Bước 2: Đầu  1; Cuố...
b. Sơ đồ khối
Ví dụ: Bài toán tìm kiếm nhị phân
Mô phỏng: Bài toán tìm kiếm nhị phân
k = 21 và N = 10
Với i = Giua = 6 thì A[Giua] = 21 = k
i 1 2 3 4 5 6 7 8 9 10
A 2 4 5...
Baigiang - bai4. Bài Toán Và Thuật Toán
Upcoming SlideShare
Loading in …5
×

Baigiang - bai4. Bài Toán Và Thuật Toán

66,491 views

Published on

Bài giảng tiết 1.

Published in: Education
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2F90ZZC ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2F90ZZC ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ♥♥♥ http://bit.ly/33tKWiU ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/33tKWiU ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Baigiang - bai4. Bài Toán Và Thuật Toán

  1. 1. Câu Hỏi 1: Máy vi tính có mấy phần chính? Câu Hỏi 2: Cho ví dụ về thiết bị đầu vào, thiết bị đầu ra. - Máy vi tính có ba phần chính: Thiết bị đầu vào, Bộ xử lí và Thiết bị đầu ra. - Thiết bị đầu vào: Bàn phím (Keyboard), chuột (Mouse), máy quét, … - Thiết bị đầu ra: Màn hình, loa, máy in, máy chiếu (projector),… Kiểm tra bài cũ
  2. 2. Bài 4: Bài toán và Thuật toán (Tiết 1)
  3. 3. - Xét các yêu cầu trong sau: • Giải PT bậc 2: ax^2+bx+c=0. • Viết 1 dòng chữ ra màn hình máy tính. • Quản lí cán bộ cơ quan. • Tìm UCLN của a và b. • Xếp loại học tập cho hoc sinh trong lớp. Bài toán Đâu là bài toán trong tin học, đâu là bài toán trong toán học? Bài toán trong tin học. Bài toán trong toán học.
  4. 4. 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 và kết luận (ví dụ lên bảng)  Tin học: Đưa vào máy tính thông tin gì? Cần lấy ra thông tin gì? Input Output Bài toán Khái niệm về bài toán trong Tin học: là một việc nào đó ta muốn máy tính thực hiện.
  5. 5. Ví dụ: Tìm UCLN của a, b. Input: Hai số a, b. Output: UCLN(a,b) Một bài toán được cấu thành bởi hai thành phần cơ bản là Input và Output Bài toán Xác định Input, Output của bài toán
  6. 6. Bài toán Input Bằng cách nào Output Giải bài 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 Thuật toán
  7. 7. Bài toán Input Thuật toán Output (thao tác 1 → thao tác 2 → … → thao tác n) Đinh nghĩa: • 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; • Sau khi thực hiện dãy các thao tác đó từ Input ta tìm được Output của bài toán. Thuật toán
  8. 8. 1. Học bài và làm bài 1, bài 2 trong SGK và bài 1.28/17 SBT 2. Đọc sách và chuẩn bị bài cho tiết tiếp theo. Dặn dò
  9. 9. Bài 4: Bài toán và Thuật toán (Tiết 2)
  10. 10.  Làm thế nào để trình bày thuật toán giải quyết một bài toán cho hợp lý, dễ hiểu và thông qua thuật toán có thể thu được Output từ Input đã cho?  Tìm hiểu về cách mô tả thuật toán và tính chất của thuật toán). Thuật toán
  11. 11. 1. Mô tả bằng cách liệt kê. Ví dụ: Tính diện tích hình chữ nhật.  Xác định công thức tính S=chiều dài * chiều rộng  Xác định chiều dài chiều rộng  tính diện tích (học sinh phải làm theo thứ tự và không được đảo thứ tự giải bài toán) Cách mô tả thuật toán Một cách mô tả thuật toán phổ biến nhất là liệt kê: trình bày theo từng bước có thứ tự nhất định.
  12. 12. Ví du: Tìm số lớn nhất trong hai số a, b Input: hai số a, b Output: Max Thuật toán: Cách mô tả thuật toán Input, Output? Bước 1: Nhập 2 số a,b; Bước 2: Max  a; Bước 3: Bước 3.1: Nếu b > Max thì Max  b; Bước 3.2: Ngược lại thì Max  a;
  13. 13. 2. Mô tả bài toán bằng sơ đồ khối Các khối, đường được sử dụng: Hình thoi thể hiện thao tác so sánh. Hình chữ nhật thể hiện các phép tính toán. Hình ô van thể hiện thao tác nhập, xuất dữ liệu. Mũi tên quy định trình tự các thao tác. Cách mô tả thuật toán
  14. 14. Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện. Tính xác định: Sau khi thực hiện một thao tác thì hoặc là có đúng một thao tác xác định để thực hiện tiếp theo. Tính đúng đắn: Sau khi thuật toán kết thúc, ta phải nhận được Output cần tìm Tính chất của thuật toán
  15. 15. Bài 4: Bài toán và Thuật toán (Tiết 3)
  16. 16. 1. Xác định bài toán: - Input: N là một số nguyên dương. - Output: N là số nguyên tố hoặc N không là số nguyên tố. 2. Ý tưởng: - Nếu N=1  N không là số nguyên tố. - Nếu 1<N<4  N là số nguyên tố. - Nếu N>=4: Tìm ước i đầu tiên>1 của N. + Nếu i<N  N không là số nguyên tố (vì N có ít nhất 3 ước 1, i, N). + Nếu i=N  N là số nguyên tố. Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  17. 17. 3. Xây dựng thuật toán: a. Cách liệt kê: • Bước 1: Nhập số nguyên dương N; • Bước 2: Nếu N=1 thì thông báo N; không là số nguyên tố rồi kết thúc; • Bước 3: Nếu N<4 thì thông báo N là số nguyên tố rồi kết thúc; • Bước 4: i2; • Bước 5: Nếu i là ước của N thì đến bước 7; • Bước 6: ii+1 rồi quay lại bước 5; (tăng I lên 1 đơn vị) • Bước 7: Nếu i=N thì thông báo N là số nguyên tố, ngược lại thì thông báo N không là số nguyên tố rồi kết thúc; Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  18. 18. b. Sơ đồ khối Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  19. 19.  Cải tiến thuật toán Ý tưởng: Tìm i tăng dần trong phạm vi từ 2 đến phần nguyên 𝑁 thỏa điều kiện là ước của N: - Nếu không tìm được  N là số nguyên tố. - Ngược lại  N không là số nguyên tố. Xây dựng thuật toán: Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  20. 20. Cách liệt kê: Bước 1: Nhập số nguyên dương N; Bước 2: Nếu N=1 thì thông báo N không là số nguyên tố, kết thúc chương trình; Bước 3: i2; Bước 4: Nếu i<= 𝑁 và I không là ước của N thì ii+1, rồi lặp lại bước này. Bước 5: Nếu i> 𝑁 thì thông báo N là số nguyên tố, ngược lại thì thông báo N không là số nguyên tố, rồi kết thúc. Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  21. 21. Sơ đồ khối Ví dụ: Kiểm tra tính nguyên tố của một số nguyên dương
  22. 22. i  2 Nhập N N = 1? i  i+1 N không phải là số nguyên tố Đúng Sai Đúng Sai i > ?N    N < 4? N i? N là số nguyên tố Đúng Đúng Sai Sai N=25 2 > 5? 25 2?i  3 3 > 5? 25 3?i  4 4 > 5? 25 4?i  5 5 > 5? 25 5? 25 = 1? 25 < 4? 25 không phải là số nguyên tố
  23. 23. i  2 Nhập N N = 1? i  i+1 N không phải là số nguyên tố Đúng Sai Đúng Sai i > ?N    N < 4? N i? N là số nguyên tố Đúng Đúng Sai Sai N=29 2 > 5? 29 2?i  3 3 > 5? 29 3?i  4 4 > 5? 29 4?i  5 5 > 5? 29 5? 29 = 1? 29 < 4? i  6 6 > 5? 29 là số nguyên tố
  24. 24. Bài 4: Bài toán và Thuật toán (Tiết 4)
  25. 25. Dãy A chưa được sắp xếp Dãy A được sắp xếp
  26. 26. 1. Xác định bài toán: Input: Dãy A gồm N số nguyên a1, a2, .., an VD: Dãy A gồm các số nguyên 2 4 8 7 1 5 Output: Dãy A được sắp xếp thành dãy không giảm Dãy A sau khi sắp xếp: 1 2 4 5 7 8 Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  27. 27. 2. Ý tưởng: - Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước > số sau, ta đổi chỗ chúng cho nhau. (Các số lớn sẽ được đẩy dần về vị trí xác định cuối dãy) - Việc này lặp lại nhiều lượt, mỗi lượt tiến hành nhiều lần so sánh cho đến khi không có sự đổi chỗ nào xảy ra nữa. Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  28. 28. 3. Xây dựng thuật toán: • Nhập N, các số hạng a1, a2, .., an. • Đầu tiên gọi M là số hạng cần so sánh, vậy M sẽ chứa giá trị của N: MN • Nếu số số hạng cần so sánh < 2 thì dãy đã được sắp xếp. Kết thúc. • M chứa giá trị mới là số phép so sánh cần thực hiện trong lượt: M M-1 • Gọi i là số thứ tự của mỗi lần so sánh, đầu tiên i  0. • Để thực hiện lần so sánh mới, I tăng lên lần 1 (lần so sánh thứ i) Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  29. 29. 3. Xây dựng thuật toán: • Nếu lần so sánh thứ i > số phép so sánh M: đã hoàn tất M số phép so sánh của lượt này. • Lặp lại bước 3, bắt đầu lượt kế tiếp (với số hạng cần so sánh mới chính là M đã giảm 1). • So sánh 2 phần tử ở lần thứ I là ai • và ai+1 • Nếu ai>ai+1 thì tráo đổi 2 phần tử này. • Quay lại bước 5. Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  30. 30. a. Cách liệt kê • Bước 1: Nhập N, các số hạng a1, a2,..,an; • Bước 2: M  N; • Bước 3: Nếu M < 2 thì đưa ra dãy A đã được sắp xếp, rồi kết thúc; • Bước 4: M  M-1; i 0; • Bước 5: i  i-1; • Bước 6: Nếu i> M thì quay lại bước 3; • Bước 7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau; • Bước 8: Quay lại bước 5; Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  31. 31. b. Sơ đồ khối Ví dụ: Bài toán sắp xếp bằng cách tráo đổi
  32. 32. Mô phỏng thực hiện thuật toán 6 1 5 3 7 8 10 7 12 4 Lần duyệt 1
  33. 33. Mô phỏng thực hiện thuật toán 6 51 3 7 8 10 7 12 4 Lần duyệt 1
  34. 34. Mô phỏng thực hiện thuật toán 6 31 5 7 8 10 7 12 4 Lần duyệt 1
  35. 35. Mô phỏng thực hiện thuật toán 1 5 3 6 7 8 10 7 12 4 Lần duyệt 1
  36. 36. Mô phỏng thực hiện thuật toán 1 5 3 6 7 8 10 7 12 4 Lần duyệt 1
  37. 37. Mô phỏng thực hiện thuật toán 1 5 3 6 7 8 10 7 12 4 Lần duyệt 1
  38. 38. Mô phỏng thực hiện thuật toán 10 71 5 7 83 6 12 4 Lần duyệt 1
  39. 39. Mô phỏng thực hiện thuật toán 3 61 5 7 8 7 10 12 4 Lần duyệt 1
  40. 40. Mô phỏng thực hiện thuật toán 12 41 5 7 8 7 103 6 Lần duyệt 1
  41. 41. Mô phỏng thực hiện thuật toán 3 61 5 7 8 7 10 4 12 Lần duyệt 1 Kết quả Lần duyệt 1
  42. 42. Mô phỏng thực hiện thuật toán 61 7 8 7 10 4 125 3 Lần duyệt 2
  43. 43. Mô phỏng thực hiện thuật toán 61 7 8 7 10 4 123 5 Lần duyệt 2
  44. 44. Mô phỏng thực hiện thuật toán 61 7 8 7 10 4 123 5 Lần duyệt 2
  45. 45. Mô phỏng thực hiện thuật toán 61 7 8 7 10 4 123 5 Lần duyệt 2
  46. 46. Mô phỏng thực hiện thuật toán 61 7 10 4 123 5 8 7 Lần duyệt 2
  47. 47. Mô phỏng thực hiện thuật toán 61 7 7 8 10 4 123 5 Lần duyệt 2
  48. 48. Mô phỏng thực hiện thuật toán 61 7 7 8 123 5 10 4 Lần duyệt 2
  49. 49. Mô phỏng thực hiện thuật toán 61 7 7 8 4 10 123 5 Lần duyệt 2 Kết quả Lần duyệt 2
  50. 50. Mô phỏng thực hiện thuật toán 61 7 7 10 123 5 Lần duyệt 3 8 4
  51. 51. Mô phỏng thực hiện thuật toán 61 7 7 4 8 10 123 5 Lần duyệt 3 Kết quả Lần duyệt 3
  52. 52. Mô phỏng thực hiện thuật toán 61 7 8 10 123 5 Lần duyệt 4 7 4
  53. 53. Mô phỏng thực hiện thuật toán 61 7 4 7 8 10 123 5 Lần duyệt 4 Kết quả Lần duyệt 4
  54. 54. Mô phỏng thực hiện thuật toán 61 7 8 10 123 5 Lần duyệt 5 7 4
  55. 55. Mô phỏng thực hiện thuật toán 61 4 7 7 8 10 123 5 Lần duyệt 5 Kết quả Lần duyệt 5
  56. 56. Mô phỏng thực hiện thuật toán 71 7 8 10 123 5 Lần duyệt 6 6 4
  57. 57. Mô phỏng thực hiện thuật toán 41 6 7 7 8 10 123 5 Lần duyệt 6 Kết quả Lần duyệt 6
  58. 58. Mô phỏng thực hiện thuật toán 71 7 8 10 123 6 Lần duyệt 7 5 4
  59. 59. Mô phỏng thực hiện thuật toán 51 6 7 7 8 10 123 4 Lần duyệt 7 Kết quả Lần duyệt 7
  60. 60. Mô phỏng thực hiện thuật toán 51 6 7 7 8 10 123 4 Lần duyệt 8 Kết quả Lần duyệt 8
  61. 61. Mô phỏng thực hiện thuật toán 41 6 7 7 8 10 123 5 Lần duyệt 9 Kết quả Lần duyệt 9
  62. 62. Mô phỏng thực hiện thuật toán 41 6 7 7 8 10 123 5 Lần duyệt 10 Kết quả Lần duyệt 10
  63. 63. Bài 4: Bài toán và Thuật toán (Tiết 5)
  64. 64. 1. Xác định bài toán: • Input: Dãy A gồm N số nguyên khác nhau: a1, a2,…, an và một số nguyên k (khóa) VD: Dãy A gồm các số nguyên 5 7 1 4 2 9 8 11 25 51. Và k = 2 (k=6) • Output: Vị trí I mà ai = k hoặc thông báo không tìm thấy k trong dãy. Vị trí của 2 trong dãy là 5 (không tìm thấy 6). Ví dụ: Bài toán tìm kiếm
  65. 65. 2. Ý tưởng: Tìm kiếm tuần tự được thực hiện một cách tự nhiên: lần lượt đi từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khóa cho đến khi gặp một số hạng bằng khóa hoặc dãy đã được xét hết mà không tìm thấy giá trị của khóa trên dãy. Ví dụ: Bài toán tìm kiếm tuần tự
  66. 66. 3. Xây dưng bài toán a. Cách liệt kê: • Bước 1: Nhập N, các số hạng a1, a2, .. ,an và giá trị khóa k; • Bước 2: i 1; • Bước 3: Nếu ai =k thì thông báo chỉ số I, rồi kết thúc; • Bước 4: i  i+1; • Bước 5: Nếu I > N thì thông báo dãy A không có số hạng nào có giá trị bằng k, rồi kết thúc; • Bước 6: Quay lại bước 3; Ví dụ: Bài toán tìm kiếm tuần tự
  67. 67. b. Sơ đồ khối Ví dụ: Bài toán tìm kiếm tuần tự
  68. 68. Mô phỏng: Bài toán tìm kiếm tuần tự A 5 7 1 4 2 9 8 11 25 51 i 1 2 3 4 5 - - - - - k = 2 và N = 10 i A[1] = 5 <> 2A[2] = 7 <> 2A[3] = 1 <> 2A[4] = 4 <> 2A[5] = 2 = 2 Với i = 5 thì A[5] = 2 = k
  69. 69. 1. Xác định bài toán: Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a1, a2,..,an, và một số nguyên k. VD:Dãy A gồm các số nguyên 2 4 5 6 9 21 22 30 31 33. Và k = 21 (k=25) Output: Vị trí i mà ai = k hoặc thông báo không tìm thấy k trong dãy. Vị trí của 21 trong dãy là 6 (không tìm thấy 25). Ví dụ: Bài toán tìm kiếm nhị phân
  70. 70. 2. Ý tưởng: Sử dụng tính chất dãy A đã sắp xếp tăng, ta tìm cách thu hẹp nhanh vùng tìm kiếm bằng cách so sánh k với số hạng ở giữa phạm vi tìm kiếm (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 =>việc tìm kiếm thu hẹp, chỉ xét từ agiữa+1acuối (phạm vi). Quá trình trên được lặp lại cho đến khi tìm thấy khóa trên dãy A hoặc phạm vi tìm kiếm bằng rỗng. Ví dụ: Bài toán tìm kiếm nhị phân
  71. 71. 3. Xây dựng thuật toán: a. Cách liệt kê: Bước 1: Nhập N, các số hạng a1, a2,.., an và giá trị khóa 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 sang bước 7; Bước 6: Đầu  Giữa + 1; Bước 7: Nếu Đầu > Cuối thì thông báo không tìm thấy khóa k trên dãy rồi kết thúc; Bước 8: Quay lại bước 3. Ví dụ: Bài toán tìm kiếm nhị phân
  72. 72. b. Sơ đồ khối Ví dụ: Bài toán tìm kiếm nhị phân
  73. 73. Mô phỏng: Bài toán tìm kiếm nhị phân k = 21 và N = 10 Với i = Giua = 6 thì A[Giua] = 21 = k i 1 2 3 4 5 6 7 8 9 10 A 2 4 5 6 9 21 22 30 31 33 Dau 1 6 6 Cuoi 10 10 7 Giua 5 8 6 A[Giua] 9 30 21 Lần duyệt 1 2 3

×