Giải bài toán trên máy tính là gì

Câu hỏi: Làm thế nào để máy tính hiểu và thực hiện được thuật toán đã lựa chọn để giải bài toán?

Lời giải:

Để máy tính hiểu và thực hiện được thuật toán đã lựa chọn để giải bài toán ta cầnxác định rõ 2 thành phần Input và Output và mối quan hệ giữa chúng để có thể lựa chọn thuật toán và ngôn ngữ lập trình thích hợp.

Cùng Top lời giải tìm hiểu chi tiết các bước để giải một bài toán trên máy tính nhé!

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

- Là xác định rõ 2 thành phần Input và Output và mối quan hệ giữa chúng để có thể lựa chọn thuật toán và ngôn ngữ lập trình thích hợp.

2. Lựa chọn hoặc 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 bài toán.

- Có thể có nhiều thuật toán để giải một bài toán, cần thiết kế hoặc chọn 1 thuật toán phù hợp để giải bài toán cho trước.

b. Diễn tả thuật toán

VD: Tìm UCLN (M,N)

- Xác định bài toán

+ Input: cho M, N

+Output: UCLN (M,N)

- Ý tưởng:

+Nếu M=N thì UCLN (M)

+Nếu M>Nthì M←M-N

+Nếu M<N thì N←N-M

- Xây dựng thuật toán:

+Liệt kê:

  • B1: Nhập M, N;
  • B2: Nếu M = N lấy ­UCLN = M (hoặc N), 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ạiB2;
  • B5: Đ­ưa ra kết quả ­UCLN rồi kết thúc.

+Sơ đồ khối:

c. Viết chương trình

- Viết chương trình là việc tổng hợp giữa việc 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.

Ngôn ngữ lập trình + Thuật toán = Chương trình

- Khi viết chương trình ta 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ì phải tuân theo ngôn ngữ đó.

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

d. Hiệu chỉnh

- Khái niệm: là việc thử chương trình với 1 số bộ Input tương ứng với Output đã biết trước, từ đó ta xác định được các lỗi của chương trình.

- Mỗi bộ Input – Output được gọi là các Test.

e.Viết tài liệu

Mô tả lại quá trình giải bài toán: phát biểu bài toán, viết 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.

3. Bài tập trắc nghiệm

Câu 1:Các bước giải bài toán trên máy tính được tiến hành theo thứ tự nào sau đây:

A. Xác định bài toán – Lựa chọn thuật toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu

B. Xác định bài toán – Viết chương trình – Lựa chọn thuật toán – Viết tài liệu

C. Lựa chọn thuật toán – Xác định bài toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu

D. Viết chương trình – Hiệu chỉnh – Viết tài liệu

Đáp án : A

Giải thích :

Các bước giải bài toán trên máy tính được tiến hành theo thứ tự: Xác định bài toán – Lựa chọn thuật toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu.

Câu 2:Mỗi bài toán được đặc tả bởi mấy thành phần:

A. 4

B. 3

C. 2

D. 1

Đáp án : C

Giải thích :

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

Câu 3:Viết chương trình là?

A. Biểu diễn thuật toán

B. Dùng ngôn ngữ lập trình để diễn đạt bài toán

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

D. Tất cả đều đúng

Đáp án : C

Giải thích :

Viết chương trình là tổng hợp giữa việ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ả đúng thuật toán.

Câu 4:Tiêu chuẩn lựa chọn thuật toán:

A. Lượng tài nguyên thuật toán đòi hỏi và lượng tài nguyên cho phép

B. Độ phức tạp của thuật toán

C. Các tài nguyên như thời gian thực hiện, số lượng ô nhớ...

D. Cả 3 ý trên đều đúng

Đáp án : D

Giải thích :

Khi lựa chọn thuật toán để giải một bài toán cụ thể cần căn cứ vào các tiêu chí sau:

+ Lượng tài nguyên thuật toán đòi hỏi và lượng tài nguyên cho phép

+ Độ phức tạp của thuật toán

+ Các tài nguyên như thời gian thực hiện, số lượng ô nhớ...

Câu 5:Giải bài toán trên máy tính được tiến hành qua mấy bước?

A. 3

B. 4

C. 5

D. 6

Đáp án : C

Giải thích :

Giải bài toán trên máy tính được tiến hành qua 5 bước: Xác định bài toán – Lựa chọn thuật toán – Viết chương trình – Hiệu chỉnh – Viết tài liệu.

* Các bước để giải một bài toán trên máy tính:

+ Xác định bài toán

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

+ Viết chương trình

+ Hiệu chỉnh

+ Viết tài liệu.

Cùng Top lời giải tìm hiểu chi tiết các bước này nhé:

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

- Là quá trình xác định 2 thành phần: Input và Output và mối quan hệ giữa chúng.

- Ví dụ: Tìm bội chung lớn nhất (BCNN) của hai số nguyên dương A và B

+ Input: A, B

+ Output: BCNN(A,B)

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

a) Lựa chọn thuật toán

- Một bài toán có nhiều cách giải, do đó người ta lựa chọn thuật toán phù hợp nhất dựa trên các tiêu chí:

+ Thời gian thực hiện ngắn;

+ Sử dụng ít ô nhớ;

+ Thuật toán dễ hiểu, ít phức tạp;

+ Tốn ít tài nguyên nhất có thể.

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).

•Ý 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).

•Thuật toán

- 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.

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

Sau đây là hai ví dụ mô phỏng các bước thực hiện thuật toán trên:

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

- Viết chương trình là việc tổng hợp giữa việc 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.

Ngôn ngữ lập trình + Thuật toán = Chương trình

- Khi viết chương trình ta 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ì phải tuân theo ngôn ngữ đó.

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

4. Hiệu chỉnh

- Khái niệm: là việc thử chương trình với 1 số bộ Input tương ứng với Output đã biết trước, từ đó ta xác định được các lỗi của chương trình.

- Mỗi bộ Input – Output được gọi là các Test.

5. Viết tài liệu

- Tài liệu dùng để:

+ mô tả bài toán, thuật toán;

+ thiết kế chương trình;

+ kết quả thử nghiệm;

+ 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 trình và cho việc đề xuất những khả năng hoàn thiện thêm.

- Các bước 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ả.

Bài tập liên quan:

Câu 1: Hãy nêu tiêu chuẩn lựa chọn thuật toán.

Lời giải chi tiết

Một bài toán có thể được biểu diễn bởi nhiều thuật toán, việc chọn lựa thuật toán thích hợp sẽ giúp cho quá trình viết chương trình đơn giản hơn và máy tính thực hiện với thời gian nhanh hơn. Vì vậy, có ba tiêu chuẩn cơ bản lựa chọn thuật toán đó là:

- Thuật toán có độ phức tạp thời gian nhỏ nhất (thực hiện chương trình trong thời gian ngắn nhất);

- Số lượng ô nhớ sử dụng ít nhất;

- Viết chương trình cho thuật toán dễ hiểu, đơn giản nhất.

Câu 2:

Hãy nêu nội dung và mục đích của bước hiệu chỉnh khi giải bài toán trên máy tính.

Lời giải chi tiết

•Nội dung của bước hiệu chỉnh

- Chạy thử chương trình với các bộ test tiêu biểu phụ thuộc vào đặc thù của bài toán để phát hiện các lỗi cú pháp, lỗi cấu trúc...

- Nếu phát hiện chương trình sai, sửa chương trình rồi chạy thử lại, quá trình tiếp tục cho đến khi không phát hiện lỗi nào nữa.

•Mục đích của bước hiệu chỉnh

Khi chương trình hoàn thành, vẫn có thể có nhiều lỗi chính tả, lỗi sai cú pháp ngôn ngữ lập trình, lỗi mô tả thuật giải... Nhờ có bước hiệu chỉnh ta có thể sưa lại chương trình đúng với yêu cầu của bài toán.

Câu 3:
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 test tiêu biểu.

Lời giải chi tiết

Thuật toán giải phương trình ax + b = 0

- Bằng liệt kê tuần tự

+ Bước 1: Nhập hai số thực a, b

+ Bước 2. Nếu a = 0

  • Bước 2.1. Nếu b ≠0 thì thông báo phương trình vô định, rồi kết thúc;
  • Bước 2.2. Nếu b = 0 thì gán x

+ Bước 3: x

+ Bước 4. Đưa ra nghiệm x, rồi kết thúc.

- Sơ đồ khối:

Đề xuất các test tiêu chuẩn

Để xét tất cả các trường hợp có thể xảy ra, ta sử dụng ba bộ test như sau:

i) a = 0, b = 1 (kiểm tra trường hợp phương trình vô định);

ii) a = 0,b = 0 (kiểm tra trường hợp nghiệm x=0);

iii) a = 3, b = 6 (kiểm tra trường hợp nghiêm , y = -b/a).

Video liên quan

Chủ đề