Bai 23
Chia sẻ bởi Cam Nhung |
Ngày 29/04/2019 |
61
Chia sẻ tài liệu: bai 23 thuộc Bài giảng khác
Nội dung tài liệu:
Ví dụ 1: Quản lí điểm trong một kì thi bằng máy tính.
Yêu cầu :
Hãy xác định thông tin đưa vào (Input)
và thông tin cần lấy ra (Output)
Ví dụ 2: Giải phương trình bậc nhất ax + b = 0.
Yêu cầu :
Hãy xác định thông tin đưa vào (Input)
và thông tin cần lấy ra (Output)
Với a = 1, b = -5
? Phương trình có nghiệm x = 5
1. Khái niệm bài toán
Là việc nào đó ta muốn máy thực hiện để từ thông tin đưa vào (INPUT) tìm được thông tin ra (OUTPUT).
Ví dụ 4: Bài toán xếp loại học tập của một lớp.
INPUT: Bảng điểm của học sinh trong lớp.
OUTPUT: Bảng xếp loại học lực của học sinh.
Bài 4. Bài toán và thuật Toán
2. Khái niệm thuật toán
Từ INPUT làm thế nào để tìm ra OUTPUT ?
Các em cần tìm ra cách giải của bài toán.
Xét ví dụ 2: Giải phương trình bậc nh?t ax + b = 0.
B1: Xác định hệ số a, b;
B2: Nếu a=0 và b=0 => Phương trình vô số nghiệm =>B5;
B5: Kết thúc.
Có hai cách thể hiện một thuật toán:
? Cách 1: Liệt kê các bước.
? Cách 2: Vẽ sơ đồ khối.
B7: Kết thúc.
B1: Bắt đầu;
B2: Nhập a, b, c;
B3: Tính ? = b2 - 4ac;
B4: Nếu ? < 0 => PT vô nghiệm => B7;
B5: Nếu ? = 0
=> PT có nghiệm kép x = -b/2a => B7;
B6: Nếu ? > 0
=> PT có hai nghiệm x1, x2 = (-b ? ??)/2a
=> B7;
3. Một số ví dụ về thuật toán
Thuật toán giải phương trình bậc hai (a ? 0).
Cách 1: Liệt kê các bước
Quy ước các khối trong sơ đồ thuật toán
Bắt đầu thuật toán.
Dùng để nhập và xuất dữ liệu.
Dùng để gán giá trị và tính toán.
Xét điều kiện rẽ nhánh theo một trong hai điều kiện đúng, sai.
Kết thúc thuật toán.
BĐ
đ
S
Cách 2: Vẽ sơ đồ khối
đ
s
Sơ đồ thuật toán giải phương trình bậc hai
2
B1
B2
B3
B4
B5
B6
s
đ
B7
a,b,c= 1 3 5
D = 3*3 - 4*5 = - 11
-11 < 0
PT vô nghiệm
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 1:
a,b,c= 1 2 1
D = 2*2 - 4*1*1 = 0
PT vô nghiệm
PT có nghiệm x=-b/2a
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 2:
Đ
= 0
PT có nghiệm kép x=-1
a,b,c= 1 -5 6
D = 25 - 24 = 1
PT vô nghiệm
PT có nghiệm x=-b/2a
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 3:
Đ
= 0
PT có nghiệm x1 = 3
x2 = 2
Thuật toán tìm max
3
Người ta đặt 5 quả bóng có kích thước khác nhau trong hộp đã được đậy nắp như hình bên. Chỉ dùng tay hãy tìm ra quả bóng có kích thước lớn nhất .
Quả này lớn nhất
Quả này mới lớn nhất
ồ! Quả này lớn hơn
Tìm ra quả lớn nhất rồi!
Cùng tìm thuật toán
Thuật toán tìm số lớn nhất trong
một dãy số nguyên
Xác định bài toán:
INPUT: Số nguyên dương N và dãy N số nguyên a1, a2, ., aN (ai với i: 1?N).
OUTPUT: Số lớn nhất (Max) của dãy số.
Cách 1: Liệt kê các bước
B1: Nhập N và dãy a1,., aN;
B2: Max ? a1; i ? 2;
B3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc;
B4:
Bước 4.1: Nếu ai > Max thì Max ? ai;
Bước 4.2: i ? i+1 rồi quay lại B3.
Đ
S
Đ
S
B1: Nhập N và dãy a1,.,aN;
B2: Max ? a1; i ? 2;
B3: Nếu i > N thì đưa ra giá trị
Max rồi kết thúc;
B4 :
4.1: Nếu ai > Max thì Max ? ai;
4.2: i ? i + 1 rồi quay lại B3.
Cách 2: Sơ đồ khối
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
I > N ?
ai> Max ?
Max ai
i i+1
Đưa ra Max rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7
Mô phỏng
thuật toán
Với i = 2
Với i = 3
Với i = 4
Với i = 5
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
I > N ?
ai> Max ?
Max ai
i i+1
Đưa ra Max rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7
Thuật toán kiểm tra tính nguyên tố của một số nguyên dương
Xác định bài toán:
INPUT: N là một số nguyên dương.
OUTPUT: Trả lời câu hỏi N có là số
nguyên tố không?
Các em hãy nêu định nghĩa số nguyên tố.
- Nếu N ? 4 và không có ước số trong phạm vi từ 2 đến phần nguyên căn bậc hai của N thì N là số nguyên tố.
- Nếu N = 1 thì N không là số nguyên tố.
- Nếu 1< N <4 thì n là số nguyên tố.
45 không là số nguyên tố.
29 là số nguyên tố.
Mô phỏng thuật toán kiểm tra tính nguyên tố
Cách 1: Liệt kê các bước
B1: Nhập số nguyên dương N;
B2: Nếu N = 1 thông báo N không nguyên tố, kết thúc;
B3: Nếu N < 4 thông báo N là nguyên tố rồi kết thúc;
B4: i ?2;
B5: Nếu i > [?N ] thì thông báo N là nguyên tố, kết thúc;
B6: Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc;
B7: i ? i +1 rồi quay lại B5.
Nhập N
N =1 ?
N < 4 ?
i ? 2
i>[?N ] ?
N có chia hết cho i ?
i ? i +1
Thông báo N là số nguyên tố rồi kết thúc.
Thông báo N không là số nguyên tố rồi kết thúc.
Đ
S
S
Đ
S
S
Đ
Đ
Cách 2
Vẽ sơ đồ khối
Thuật toán sắp xếp
Hãy tìm cách sắp xếp học sinh đứng chào cờ (hình a) theo thứ tự thấp trước cao sau (hình b).
Hình a
Hình b
Thuật toán sắp xếp bằng tráo đổi
Xác định bài toán:
INPUT: Dãy A gồm N số nguyên a1, a2,., aN.
OUTPUT: Dãy A được sắp xếp thành dãy không giảm.
Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn số sau ta đổi vị trí chúng cho nhau. Việc đó được lặp lại cho đến khi không có sự đổi chỗ nào xảy ra nữa.
? Với N = 6 và dãy A gồm 6 số hạng như sau :
? Lượt thứ nhất:
? Lượt thứ hai:
? Lượt thứ ba:
? Lượt thứ tư:
Mô phỏng thuật toán sắp xếp bằng tráo đổi
Cách 1: Liệt kê các bước
B1: Nhập N, các số hạng a1, a2,., aN;
B2: M ? N;
B3: Nếu M < 2 thì đưa ra dãy A đã sắp xếp rồi kết thúc;
B4: M ? M - 1; i ? 0;
B5: i ? i +1;
B6: Nếu i > M thì quay lại B3;
B7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;
B8: Quay lại B5.
Nhập N và
a1, a2,..., aN
M N
M < 2 ?
M M - 1; i 0
i i + 1
i > M ?
ai > ai+1 ?
Tráo đổi
ai và ai+1
Đưa ra A đã sắp xếp
rồi kết thúc
Đ
Đ
Đ
S
S
S
Cách 2
Vẽ sơ đồ khối
Thuật toán tìm kiếm
Hai bạn chó (Bi và Bông) chơi trốn tìm, Bông đã trốn vào một trong những chiếc mũ của ông già Nôen trên. Hãy chỉ ra các cách tìm chiếc mũ mà Bông đang trốn? Cho biết có những cách nào?
Bông trốn đâu nhỉ ?
C1: Tìm kiếm tuần tự
( mở từng mũ)
C2: Do các mũ đã sắp xếp lớn dần, hai mũ đầu nhỏ hơn
người của Bông nên chỉ tìm hai mũ sau thôi!
Thuật toán tìm kiếm tuần tự
Xác định bài toán:
INPUT: Dãy A gồm N số nguyên a1, a2,., aN đôi
một khác nhau và số nguyên k.
OUTPUT: Chỉ số i mà ai = k hoặc thông báo
không có số hạng nào của A bằng k.
5
4
3
2
1
I
51
25
11
8
9
2
4
1
7
5
A
Mô phỏng thuật toán tìm kiếm tuần tự
? Với k = 2 và dãy A gồm 10 số hạng như sau:
Tại vị trí i = 5 có a5 = 2 = k
? Với k = 6 và dãy A gồm 10 số hạng như sau:
Với mọi i từ 1? 10 không có ai có giá trị bằng 6
5
Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá (k) cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k.
Cách 1: Liệt kê các bước
Bước 1: Nhập N, các số hạng a1, a2,., aN
và giá trị khoá 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 B3.
Nhập N, a1, a2,..., aN
và k
i ? 1
ai = k ?
Đ
Yêu cầu :
Hãy xác định thông tin đưa vào (Input)
và thông tin cần lấy ra (Output)
Ví dụ 2: Giải phương trình bậc nhất ax + b = 0.
Yêu cầu :
Hãy xác định thông tin đưa vào (Input)
và thông tin cần lấy ra (Output)
Với a = 1, b = -5
? Phương trình có nghiệm x = 5
1. Khái niệm bài toán
Là việc nào đó ta muốn máy thực hiện để từ thông tin đưa vào (INPUT) tìm được thông tin ra (OUTPUT).
Ví dụ 4: Bài toán xếp loại học tập của một lớp.
INPUT: Bảng điểm của học sinh trong lớp.
OUTPUT: Bảng xếp loại học lực của học sinh.
Bài 4. Bài toán và thuật Toán
2. Khái niệm thuật toán
Từ INPUT làm thế nào để tìm ra OUTPUT ?
Các em cần tìm ra cách giải của bài toán.
Xét ví dụ 2: Giải phương trình bậc nh?t ax + b = 0.
B1: Xác định hệ số a, b;
B2: Nếu a=0 và b=0 => Phương trình vô số nghiệm =>B5;
B5: Kết thúc.
Có hai cách thể hiện một thuật toán:
? Cách 1: Liệt kê các bước.
? Cách 2: Vẽ sơ đồ khối.
B7: Kết thúc.
B1: Bắt đầu;
B2: Nhập a, b, c;
B3: Tính ? = b2 - 4ac;
B4: Nếu ? < 0 => PT vô nghiệm => B7;
B5: Nếu ? = 0
=> PT có nghiệm kép x = -b/2a => B7;
B6: Nếu ? > 0
=> PT có hai nghiệm x1, x2 = (-b ? ??)/2a
=> B7;
3. Một số ví dụ về thuật toán
Thuật toán giải phương trình bậc hai (a ? 0).
Cách 1: Liệt kê các bước
Quy ước các khối trong sơ đồ thuật toán
Bắt đầu thuật toán.
Dùng để nhập và xuất dữ liệu.
Dùng để gán giá trị và tính toán.
Xét điều kiện rẽ nhánh theo một trong hai điều kiện đúng, sai.
Kết thúc thuật toán.
BĐ
đ
S
Cách 2: Vẽ sơ đồ khối
đ
s
Sơ đồ thuật toán giải phương trình bậc hai
2
B1
B2
B3
B4
B5
B6
s
đ
B7
a,b,c= 1 3 5
D = 3*3 - 4*5 = - 11
-11 < 0
PT vô nghiệm
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 1:
a,b,c= 1 2 1
D = 2*2 - 4*1*1 = 0
PT vô nghiệm
PT có nghiệm x=-b/2a
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 2:
Đ
= 0
PT có nghiệm kép x=-1
a,b,c= 1 -5 6
D = 25 - 24 = 1
PT vô nghiệm
PT có nghiệm x=-b/2a
KT
BD
S
PT có 2 nghiệm
x1, x2 = (-b ??? )/2a
Đ
S
< 0
Mô phỏng thuật toán giải phương trình bậc hai
Bộ TEST 3:
Đ
= 0
PT có nghiệm x1 = 3
x2 = 2
Thuật toán tìm max
3
Người ta đặt 5 quả bóng có kích thước khác nhau trong hộp đã được đậy nắp như hình bên. Chỉ dùng tay hãy tìm ra quả bóng có kích thước lớn nhất .
Quả này lớn nhất
Quả này mới lớn nhất
ồ! Quả này lớn hơn
Tìm ra quả lớn nhất rồi!
Cùng tìm thuật toán
Thuật toán tìm số lớn nhất trong
một dãy số nguyên
Xác định bài toán:
INPUT: Số nguyên dương N và dãy N số nguyên a1, a2, ., aN (ai với i: 1?N).
OUTPUT: Số lớn nhất (Max) của dãy số.
Cách 1: Liệt kê các bước
B1: Nhập N và dãy a1,., aN;
B2: Max ? a1; i ? 2;
B3: Nếu i > N thì đưa ra giá trị Max rồi kết thúc;
B4:
Bước 4.1: Nếu ai > Max thì Max ? ai;
Bước 4.2: i ? i+1 rồi quay lại B3.
Đ
S
Đ
S
B1: Nhập N và dãy a1,.,aN;
B2: Max ? a1; i ? 2;
B3: Nếu i > N thì đưa ra giá trị
Max rồi kết thúc;
B4 :
4.1: Nếu ai > Max thì Max ? ai;
4.2: i ? i + 1 rồi quay lại B3.
Cách 2: Sơ đồ khối
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
I > N ?
ai> Max ?
Max ai
i i+1
Đưa ra Max rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7
Mô phỏng
thuật toán
Với i = 2
Với i = 3
Với i = 4
Với i = 5
Đ
S
Đ
S
Nhập N và dãy a1,.,aN
I > N ?
ai> Max ?
Max ai
i i+1
Đưa ra Max rồi kết thúc
Max
i
A
7
7
5
5
5
5
4
3
2
6
7
4
1
5
N=5 ; A [ 5 1 4 7 6 ]
2 > 5 ?
1> 5 ?
i 2+1
3 > 5 ?
4> 5 ?
i 3+1
4 > 5 ?
7 > 5 ?
Max 7
4
i 4+1
5 > 5 ?
7 > 7 ?
i 5+1
6 > 5 ?
Số lớn nhất của dãy là 7
Thuật toán kiểm tra tính nguyên tố của một số nguyên dương
Xác định bài toán:
INPUT: N là một số nguyên dương.
OUTPUT: Trả lời câu hỏi N có là số
nguyên tố không?
Các em hãy nêu định nghĩa số nguyên tố.
- Nếu N ? 4 và không có ước số trong phạm vi từ 2 đến phần nguyên căn bậc hai của N thì N là số nguyên tố.
- Nếu N = 1 thì N không là số nguyên tố.
- Nếu 1< N <4 thì n là số nguyên tố.
45 không là số nguyên tố.
29 là số nguyên tố.
Mô phỏng thuật toán kiểm tra tính nguyên tố
Cách 1: Liệt kê các bước
B1: Nhập số nguyên dương N;
B2: Nếu N = 1 thông báo N không nguyên tố, kết thúc;
B3: Nếu N < 4 thông báo N là nguyên tố rồi kết thúc;
B4: i ?2;
B5: Nếu i > [?N ] thì thông báo N là nguyên tố, kết thúc;
B6: Nếu N chia hết cho i thì thông báo N không nguyên tố rồi kết thúc;
B7: i ? i +1 rồi quay lại B5.
Nhập N
N =1 ?
N < 4 ?
i ? 2
i>[?N ] ?
N có chia hết cho i ?
i ? i +1
Thông báo N là số nguyên tố rồi kết thúc.
Thông báo N không là số nguyên tố rồi kết thúc.
Đ
S
S
Đ
S
S
Đ
Đ
Cách 2
Vẽ sơ đồ khối
Thuật toán sắp xếp
Hãy tìm cách sắp xếp học sinh đứng chào cờ (hình a) theo thứ tự thấp trước cao sau (hình b).
Hình a
Hình b
Thuật toán sắp xếp bằng tráo đổi
Xác định bài toán:
INPUT: Dãy A gồm N số nguyên a1, a2,., aN.
OUTPUT: Dãy A được sắp xếp thành dãy không giảm.
Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn số sau ta đổi vị trí chúng cho nhau. Việc đó được lặp lại cho đến khi không có sự đổi chỗ nào xảy ra nữa.
? Với N = 6 và dãy A gồm 6 số hạng như sau :
? Lượt thứ nhất:
? Lượt thứ hai:
? Lượt thứ ba:
? Lượt thứ tư:
Mô phỏng thuật toán sắp xếp bằng tráo đổi
Cách 1: Liệt kê các bước
B1: Nhập N, các số hạng a1, a2,., aN;
B2: M ? N;
B3: Nếu M < 2 thì đưa ra dãy A đã sắp xếp rồi kết thúc;
B4: M ? M - 1; i ? 0;
B5: i ? i +1;
B6: Nếu i > M thì quay lại B3;
B7: Nếu ai > ai+1 thì tráo đổi ai và ai+1 cho nhau;
B8: Quay lại B5.
Nhập N và
a1, a2,..., aN
M N
M < 2 ?
M M - 1; i 0
i i + 1
i > M ?
ai > ai+1 ?
Tráo đổi
ai và ai+1
Đưa ra A đã sắp xếp
rồi kết thúc
Đ
Đ
Đ
S
S
S
Cách 2
Vẽ sơ đồ khối
Thuật toán tìm kiếm
Hai bạn chó (Bi và Bông) chơi trốn tìm, Bông đã trốn vào một trong những chiếc mũ của ông già Nôen trên. Hãy chỉ ra các cách tìm chiếc mũ mà Bông đang trốn? Cho biết có những cách nào?
Bông trốn đâu nhỉ ?
C1: Tìm kiếm tuần tự
( mở từng mũ)
C2: Do các mũ đã sắp xếp lớn dần, hai mũ đầu nhỏ hơn
người của Bông nên chỉ tìm hai mũ sau thôi!
Thuật toán tìm kiếm tuần tự
Xác định bài toán:
INPUT: Dãy A gồm N số nguyên a1, a2,., aN đôi
một khác nhau và số nguyên k.
OUTPUT: Chỉ số i mà ai = k hoặc thông báo
không có số hạng nào của A bằng k.
5
4
3
2
1
I
51
25
11
8
9
2
4
1
7
5
A
Mô phỏng thuật toán tìm kiếm tuần tự
? Với k = 2 và dãy A gồm 10 số hạng như sau:
Tại vị trí i = 5 có a5 = 2 = k
? Với k = 6 và dãy A gồm 10 số hạng như sau:
Với mọi i từ 1? 10 không có ai có giá trị bằng 6
5
Lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá (k) cho đến khi có sự trùng nhau, nếu đã xét tới số hạng cuối cùng mà không có sự trùng nhau thì có nghĩa là dãy A không có số hạng nào có giá trị bằng k.
Cách 1: Liệt kê các bước
Bước 1: Nhập N, các số hạng a1, a2,., aN
và giá trị khoá 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 B3.
Nhập N, a1, a2,..., aN
và k
i ? 1
ai = k ?
Đ
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Cam Nhung
Dung lượng: |
Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)