Để giải quyết một bài toán cụ thể , ta cần xác định bài toán Điều kiện cho tr ớc Kết quả thu đ ợc Bài toán 1 Điều kiện cho tr ớc: Một cạnh và đ ờng cao t ơng ứng với cạnh đó Kết q
Trang 13 Thuật toán và mô tả thuật toán
2 Quá trình giải bài toán trên máy tính?
1 Bài toán và xác định bài toán là gì?
4 Một số ví dụ về thuật toán
Trang 21 Bài toán và xác định bài toán
Hãy quan sát các bài toán
sau !
Bài toán 1: Tính diện tích của một tam giác biết
một cạnh và đ ờng cao t ơng ứng với cạnh đó.
Bài toán 2 : Lập một bảng điểm để quản lí kết quả
học tập của học sinh trong một lớp.
Bài toán 3: Tìm các cách khắc phục tắc nghẽn
giao thông trong giờ cao điểm
Bài toán là gì nhỉ ?
Bài toán là một công việc hay một
nhiệm vụ cần phải giải quyết
Trang 3 Để giải quyết một bài toán cụ thể , ta cần xác định bài toán
Điều kiện cho tr ớc
Kết quả thu đ ợc
Bài toán 1
Điều kiện cho tr ớc: Một cạnh và đ ờng cao t ơng ứng với cạnh đó
Kết quả thu đ ợc: Diện tích hình tam giác
Bài toán 2
Điều kiện cho tr ớc: Thông tin của học sinh trong lớp (Họ tên điểm các môn )
Kết quả thu đ ợc: Kết quả học tập của học sinh
Xác định bài toán là b ớc đầu tiên và là b ớc rất quan
Trang 4M¸y tÝnh cã thÓ
tù gi¶i c¸c bµi to¸n kh«ng?
2 Qu¸ tr×nh gi¶i bµi to¸n trªn m¸y tÝnh?
å kh«ng! T«i chØ lµm theo sù chØ dÉn th«i!!!!
Trang 5Dãy hữu hạn các thao tác để giải một bài toán
th ờng đ ợc gọi là thuật toán
Để máy tính có thể giải các bài toán, ta cần h ớng
dẫn máy tính thực hiện một dãy hữu hạn các thao tác để từ các điều kiện cho tr ớc ta nhận đ ợc kết quả cần thu đ ợc
Trang 6M¸y tÝnh kh«ng thÓ tù m×nh t×m ra lêi gi¶i cña c¸c bµi to¸n Lêi gi¶i cña mét bµi to¸n cô thÓ, tøc thuËt to¸n, lµ t duy s¸ng t¹o cña con ng êi
H·y nhí!
Trang 7Xác định bài toán: xác định điều kiện ban đầu
(input) và kết quả cần xác định (output).
Xây dựng thuật toán: Lựa chọn và mô tả các thao tác sẽ thực.
Viết ch ơng trình: Diễn đạt thuật toán bằng một ngôn ngữ lập trình sao cho máy tính có thể hiểu và thực hiện đ ợc.
Quá trình giải bài toán trên máy tính
1
2
3
Trang 8Các b ớc thực hiện
để pha trà mời khách ntn nhỉ ?
3 Thuật toán và mô tả thuật toán
Thuật toán pha trà mời khách
Input: Trà, n ớc sôi, ấm và chén
Output: Chén trà đã pha để mời khách
Trang 9INPUT: Trứng, dầu ăn, muối và hành.
OUTPUT: Trứng tráng
Ví dụ 2: Thuật toán “Làm món trứng tráng”
B ớc 1. Đập trứng, tách vỏ và cho trứng vào bát.
B ớc 2 Cho một chút muối và hành t ơi thái nhỏ
vào bát trứng Dùng đũa quấy mạnh cho
đến khi đều.
B ớc 3 Cho một thìa dầu ăn vào chảo, đun nóng
đều rồi đổ trứng vào Đun tiếp trong
khoảng 1 phút.
B ớc 4 Lật mặt trên của miếng trứng úp xuống
d ới Đun tiếp trong khoảng 1 phút.
B ớc 5 Lấy trứng ra đĩa.
Trang 10VD3 ThuËt to¸n gi¶i ph ¬ng tr×nh bËc nhÊt tæng qu¸t
bx + c = 0
B íc 1: NÕu b = 0 chuyÓn tíi b íc 3;
B íc 2: TÝnh nghiÖm cña ph ¬ng tr×nh x = råi
−
Trang 11Các b ớc của ba
thuật toán trên có
thay đổi trình tự đ
ợc không ?
Thuật toán là dãy 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
Trang 12Ví dụ 1 Một hình A đ ợc ghép từ một hình chữ nhật với chiều rộng 2a, chiều dài b và một hình bán nguyệt bán kính a nh hình d ới đây:
hình A
b
a a
Xác định Input và Output của bài toán
4 Một số ví dụ về thuật toán
Trang 131 Tính S1 = 2a ì b {(Tính S hình CN)};
2 Tính S2 = π a2 /2 {(S hình bán nguyệt)};
3 Tính S = S1 + S2 và kết thúc
là bán kính của hình bán nguyệt, b là chiều
dài của hình chữ nhật.
L u ý : Trong biểu diễn thuật toán kí hiệu ← để chỉ phép gán một
Trang 14Xác định Input và Output của bài toán
- INPUT: Dãy 100 số tự nhiên đầu
tiên: 1, 2, 100.
Ví dụ 2: Tính tổng của 100 số tự nhiên đầu tiên
liên tiếp S = 1 + 2 + 3 + 4 + + 100
Trang 15S sau = S tr íc + i víi i t¨ng lÇn l ît tõ 1
Trang 16B íc 1: S ← 0; i ← 0;
B íc 3: NÕu i <= 100 th× S ← S + i; vµ quay l¹i b íc 2
trong tr êng hîp ng îc l¹i th«ng b¸o kÕt qu¶ råi kÕt thóc thuËt to¸n.
B íc 2: i ← i + 1
ThuËt to¸n tÝnh tæng
Trang 17Bài toán đổi giá trị hai biến
Cốc A chứa n ớc màu đỏ, cốc B chứa n ớc màu xanh Làm cách nào để tráo đổi cốc A có n ớc màu xanh, cốc B có n ớc màu đỏ? (Giả thiết cốc A và cốc B có thể tích nh nhau)
Làm cách
nào đây?
Trang 18Cốc A Cốc B
Bài toán đổi giá trị hai biến
Cốc C
1 Lấy một cốc C rỗng có thể tích nh A và B
Trang 203 Đổ n ớc màu xanh ở cốc B sang cốc A
Bài toán đổi giá trị hai biến
Trang 214 Đổ n ớc màu đỏ ở cốc C sang cốc B
Bài toán đổi giá trị hai biến
Trang 22VÝ dô 3: §æi gi¸ trÞ hai biÕn x vµ y
Input: Hai biÕn x vµ y cã gi¸ trÞ t ¬ng øng lµ a, b
Output: Hai biÕn x vµ y cã gi¸ trÞ t ¬ng øng lµ b, a
B íc 1: z ← x {Sau b íc nµy gi¸ trÞ cña z sÏ b»ng a}
B íc 2: x ← y {Sau b íc nµy gi¸ trÞ cña x sÏ b»ng b}
B íc 3: y ← z {Sau b íc nµy gi¸ trÞ cña y sÏ b»ng gi¸ trÞ cña z, chÝnh lµ gi¸ trÞ ban ®Çu a cña biÕn x}
Trang 23Ví dụ 4: 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 “ ” ” ”
hoặc a=b “ ”
B ớc 1: So sánh a và b Nếu a>b, cho kết quả a lớn hơn b “ ”
B ớc 2: Nếu a<b, cho kết quả a nhỏ hơn b ; ng ợc lại, cho kết “ ”
Input: Hai số thực a và b
Output: Kết quả so sánh
Hãy tìm chỗ ch a đúng trong thuật toán sau
Trang 24 a lín h¬n b
a = b
Trang 25B ớc 1: So sánh a và b Nếu a>b, cho kết quả
a lớn hơn b và
“ ” chuyển đến b ớc 3
B ớc 2 : Nếu a<b, cho kết quả a nhỏ hơn b ; ng ợc “ ”
lại, cho kết quả a = b “ ”
B ớc 3: Kết thúc thuật toán
Thuật toán so sánh 2 số thực
Trang 26VÝ dô 5 : T×m sè lín nhÊt trong d·y A c¸c sè a1, a2, , an
INPUT: Sè nguyªn d ¬ng N vµ d·y N sè nguyªn
a1,a2, a… N (ai víi i: 1n)
OUTPUT: Sè lín nhÊt (Max) cña d·y sè
Trang 27Thuật toán tìm max
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
Trang 28Qu¶ 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
Trang 29ý t ởng:
- Đặt giá trị Max= a1
- Lần l ợt cho i chạy từ 2 đến N, so sánh giá trị ai với giá trị Max, nếu ai> Max thì Max nhận giá trị mới là ai.
Trang 30B ớc 1: Max ← a 1 ; i ← 1
B ớc 3: Nếu i > N, chuyển đến b ớc 5
Thuật toán tìm max
B ớc 2: i ←i +1
B ớc 4: Nếu a i > Max thì Max ← a i rồi quay lại b ớc 2
tr ờng hợp ng ợc lại giữ nguyên Max và quay lại b ớc 2
B ớc 5: Kết thúc thuật toán
Trang 31Ghi nhớ!
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-ra INPUT) và các kết quả cần thu đ ợc( thông tin ra ( OUTPUT)
Giải bài toán trên máy tính nghĩa là h ớng dẫn 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ả.
Quá trình giải một bài toán trên máy tính gồm các b ớc: xác định bài toán; xây dựng thuật toán; lập ch ơng trình.
Thuậ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