//
you're reading...
01 - Chủ đề thuật toán

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

1. Khái niệm


Học sử dụng máy tính thực chất là học cách giao cho máy tính việc mà ta muốn nó làm. Khả năng khai thác máy tính phụ thuộc rất nhiều vào sự hiểu biết của người dùng.

Việc giải bài toán trên máy tính thường được tiến hành qua 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.

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


Như đã trình bày, mỗi bài toán được đặc tả bởi hai thành phần: Input và Output. Việc xác định bài toán chính là xác định rõ hai thành phần này và mối quan hệ giữa chúng. Các thông tin đó cần được nghiên cứu cẩn thận để có thể lựa chọn thuật toán, cách thể hiện các đại lượng đã cho, các đại lượng phát sinh trong quá trình giải bài toán và ngôn ngữ lập trình thích hợp.
Ví dụ, trong một bài toán Tin học khi đề cập đến một số nguyên 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ừ 0 đến 150, để lựa chọn cách thể hiện N bằng kiểu dữ liệu thích hợp.


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


a) Lựa chọn thuật toán
Bước lựa chọn hoặc thiết kế 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 nào đó, nhưng 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.
Khi thiết kế hoặc lựa chọn thuật toán người 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ớ,… Trong các loại tài nguyên, người ta quan tâm nhiều nhất đến thời gian vì đó là dạng tài nguyên không tái tạo được.
Ví dụ, với bài toán tìm kiếm, nếu dãy đã cho là dãy đã sắp xếp thì dễ thấy thuật toán tìm kiếm nhị phân cần ít thao tác so sánh hơn nhiều so với thuật toán tìm kiếm tuần tự. Vì thế nó cần ít thời gian thực hiện hơn.
Một tiêu chí khác được rất nhiều người quan tâm là cầ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.
Khi thiết kế hoặc 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 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.
b) Diễn tả thuật toán
Việc diễn tả một thuật toán đã được trình bày ở Đ4. Dưới đây ta xét thêm một ví dụ khác.


2.Ví dụ


Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N.
2.1.Xác định bài toán

- Input: Nhập M, N;
- Output: ƯCLN(M, N).

2.2.Ý 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(N – M, M); – Nếu M > N thì ƯCLN(M, N) = ƯCLN(N, M – N).

2.3.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 thì lấy giá trị chung này làm ƯCLN rồi chuyển đến bước 5;
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;
B­ước 5. Đưa ra kết quả ƯCLN; Kết thúc.

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

luu do tim uoc chung lon nhat


2.4. Lập trình (dùng ngôn ngữ Pascal)


begin
end.

Advertisements

About pascalteacher

Trang thông tin Toán học và Tin học

Thảo luận

Không có bình luận

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

Các tác giả

Categories

Tháng Tám 2015
H B T N S B C
« Th1   Th9 »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

NCT Computer

Flickr Photos

Thống kê

  • 209,599 lượt xem

pascalteacher.nct@gmail.com


Trang huấn luyện học sinh giỏi Tin học

%d bloggers like this: