Thuật toán là gì?2.. Trình bày các bước để giải một bài toán?. Thuật toán là một dãy hữu hạn các thao tác cần thực hiện để giải một bài toán... Và chuyển đến bước 3.. Ngược lại, kết quả
Trang 11 Thuật toán là gì?
2 Trình bày các bước để giải một bài toán?
Thuật toán là một dãy hữu hạn các thao tác cần thực hiện để giải một bài toán.
+ Xác đ nh bài toán ị
+ Mô t thu t toán ả ậ
+ Vi t ch ế ươ ng trình (l p trình) ậ
Trang 2Ví d : ụ Tìm s l n nh t trong dãy A g m ố ớ ấ ồ các s a ố 1, a2, , an cho tr ướ c.
Mu n gi i bài ố ả
toán này trên máy tính ta
c n gi i m y ầ ả ấ
b ướ c?
V y đ tìm s ậ ể ố
l n nh t c a ớ ấ ủ dãy s này ta ố làm b ng cách ằ
nào?
Trang 4Bài 2 trang 36: Cho chương trình:
Program hoan_doi;
Var x,y,z: integer;
begin
read(x,y);
Writeln(x ,’ ’,y);
z:=x;
x:=y;
y:=z;
Writeln(x ,’ ’,y);
readln
end.
{gán giá trị biến nhớ x vào biến nhớ z}
{gán giá trị biến nhớ y vào biến nhớ x}
{gán giá trị biến nhớ z vào biến nhớ y}
4 M t s ví d v thu t toán ộ ố ụ ề ậ
4 M t s ví d v thu t toán ộ ố ụ ề ậ
? Em hãy cho biết ý nghĩa của 3 câu lệnh
? Cho biết kết quả
in ra màn hình ?
Bài 2 trang 36: Cho chương trình:
Program hoan_doi;
Var x,y,z: integer;
begin
read(x,y);
Writeln(x ,’ ’,y);
z:=x;
x:=y;
y:=z;
Writeln(x ,’ ’,y);
readln
end.
Trang 5 Bài toán đ Bài toán đ ượ ượ c xác đ nh c xác đ nh ị ị
Input: hai bi n x, y có giá tr t hai bi n x, y có giá tr t ế ế ị ươ ị ươ ng ng là a và b ng ng là a và b ứ ứ
Output: hai bi n x, y có giá tr t hai bi n x, y có giá tr t ế ế ị ươ ị ươ ng ng là b và a ng ng là b và a ứ ứ
Ta có thuật toán:
Bước 1: z ← x { giá trị của z sẽ bằng a}
Bước 2: x ← y { giá trị của x sẽ bằng b}
Bước 3: y ← z { giá trị của y sẽ bằng a}
c Ví d 4: ụ
c Ví d 4: 4 M t s ví d v thu t toán 4 M t s ví d v thu t toán ụ ộ ố ộ ố Đ i giá tr c a 2 bi n x và y Đ i giá tr c a 2 bi n x và y. ổ ổ ị ủ ị ủ ụ ề ụ ề ế ế ậ ậ
1
2
3
x=b y=a
Trang 64 M t s ví d v thu t toán ộ ố ụ ề ậ
4 M t s ví d v thu t toán ộ ố ụ ề ậ
d Ví dụ 5: Cho hai số thực a và b Hãy cho biết kết quả so sánh hai
số đó dưới dạng “a lớn hơn b”, “a nh h n b”, “a b ng b” ỏ ơ ằ
INPUT: Hai số thực a và b
OUTPUT: Kết quả so sánh.
So sánh hai mô hình trên
Mô hình 1:
Bước 1: Nếu a > b, kết quả là
“a lớn hơn b”. Bước 1 : Nếu a > b, kết quả là
“a lớn hơn b” Và chuyển đến bước 3.
Bước 2: Nếu a < b, kết
quả là “a nhỏ hơn b”
Ngược lại, kết quả là
“a bằng b” và kết thúc
thuật toán.
Bước 2 : Nếu a < b, kết quả là
“a nhỏ hơn b” Ngược lại, kết quả là “a bằng b” và kết thúc thuật toán.
Trang 7Ví dụ: Tìm giá trị lớn nhất của 3 số a, b, c
Em hãy xác định bài toán và mô tả thuật
toán cho bài toán?
- Input: 3 số a, b, c.
Hướng dẫn:
+ Ta gán số a cho biến Max sau đó so sánh lần lượt
số b và c với Max
Bài toán xác định
4 M t s ví d v thu t toán ộ ố ụ ề ậ
4 M t s ví d v thu t toán ộ ố ụ ề ậ
- Output: Max của 3 số a, b, c
+ Nếu b > Max thì gán b cho max, còn nếu c >
Max thì gán c cho max.
Trang 8e.Ví dụ 6: Tìm số lớn nhất trong dãy A gồm các số a1, a2, ,
an cho trước
+ Input: dãy A các số a1, a2, , an (n>=1)
Ta có thể thực hiện như sau:
Do vậy ta có thuật toán như sau:
4 M t s ví d v thu t toán ộ ố ụ ề ậ
4 M t s ví d v thu t toán ộ ố ụ ề ậ
+ Đầu tiên gán giá trị a1 cho biến Max
+ Sau đó lần lượt so sánh các số a2, an của dãy A với Max Nếu ai > Max thì ta gán ai cho Max.
+ Output: Giá trị Max = Max {a1, a2, , an }
Bước 1 Max ← a1; i ← 1.
Bước 2 i ← i + 1
Bước 3 Nếu i > n thì chuyển đến bước 5.
Bước 4 Nếu a i > Max thì Max ← ai và quay lại bước 2
Bước 5 Kết thúc thuật toán.
Trang 9a ) Trước hết, ta gi sử thỏ lớn ả
nhất là thỏ số 1, tức MAX = 1.
số 3) với thỏ số 4 Thỏ số 3 lớn hơn
thỏ số 4, do đó MAX vẫn bằng 3
số 2 Vỡ thỏ số 2 nhỏ hơn thỏ số 1,
do đó MAX vẫn bằng 1.
1) với thỏ số 3 Vỡ thỏ số 3 lớn hơn
thỏ số 1, do đó MAX được đặt lại
bằng 3 (thỏ số 3).
Dưới đõy minh họa trờn với trường hợp chọn thỏ lớn nhất trong 4 chỳ thỏ
Trang 10Dãy số 5 3 4 7 6 3 15 9
i
i > n
a i > SMAX
SMAX
Sai Sai Sai Sai Sai Sai Sai Sai Đúng
Sai Sai Đúng Sai Sai Đúng Sai
K t ế thúc
SMAX
Trang 11Đ gi i đ ể ả ượ c bài toán trên máy tính ta c n th c ầ ự
hi n các b ệ ướ c:
1 Xác đ nh bài toán ị
2 Mô t thu t toán ả ậ
3 Vi t ch ế ươ ng trình
+ Đi u ki n cho tr ề ệ ứớ c (Input).
+ K t qu thu đ ế ả ượ c (Output).
+ Tìm cách gi i bài toán ả + Di n ta b ng các l nh c n th c hi n ễ ằ ệ ầ ự ệ + D a vào mô t thu t toán, ta vi t ch ự ả ậ ế ươ ng trình
b ng ngôn ng l p trình ằ ữ ậ
Trang 12Thuật toán là dãy hữu hạn các thao tác cần thực hiện theo một trình tự xác định để thu được kết quả cần thiết từ những điều kiện cho trước.
Quá trình giải bài toán trên máy tính gồm các bước:
Giải bài toán trên máy tính là đưa cho máy tính dãy hữu hạn các thao tác đơn giản (thuật toán) mà nó có thể thực hiện được để cho ta kết quả
Xác định bài toán là việc xác định các điều kiện ban đầu(thông tin vào - INPUT) và các kết quả cần thu được(thông tin ra - OUTPUT).
1
2
3
4
Trang 131 H c bài và hi u đ ọ ể ượ c thu t toán c a ậ ủ
2 Tr l i câu h i và làm bài t p 4, 5, 6 ả ờ ỏ ậ (SGK – trang 45).
3 H c thu c ph n ghi nh ọ ộ ầ ớ