22
12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 1 Bài 6: Giải toán trên máy tính GVHD: Ths Lê Đức Long Nguyễn Khắc Văn Lớp: SP Tin 3 SVTH: Hoàng Thị Hòa MSSV: K36.103.020

Bài 6 Giải bài toán trên máy tính

Embed Size (px)

Citation preview

Page 1: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH1

Bài 6: Giải toán trên máy tính

GVHD: Ths Lê Đức Long Nguyễn Khắc Văn

Lớp: SP Tin 3SVTH: Hoàng Thị HòaMSSV: K36.103.020

Page 2: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 22

Bài 6. GIẢI BÀI Bài 6. GIẢI BÀI TOÁNTOÁN TRÊN MÁY TÍNH TRÊN MÁY TÍNHBài 6. GIẢI BÀI Bài 6. GIẢI BÀI TOÁNTOÁN TRÊN MÁY TÍNH TRÊN MÁY TÍNH

Mục tiêu:Mục tiêu:Biết các bước cơ bản khi tiến hành Biết các bước cơ bản khi tiến hành giải toán trên máy tính: xác định bài giải toán trên máy tính: xác định bài toán, xây dựng và lựa chọn thuật toán, xây dựng và lựa chọn thuật toán, lựa chọn cấu trúc dữ liệu, viết toán, lựa chọn cấu trúc dữ liệu, viết chương trình, hiệu chỉnh, đưa ra kết chương trình, hiệu chỉnh, đưa ra kết quả và hướng dẫn sử dụng.quả và hướng dẫn sử dụng.

Page 3: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 33

Bài 6. GIẢI BÀI TOÁN TRÊN MÁY TÍNHBài 6. GIẢI BÀI TOÁN TRÊN MÁY TÍNHBài 6. GIẢI BÀI TOÁN TRÊN MÁY TÍNHBài 6. GIẢI BÀI TOÁN TRÊN MÁY TÍNH

1.1. Xác định bài toánXác định bài toán

2.2. Lựa chọn hoặc thiết kế thuật toánLựa chọn hoặc thiết kế thuật toán

3.3. Viết chương trìnhViết chương trình

4.4. Hiệu chỉnh Hiệu chỉnh

5.5. Viết tài liệuViết tài liệu

Page 4: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 4

1. Xác định bài toán1. Xác định bài toán1. Xác định bài toán1. Xác định bài toán

Mỗi bài toán được đặc tả bởi hai Mỗi bài toán được đặc tả bởi hai thành phần: Input và Output.thành phần: Input và Output.

Việc xác định bài toán chính là xác Việc xác định bài toán chính là xác định rõ hai thành phần Input; Output định rõ hai thành phần Input; Output và và mối quan hệmối quan hệ giữa chúng. giữa chúng.

Cần nghiên cứu cẩn thận Input và Cần nghiên cứu cẩn thận Input và Output để có thể lựa chọn thuật Output để có thể lựa chọn thuật toán:toán:

Page 5: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 5

1. Xác định bài toán1. Xác định bài toán1. Xác định bài toán1. Xác định bài toán

Ví dụVí dụ : :

Khi cần biểu diễn một số nguyên Khi cần biểu diễn một số nguyên dương N, là tuổi của một người, có dương N, là tuổi của một người, có thể chỉ rõ phạm vi giá trị của N từ thể chỉ rõ phạm vi giá trị của N từ 0 đến 150, để lựa chọn cách thể 0 đến 150, để lựa chọn cách thể hiện N bằng kiểu dữ liệu thích hợp.hiện N bằng kiểu dữ liệu thích hợp.

Page 6: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 6

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

a) Lựa chọn thuật toán 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 một bài toán Có thể có nhiều thuật toán khác nhau

cùng giải một bài toán. Cần thiết kế hoặc chọn một thuật toán

phù hợp đã có để giải bài toán cho trước.

Page 7: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 7

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

Cần quan tâm đến các tài nguyên như: Thời gian thực hiện Số lượng ô nhớ,... Trong đó thời gian được quan tâm

nhiều nhất vì đó là dạng tài nguyên không tái tạo được.

Page 8: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 8

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

Ví dụ: với bài toán tìm kiếm, thuật toán tìm kiếm nhị phân ít thao tác so sánh hơn thuật toán tìm kiếm tuần tự.

Thuật toán tìm kiếm nhị phân sẽ thực thi nhanh hơn thuật toán tìm kiếm tuần tự

Page 9: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 9

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

Ngoài ra cần quan tâm đến thiết kế hoặc lựa chọn thuật toán sao cho việc viết chương trình cho thuật toán đó ít phức tạp. tiêu chí của thuật toán là tính hiệu quả

Cần căn cứ vào lượng tài nguyên mà thuật toán đòi hỏi và lượng tài nguyên thực tế cho phép.

Page 10: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 10

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

b) Diễn tả thuật toán Ví dụ: Tìm ước chung lớn nhất

(ƯCLN) của hai số nguyên dương M và N.

Xác định bài toán Input: Nhập M, N; Output: ƯCLN(M, N).

Page 11: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 11

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

Ý tưởng: Sử dụng những điều đã biết sau: 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,N). Nếu M < N thì ƯCLN(M, N) =

ƯCLN(M,N- M);

Page 12: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 12

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

Thuật toán

a) Thuật toán diễn tả bằng cách liệt kê Bước 1: Nhập M, N; Bước 2: Nếu M = N đưa ra

ƯCLN(M,N)=M ; Kết thúc Bước 3: Nếu M > N thì M M - N rồi

quay lại bước 2; Bước 4: N N - M rồi quay lại bước 2;

Page 13: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 13

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

b) Thuật toán diễn tả bằng sơ đồ khối

Nhập M và NNhập M và N

M = N ?M = N ?

Đưa ra M; Kết thúcĐưa ra M; Kết thúc

M > N ?M > N ?

M M - NM M - N

N N - MN N - M

Đúng Đúng

Sai Sai

Page 14: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 14

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

c) Mô tả bằng số liệu cụ thể1. Cho hai số: M = 25 và N = 10 tìm

ƯCLN

252515155555

10101010101055

M=M=

N=N=

M > NM > N

M = M - N M = M - N

N = 10 - 5 N = 10 - 5

M = NM = N

ƯCLN(M,N) = 5ƯCLN(M,N) = 5M = 25 – 10 M = 25 – 10 M = 15 – 10 M = 15 – 10

N > MN > M

N = N - M N = N - M

Page 15: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 15

2. Lựa chọn hay thiết kế thuật toán2. Lựa chọn hay thiết kế thuật toán

c) Mô tả bằng số liệu cụ thể2. Cho hai số: M = 7 và N = 5 tìm ƯCLN

772211

553311

M=M=

N=N=

M > NM > N

M = M - N M = M - N

N = 3 - 2 N = 3 - 2

M = NM = N

ƯCLN(M,N) = 1ƯCLN(M,N) = 1M = 7 – 5 M = 7 – 5

N > MN > M

N = N - M N = N - M

N = 5 - 2 N = 5 - 2 M = 2 – 1M = 2 – 1

Page 16: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 16

3. Viết chương trình3. Viết chương trình

Viết chương trình là tổng hợp giữa lựa chọn cách tổ chức dữ liệu và sử dụng ngôn ngữ lập trình để diễn đạt đúng thuật toán.

Nên chọn một ngôn ngữ lập trình hoặc một phần mềm chuyên dụng thích hợp với thuật toán.

Viết chương trình trong ngôn ngữ nào thì cần phải tuân theo đúng quy định cú pháp (Syntax) của ngôn ngữ đó.

Chương trình dịch chỉ có thể phát hiện và thông báo các lỗi về mặt cú pháp

Page 17: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GI I BÀI TOÁN TRÊN MÁY TÍNHẢ 17

4. Hiệu chỉnh4. Hiệu chỉnh4. Hiệu chỉnh4. Hiệu chỉnh Chương trình khi viết xong vẫn có thể còn nhiều Chương trình khi viết xong vẫn có thể còn nhiều

lỗi khác chưa phát hiện được nên kết quả thực thi lỗi khác chưa phát hiện được nên kết quả thực thi không đúng. không đúng.

Vì vậy, cần phải thử (Test) chương trình bằng Vì vậy, cần phải thử (Test) chương trình bằng một số bộ Input tiêu biểu phụ thuộc vào đặc thù một số bộ Input tiêu biểu phụ thuộc vào đặc thù của bài toán mà đã biết trước Output. Các bộ của bài toán mà đã biết trước Output. Các bộ Input này được gọi là các Test. Input này được gọi là các Test.

Nếu có sai sót, ta phải sửa chương trình rồi thử Nếu có sai sót, ta phải sửa chương trình rồi thử lại. lại.

Quá trình này được gọi là Quá trình này được gọi là hiệu chỉnh hiệu chỉnh (Maintenance)(Maintenance) . .

Page 18: Bài 6 Giải bài toán trên máy tính

12/22/13 09:36 AM § 6 GI I BÀI TOÁN TRÊN MÁY TÍNHẢ 18

4. Hiệu chỉnh4. Hiệu chỉnh4. Hiệu chỉnh4. Hiệu chỉnh

Ví dụVí dụ: để kiểm tra tính đúng đắn của : để kiểm tra tính đúng đắn của chương trình giải phương trình bậc chương trình giải phương trình bậc nhất ax + b = 0, ta có thể sử dụng ba nhất ax + b = 0, ta có thể sử dụng ba bộ Test như sau:bộ Test như sau:a = 0; b = 0 (Thông báo pt vô định)a = 0; b = 0 (Thông báo pt vô định)a = 0;b <> 0 (Thông báo pt vô nghiệm)a = 0;b <> 0 (Thông báo pt vô nghiệm)a <> 0 (Đưa ra nghiệm x = -b/a)a <> 0 (Đưa ra nghiệm x = -b/a)

Page 19: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 1919

5. Viết tài liệu5. Viết tài liệu5. Viết tài liệu5. Viết tài liệu Tính chuyên nghiệp của phần mềmTính chuyên nghiệp của phần mềm Tài liệu phải mô tả:Tài liệu phải mô tả:

Bài toán, Bài toán, Thuật toán, Thuật toán, Thiết kế chương trình, Thiết kế chương trình, Kết quả thử nghiệm Kết quả thử nghiệm Và hướng dẫn sử dụng. Và hướng dẫn sử dụng.

Tài liệu này rất có ích cho người sử dụng chương Tài liệu này rất có ích cho người sử dụng chương trình và cho việc đề xuất những khả năng hoàn trình và cho việc đề xuất những khả năng hoàn thiện thêm.thiện thêm.

Page 20: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 2020

5. Viết tài liệu5. Viết tài liệu5. Viết tài liệu5. Viết tài liệu

Các bước trên có thể lặp đi lặp lại nhiều 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ần cho đến khi ta cho rằng chương trình đã làm việc đúng đắn và hiệu quả. đã làm việc đúng đắn và hiệu quả.

Page 21: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 2121

Củng cốCủng cốCủng cốCủng cố

1)1) Hãy nêu các bước giải bài toánHãy nêu các bước giải bài toán

2)2) Nêu nội dung bước xác định bài toánNêu nội dung bước xác định bài toán

3)3) Nêu nội dung bước chọn lựa hoặc Nêu nội dung bước chọn lựa hoặc thiết kế thuật toánthiết kế thuật toán

4)4) Hãy viết thuật toán giải phương trình Hãy viết thuật toán giải phương trình bậc 2 axbậc 2 ax22 + bx + c = 0 và đề xuất các + bx + c = 0 và đề xuất các test tiêu biểu test tiêu biểu

Page 22: Bài 6 Giải bài toán trên máy tính

12/22/1312/22/13 09:36 AM09:36 AM § 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH§ 6 GIẢI BÀI TOÁN TRÊN MÁY TÍNH 2222