Lựa chọn và thiết kế thuật toán: Xác định rõ 2 thành phần: INPUT và OUTPUT - Là bước quan trọng nhất để giải một bài toán.. Lựa chọn và thiết kế thuật toán: Xác định rõ 2 thành phần: IN
Trang 1§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Trang 2§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH KIỂM TRA BÀI CŨ
NNLT là gì?
NNLT là gì?
Nêu các loại NNLT mà
em đã học? Trong các
NNLT đó thì ngôn ngữ
nào được phát triển
mạnh nhất? Vì sao?
?
Ngôn ngữ lập trình: là ngôn ngữ dùng để viết chương trình
Các loại: NN máy, Hợp ngữ, NNLT bậc cao.
NNLT được phát triển mạnh nhất: Là NNLT bậc cao Vì đây
là ngôn ngữ gần gũi với tự nhiên hơn, tạo môi trường làm việc dễ dàng hơn cho con người.
Trang 3§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Khi giải bài toán bằng tay chúng ta
cần thực hiện theo
những bước nào?
những bước nào?
?
Giải bài toán trên máy tính thông qua 5 bước sau:
Bước 1: Xác định bài toán.
Bước 2: Lựa chọn và thiết kế thuật toán.
Bước 3: Viết chương trình.
Bước 4: Hiệu chỉnh;
Bước 5: Viết tài liệu
B1: Tìm hiểu đề
B2: Xác định dạng
bài toán và chọn cách
giải
B3: Giải bài toán
B4: Kiểm tra lại kết
quả
B5:Trình bày lời giải
cho bài toán
Trang 4§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
Xác định bài toán là cần phải xác
định cái gì? Và xác
định nhằm mục đích
gì?
?
Xác định rõ 2 thành phần:
- INPUT
- OUTPUT
Từ đó, xác định NNLT và lựa chọn thuật toán thích hợp
VD: Giải phương trình bậc hai:
ax2 + bx + c = 0 (a# 0)
Hãy xác định Input và Output của bài toán?
+Input: Nhập hệ số a, b, c (a#0) +Output: Kết luận nghiệm của
phương trình
-Pt VN -Pt có nghiệm kép
-Pt có 2 nghiệm phân biệt x1
và x2
Cho a=1, b=-3, c=2
thì ta có pt x2 – 3x+2 = 0.
Theo em, pt này có
mấy cách giải?
?
Trang 5§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
2 Lựa chọn và thiết kế thuật toán:
Xác định rõ 2 thành phần: INPUT
và OUTPUT
- Là bước quan trọng nhất để giải một bài toán.
- Mỗi thuật toán chỉ giải 1 bài toán, nhưng một bài toán có thể có nhiều thuật toán để giải Chọn tt tối ưu nhất.
Cho a=1, b=-3, c=2 thì ta có pt x2 – 3x+2 = 0.
?
- Thuật toán tối ưu là thuật toán có các tiêu chí sau:
* Dễ hiểu
* Trình bày ngắn gọn
* Thời gian thực hiện
* Tốn ít bộ nhớ
a Lựa chọn thuật toán:
b Diễn tả thuật toán:
VD: Giải phương trình
bậc hai:
ax2 + bx + c = 0 (a# 0)
* Xác định bài toán:
* Ý tưởng:
- Tính Delta (D)
- Nếu D<0 pt VN
- Nếu D=0 pt có
nghiệm kép x=-b/2a
- Nếu D>0 pt có 2
nghiệm phân biệt x1 và x2
* Thuật toán:
Chọn tt tối ưu nhất
C1: Tính Delta và
áp dụng công thức
nghiệm
C2: Nhẩm nghiệm:
Lấy giá trị bất kỳ đưa
vào pt xem có phải là
nghiệm hay không?
Trang 6§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
b Diễn tả thuật toán:
2 Lựa chọn và thiết kế thuật toán:
B1 : Nhập a, b, c (a#0)
B2 : D b2 – 4ac
B3 : Nếu D<0 thì pt VN rồi kết thúc (ngược lại sang b4)
B4 : Nếu D=0 thì pt có nghiệm kép rồi kết thúc
B5 : Nếu D>0 thì pt có 2 nghiệm phân biệt x1, x2 rồi kết thúc Liệt Kê
Trang 7§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
b Diễn tả thuật toán:
2 Lựa chọn và thiết kế thuật toán:
Sơ đồ khối Nhập a,b,c
D b2 – 4ac
D = 0 PT có nghiệm kép rồi kt
PT có 2 nghiệm pb
rồi kt
B1
B2
B3
B4
B5
Đ Đ
S
S
Trang 8§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
b Diễn tả thuật toán:
2 Lựa chọn và thiết kế thuật toán:
Mô phỏng thuật toán giải phương trình bậc hai
a,b,c= 1 3 5
D = 3*3 - 4*5 = - 11
D=-11 < 0 PT vô nghiệm
-11
D
5 3
1
c b
a
S
PT có 2 nghiệm pb
Đ
S
Nhập vào a,b,c
D < 0
Đ
Trang 9§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
b Diễn tả thuật toán:
2 Lựa chọn và thiết kế thuật toán:
Mô phỏng thuật toán giải phương trình bậc hai
a,b,c= 1 3 -4
D = 9 + 16 = 25
PT vô nghiệm
PT có nghiệm kép
25
D -4
3 1
c b
a
S
PT có nghiệm pb
đ
S
Nhập vào a,b,c
D < 0
đ
D = 0
PT có nghiệm x1 = 1
x2 = -4
Trang 10§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
b Diễn tả thuật toán:
2 Lựa chọn và thiết kế thuật toán:
Mô phỏng thuật toán giải phương trình bậc hai
a,b,c= 1 2 1
D = 2*2 - 4*1*1 = 0
D=0
PT vô nghiệm
PT có nghiệm kép
0
D
1 2
1
c b
a
S
PT có 2 nghiệm pb
Đ
S
Nhập vào a,b,c
D < 0
Đ
x=-1
Trang 11§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
2 Lựa chọn và thiết kế thuật toán:
Xác định rõ 2 thành phần: INPUT và OUTPUT
a Lựa chọn thuật toán: Chọn tt tối ưu nhất
b Diễn tả thuật toán:
Bằng cách nào để
máy tính hiểu được thuật
toán?
?
3 Viết chương trình:
Là tổng hợp giữa việc lựa chọn cách tổ chức dữ liệu và sử dụng NNLT
để diễn đạt đúng thuật toán.
Dùng NNLT
diễn đạt
đúng thuật toán
Trang 12§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
2 Lựa chọn và thiết kế thuật toán:
Xác định rõ 2 thành phần: INPUT và OUTPUT
a Lựa chọn thuật toán: Chọn tt tối ưu nhất
b Diễn tả thuật toán:
Chương trình khi
viết xong thì có đảm bảo
rằng là hoàn toàn đúng
không?
?
3 Viết chương trình:
Là tổng hợp giữa việc lựa chọn cách tổ chức dữ liệu và sử dụng NNLT
để diễn đạt đúng thuật toán.
4 Hiệu chỉnh:
Là quá trình thử lại chương trình với nhiều bộ Input khác nhau cho ra output tương ứng Nếu có sai sót, ta sửa chương trình rồi thử lại
VD: Kiểm chứng nghiệm
của pt bậc hai:
ax 2 + bx + c = 0 (a# 0)
Với các bộ input sau:
a=1; b= -5; c=6
a=1; b= -4; c=4
a=1; b=4; c=8
Trang 13§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
2 Lựa chọn và thiết kế thuật toán:
Xác định rõ 2 thành phần: INPUT và OUTPUT
a Lựa chọn thuật toán : Chọn tt tối
ưu nhất
b Diễn tả thuật toán:
3 Viết chương trình: lựa chọn cách tổ chức dữ liệu và sử dụng NNLT để diễn đạt đúng thuật toán
4 Hiệu chỉnh: thử lại chương trình
Là tổng hợp lại từ việc mô tả bài toán, thuật toán, thiết kế chương trình, kết quả thử nghiệm và hướng dẫn sử dụng chương trình
5 Viết tài liệu:
Trang 14§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1 Xác định bài toán
2 Lựa chọn và thiết kế thuật toán:
Xác định rõ 2 thành phần: INPUT và OUTPUT
a Lựa chọn thuật toán : Chọn tt tối
ưu nhất
b Diễn tả thuật toán:
3 Viết chương trình: lựa chọn cách tổ chức dữ liệu và sử dụng NNLT để diễn đạt đúng thuật toán
4 Hiệu chỉnh: thử lại chương trình
Là tổng hợp lại từ việc mô tả bài toán, thuật toán, thiết kế chương trình, kết quả thử nghiệm và hướng dẫn sử dụng chương trình
BÀI TẬP
5 Viết tài liệu:
VỀ NHÀ
1 3 trang 51
SGK
7,8
Trang 15§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH