Tin học 10 Bài 6: Giải bài toán trên máy tính

Việc giải toán trên máy tính thường được tiến qua 5 bước:

  • 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

Ví dụ 1: Tìm ước chung lớn nhất (UCLN) của hai số nguyên dương M và N

  • Input: M,N
  • Output: UCLN(M,N)

Xác định bài toán là xác định rõ hai thành phần:

  • Input
  • Output

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

Hình 1. Các bước lựa chọn thuật toán

  • Ít phức tạp
  • ít tốn thời gian thực hiện
  • Chiếm ít ô nhớ
  • Thực hiện ít phép toán, dễ hiểu…

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)
b. 1. 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 ( leftarrow) M – N rồi quay lại bước 2;
  • Bước 4: N (leftarrow) N – M rồi quay lại bước 2
b. 2. ​Thuật toán diễn tả bằng sơ đồ khối

b(10)

Hình 2. Sơ đồ khối thuật toán tìm ƯCLN

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

1(137)

2(156)

Hình 3. Mô phỏng thuật toán tìm ƯaCLN bằng số liệu cụ thể

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
  • Một chương trình đã viết xong có thể có nhiều lỗi và sẽ cho kết quả không đúng
  • Ta cần thử chương trình bằng vài bộ số Input để phát hiện lỗi và sửa chương trình. Quá trình này gọi là hiệu chỉnh (test)
  • Tài liệu phải mô tả bài toán, thuật toán, thiết kế chương trình, kết quả nghiệm 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 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ả