Trang chủ > OOP - JAVA > Thuật toán và các ngôn ngữ lập trình

Thuật toán và các ngôn ngữ lập trình

Các lệnh trong chương trình cần phải nhận ra nhiệm vụ và từ đó giải quyết vấn đề. Dĩ nhiên chúng ta có thể viết một chương trình bao gồm các lệnh ngẫu nhiên, nhưng viết như thế chẳng để làm gì. Do đó, một chương trình cũng cần được cân nhắc từ góc độ khác (sau đó mới xem xét về mặt kỹ thuật, đặc trưng bằng việc thực hiện các chỉ dẫn đưa ra bởi CPU). Bởi vì các chương trình được thiết kế để giải quyết các vấn đề, nên điểm xuất phát cần được xác định rõ bằng cách tính toán vấn đề hay công việc, cách giải quyết vấn đề và các bước để đạt được mục đích. Nói cách khác –  xác định thuật toán để giải quyết vấn đề hay để thực hiện công việc.

THUẬT TOÁN là một công thức giải quyết để tìm ra đáp số đúng cho một vấn đề; một tập hợp các lệnh liên quan đến một vài đối tượng (dữ liệu) – thực hiện theo một trật tự xác định. Những lệnh này đuợc thực hiện bởi một thiết bị. Thiết bị này phản ứng lại khi nhận đuợc tín hiệu thực hiện lệnh. Thiết bị này có thể được điều hành bởi con người, máy tính hay bởi các thiết bị khác.

(trích từ: Encyklopedia PWN – Tự điển bách khoa toàn thư của Nhà xuất bản khoa học Ba Lan)

Thuật toán được thể hiện theo rất nhiều cách: trong ngôn ngữ thông thường, bằng biểu đồ hoặc trong cái gọi là giải mã, pseudocode (một loại ngôn ngữ thể hiện thuật toán, không phụ thuộc vào ngôn ngữ lập trình cụ thể).

Chúng ta hãy tưởng tượng một người muốn mua một máy vi tính và cần phải xác định cấu hình của máy để tính giá cả (bằng cách tính số tiền của từng thành phần một).
Giải pháp đơn giản nhất thực hiện công việc trên như sau:

  1. Lấy CPU từ bảng giá và ghi lại giá của nó
  2. Lấy môđun bộ nhớ RAM ra khỏi bảng giá và ghi lại giá của nó
  3. Lấy bảng mạch chủ từ bảng giá và ghi lại giá của nó
  4. Lấy card đồ hoạ từ bảng giá và ghi lại giá của nó
  5. Lấy ổ cứng ra từ bảng giá và ghi lại giá của nó
  6. Lấy CDROM hay đầu DVD ra từ bảng giá và ghi lại giá của nó.
  7. Lấy card âm thanh từ bảng giá và ghi lại giá của nó.
  8. Lấy các phụ trợ cần thiết khác từ bảng giá và ghi lại giá của nó
  9. Cộng tất cả các giá đó lại
Giải pháp này được mã hoá trong ngôn ngữ thông thường. Nếu dùng biểu đồ thị thì thuật toán này có thể được minh hoạ như hình sau:
Thuat toan - Mua may tinh

Chúng ta nhìn thấy rõ ở đây các bước trong chuỗi lệnh. Thuật toán này có một điểm xuất phát được xác định rõ ràng đảm bảo việc thực hiện và kết thúc một cách thích hợp. Thuật toán này có thể thực hiện nhiều lần với các dữ liệu đầu vào khác nhau – phụ thuộc vào các cấu hình khác nhau của phần cứng.

Thuật toán trên có thể hiểu được bởi con người. Người ta có thể sử dụng nó bằng cách dùng bút và giấy. Bây giờ thì câu hỏi được đặt ra: công việc tính toán giá cả được máy tính xử lý như thế nào?
Có thể dễ dàng đoán được, thuật toán trên được viết bằng thứ ngôn ngữ lập trình nào đó để có mã nguồn, sau đó được dịch sang ngôn ngữ máy tính có thể hiểu được đối với CPU.
Tuy nhiên ngay từ đầu chúng ta đã vấp phải một số vấn đề cơ bản: công thức “lấy…, ghi lại giá của nó” thực sự nghĩa là gì?
Bởi vì chương trình dựa trên thuật toán, được thực hiện bởi một máy tính nên lệnh của thuật toán đó cần được xác lập bằng hành động của máy tính.
Và cũng nhận thấy rằng, nhìn chung một thuật toán xử lý các dữ liệu đầu vào (cung cấp bởi người sử dụng) kết quả là để đạt được các dữ liệu đầu ra. Do đó cần làm rõ những điều sau: cung cấp những dữ liệu gì và khi nào thì cung cấp cho chương trình? Chúng sẽ được máy tính xử lý ra sao?
Có ít nhất 3 khả năng:
•    Người sử dụng cung cấp giá, chương trình tính tổng số
•    Người sử dụng cung cấp tư liệu về các phần cấu thành, chương trình tìm kiếm giá của chúng (ví dụ như tìm kiếm trên mạng internet) và tính tổng giá của chúng
•    Người sử dụng xác định tiêu chuẩn để lựa chọn phần cứng, chương trình dựa trên những tiêu chuẩn này để chọn những thiết bị cụ thẻ và tính tổng giá của chúng

Trong trường hợp đầu, thuật toán trên chỉ thay đổi chút ít, nhưng phải luôn nhớ rằng nó được tính toán nhờ hoạt động của máy tính.

  1. Chưa có phản hồi.
  1. No trackbacks yet.

Gửi phản hồ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 Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: