Bài 6. Giải bài toán trên máy tính tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩ...
Trang 1§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Trang 2KIỂM TRA BÀI CŨ
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
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 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
toán bằng tay
chúng ta cần thực
hiện theo những
bước nào?
bước nào?
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
Để giải được bài toán trên máy
tính ta phải tiến
hành mấy bước,
đó là những bước
nào?
nào?
?
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
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 thuật toán 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 nhanh
* 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 thuật toán 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ì kl pt VN, rồi kết thúc (ngược lại
sang b4)
B4 : Nếu D=0 thì kl pt có nghiệm kép x = - b/2a, rồi
kết thúc
B5 : Nếu D>0 thì kl 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 b 2 – 4ac
D < 0 PT vô nghiệm
rồi kt
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
D = 0 PT có nghiệm kép
-11
D
5 3
1
c b
a
S
PT có 2 nghiệm
pb
Đ
S
D b2 - 4ac
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
D b2 - 4ac
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
D b2 - 4ac
Nhập vào a,b,c
D < 0
Đ
D = 0
PT có nghiệm kép
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 thuật toán 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:
Mục đích của việc viết tài
liệu là gì?
?
Chú ý: các bước
trên có thể lặp đi
lặp lại nhiều lần
cho đến khi ta cho
rằng chương trình
đã làm việc đúng
đắn và hiệu quả.
Trang 14Câu hỏi trắc nghiệm
Câu 1: Giải bài toán trên máy tính được tiến hành qua mấy
bước?
A 2 bước B 3 bước C 4 bước D 5 bước
Câu 1: Giải bài toán trên máy tính được tiến hành qua mấy
bước?
Câu 2: Tiêu chí lựa chọn hoặc thiết kế thuật toán là?
A.Hiệu quả về thời gian B Hiệu quả về không gian
C Khả thi khi cài đặt D Tất cả đều đúng
Câu 2: Tiêu chí lựa chọn hoặc thiết kế thuật toán là?
Câu 3: Viết chương trình là?
A Biểu diễn thuật toán
B Dùng NNLT để diễn đạt bài toán
C Dùng NNLT và cấu trúc dữ liệu thích hợp để diễn tả thuật toán
D Tất cả đều đúng
D 5 bước
D Tất cả đều đúng
C Dùng ngôn ngữ lập trình và cấu trúc dữ liệu thích hợp để diễn tả thuật toán
Trang 15Lựa chọn thuật toán
Lựa chọn hoặc thiết kế thuật toán
GIẢI BÀI
TOÁN TRÊN
MÁY TÍNH
Xác định bài toán
Viết chương
trình Hiệu chỉnh
Viết tài liệu
Input
Output
Chọn ngôn ngữ lập trình phù hợp.
Tổ chức dữ liệu Test và sửa sai sót.
Mô tả chương trình Hướng dẫn sử dụng
Trang 16BÀI TẬP VỀ NHÀ
Hãy viết thuật
toán giải phương trình bậc nhất ax +
b = 0 và đề xuất các bộ Test tiêu
biểu
Trang 17§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH