Ví dụ: đối với thuật toán tìm ƯCLN của 2 số nguyên dương M và N ở trên, ta có thể sử dụng ngôn ngữ lập trình Pascal để viết chương trình.. Chương trình tìm ƯCLN(M, N)[r]
Trang 1CÂU HỎI KIỂM TRA BÀI CŨ
Câu 1: Ngôn ngữ lập trình là gì? Ngôn ngữ lập trình gồm có các loại nào?
Câu 2: Chương trình dịch dùng để làm gì?
Câu 3: Ngôn ngữ lập trình Pascal thuộc loại ngôn ngữ lập trình nào trong các loại ngôn ngữ sau?
a Hợp ngữ
c Ngôn ngữ máy
b Ngôn ngữ lập trình bậc cao
d Chương trình dịch
Trang 2Câu 1: Ngôn ngữ lập trình là gì? Ngôn ngữ lập trình gồm có các loại nào?
Trả lời:
- Ngôn ngữ lập trình là ngôn ngữ dùng để viết chương trình.
- Ngôn ngữ lập trình gồm các loại:
+ Ngôn ngữ máy.
+ Hợp ngữ.
+ Ngôn ngữ lập trình bậc cao.
TRẢ LỜI KIỂM TRA BÀI CŨ
Trang 3Câu 2: Chương trình dịch dùng để làm gì?
TRẢ LỜI KIỂM TRA BÀI CŨ
Trả lời: Chương trình dịch dùng để dịch những chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy.
Câu 3: Ngôn ngữ lập trình Pascal thuộc loại ngôn ngữ lập trình nào trong các loại ngôn ngữ sau?
Trả lời: b Ngôn ngữ lập trình bậc cao
Trang 4Xét ví dụ: Tìm ước số chung lớn nhất (ƯCLN) của 2 số nguyên dương M và N.
M = 25, N = 10
ĐẶT VẤN ĐỀ
Với các giá trị:
M = 8, N = 8
M = 88, N = 121
M = 17, N = 13
Trang 5Vậy khi sử dụng máy tính
để giải quyết bài toán trên thì có những ưu điểm nào
so với cách giải thông
thường?
Trang 6§6 GIẢI BÀI TOÁN TRÊN
MÁY TÍNH
Việc giải bài toán trên máy tính thường được tiến hành theo các bước sau:
Bước 1: Xác định bài toán;
Bước 2: Lựa chọn hoặc 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;
>|
Trang 7§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
1./ Xác định bài toán:
Input: các thông tin đã có
Output: các thông tin cần tìm từ Input
Bài toán 1: Tìm ước chung lớn nhất (ƯCLN) của 2
số nguyên dương M và N.
- Mỗi bài toán được đặc tả bởi 2 thành phần:
- Xác định Input, Output của các bài toán sau:
Input: 2 số nguyên dương M, N
Output: ƯCLN(M, N)
Bài toán 2: Tìm và đưa ra nghiệm của phương trình bậc nhất tổng quát: ax + b = 0
Input: các số thực a, b
Output: số thực x thỏa mãn ax + b = 0
Trang 8§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
2./ Lựa chọn hoặc thiết kế thuật toán:
- Một bài toán thì có nhiều thuật toán để giải, nên ta cần phải lựa chọn một thuật toán cho phù hợp
a./ Lựa chọn thuật toán:
- Khi thiết kế hoặc lựa chọn thuật toán, ta thường quan tâm đến các tài nguyên như: thời gian thực hiện, số lượng ô nhớ, việc viết chương trình cho thuật toán đó đơn giản,
Ví dụ: Tìm kiếm k = 23 trong dãy số A sau:
7, 10, 16, 19, 21, 23, 25, 30, 40, 50, 60
Sử dụng thuật toán Tìm kiếm nhị phân
Trang 9§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
2./ Lựa chọn hoặc thiết kế thuật toán:
b./ Diễn tả thuật toán:
Các bước để diễn tả thuật toán:
Xác định bài toán
Nêu ý tưởng
Xây dựng thuật toán
Ví dụ mô phỏng
Trang 10§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
Ví dụ: Diễn tả thuật toán tìm ước chung lớn nhất
(ƯCLN) của hai số nguyên dương M và N.
Giải
Xác định bài toán:
- Input: M và N
- Output: ƯCLN(M, N)
Ý tưởng:
-Nếu M = N thì giá trị chung đó là ƯCLN của M và N -Nếu M < N thì ƯCLN(M, N) = ƯCLN(M, N – M) -Nếu M > N thì ƯCLN(M, N) = ƯCLN(M – N, N)
Trang 11 Xây dựng thuật toán:
- Cách 1: Liệt kê các bước - Cách 2: Vẽ sơ đồ khối
+ B1: Nhập M và N
+ B2: Nếu M = N thì lấy giá
trị chung này làm ƯCLN rồi
chuyển đến B5
+ B3: Nếu M > N thì
M M – N rồi quay lại B2
+ B4: N N – M rồi quay
lại B2
1
2
3
4
5
+ B5: Đưa ra kết quả ƯCLN
rồi kết thúc
Nhập M và N
Sai
M > N? M M – N
N N – M
Đúng Sai
Đưa ra M rồi kết thúc
Trang 12 Ví dụ mô phỏng:
ƯCLN(25, 10) = 5
M=25
N=10
M M - N
M=15
N=10
M M - N
M=5
N=10
N N - M
M=5
N=5
Tìm ước chung lớn nhất của 2 số nguyên dương M = 25 và N = 10?
Lần duyệt thứ 1
Lần duyệt thứ 2
Lần duyệt thứ 3
Trang 13§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
3./ Viết chương trình:
Là sự tổng hợp giữa các việc:
- Lựa chọn cách tổ chức dữ liệu
- Sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán
Ví dụ: đối với thuật toán tìm ƯCLN của 2 số nguyên dương
M và N ở trên, ta có thể sử dụng ngôn ngữ lập trình Pascal
để viết chương trình
Trang 14Chương trình tìm ƯCLN(M, N) Sử dụng ngôn ngữ lập trình Pascal.
Diễn đạt
đúng
thuật
toán
Tổ chức
dữ liệu
Trang 15§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
4./ Hiệu chỉnh:
- Ta thực hiện thử chương trình bằng một số bộ Input tiêu biểu
để kiểm tra kết quả ra (Output) nhằm phát hiện và sửa lỗi
- Các bộ Input - Output tương ứng này được gọi là các Test
- Đề xuất các Test cho chương trình tìm ƯCLN của 2 số nguyên dương M và N:
ƯCLN(8, 8) = 8
M = 8, N = 8
M = 88, N = 121
M = 17, N = 13 ƯCLN(17, 13) = 1
ƯCLN(88, 121) = 11
Trang 16§6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH
5./ Viết tài liệu:
Khi viết tài liệu, thì tài liệu cần phải có:
Mô tả bài toán
Diễn tả thuật toán
Thiết kế chương trình
Kết quả thử nghiệm
Hướng dẫn sử dụng
Trang 17CỦNG CỐ
Bài toán 1: Chỉ rõ Input-Output: “Cho ba cạnh a, b, c của tam giác
ABC, tính diện tích S của tam giác đó”
- Input: ba số thực a, b, c
- Output: số thực S (diện tích tam giác ABC)
Bài toán 2: Đề xuất các Test để kiểm tra tính đúng đắn của chương
trình: “Giải phương trình bậc 2 tổng quát ax2 + bx + c = 0”
Có thể cho chương trình chạy với một số bộ Test sau:
- Biệt số Δ > 0; a = 1, b = -5, c = 6
- Biệt số Δ = 0; a = 1, b = -4, c = 4
- Biệt số Δ < 0; a = 1, b = 4, c = 8
Trang 18DẶN DÒ
1 Xem lại bài học.
2 Trả lời câu hỏi và bài tập (SGK – trang 51)
3 Chuẩn bị bài mới: §7 PHẦN MỀM MÁY TÍNH
(SGK – trang 51)
KẾT THÚC TIẾT DẠY