Hướng dẫn thuật toán a* c++

Hướng dẫn viết sơ đồ khối thuật toán trong lập trình

Trong bài viết này Stanford sẽ hướng dẫn các bạn viết sơ đồ khối thuật toán để lập trình xử lý bài toán được dễ dàng và hiểu rõ bản chất vấn đề hơn.

Lưu đồ thuật toán (flowchart) là gì

Lưu đồ thuật toán là công cụ dùng để biểu diễn thuật toán, mô tả nhập (input), dữ liệu xuất (output) và luồng xữ lý thông qua các ký hiệu hình học. Công cụ này rất thích hợp để bạn học cách tư duy phân tích bài toán.

Để vẽ lưu đồ thuật toán, bạn cần nhớ và tuân thủ các ký hiệu sau đây:

Hướng dẫn thuật toán a* c++

Lưu đồ thuật toán được duyệt lưu đồ thuật toán theo trình tự sau:

  • Duyệt từ trên xuống.
  • Duyệt từ trái sang phải.

Để cho dễ hình dung, chúng ta sẽ tìm hiểu các bài toàn sau:

Bài 1: Cho số nguyên n. Hãy tính giá trị tuyệt đối của n.

  • Đầu vào: một số nguyên n.
  • Đầu ra: giá trị tuyệt đối của số nguyên n.

Bản chất của bài toán này là bạn cần kiểm tra số nguyên n có nhỏ hơn 0 hay không. Nếu nhỏ hơn 0 thì bạn nhân giá trị của n cho -1 để chuyển thành số nguyên dương. Còn nếu n lớn hơn 0 thì bạn không cần làm gì cả. Sau cùng thì bạn in giá trị của n ra, đó cũng chính là giá trị tuyệt đối mà bạn cần.

Hướng dẫn thuật toán a* c++

Bài 2: Giải và biện luận phương trình bậc nhất: ax + b = 0

  • Đầu vào: hai số nguyên a và b.
  • Đầu ra: nghiệm của phương trình.

Hướng dẫn thuật toán a* c++

Bài 3: Vẽ lưu đồ cho thuật toán nhập vào điểm toán, điểm lý và điểm hoá. Sau đó tính tổng điểm, điểm trung bình và hiển thị kết quả.

Phân tích: Nhập vào điểm toán, điểm lý và điểm hóa; Xử lý là tính điểm tổng và điểm trung bình cộng; Hiển thị điểm tổng và điểm trung bình cộng.

Hướng dẫn thuật toán a* c++

Bài 4: Vẽ lưu đồ cho thuật toán tính chu vi, diện tích hình tròn. Hiển thị chu vi và diện tích sau khi tính.

Phân tích: Nhập vào bán kính r; Xử lý là tính chu vi = 2*PI*r, diện tích = PI*r*r; Hiển thị chu vi và diện tích

Hướng dẫn thuật toán a* c++

Bài 5: Vẽ lưu đồ cho thuật toán tìm số lớn nhất trong 3 số a, b và c.

Phân tích: Nhập vào 3 số thực; Xử lý tìm số lớn nhất bằng cách so sánh; Hiển thị số lớn nhất

Hướng dẫn thuật toán a* c++

Công cụ vẽ lưu đồ thuật toán (flowchart)

Để vẽ lưu đồ thuật toán thì bạn có thể sử dụng bất kỳ phần mềm nào có khả năng vẽ. Hoặc đơn giản hơn là dùng Word, PowerPoint cũng được. Tuy nhiên để cho dễ dàng thì mình đề nghị 02 phần mềm sau đây:

  • Microsoft Visio: đây là phần mềm hỗ trợ vẽ kỹ thuật khá đa năng của Microsoft. Bạn có thể dùng phần mềm này để vẽ các dạng sơ đồ (bao gồm cả flowchart). Nhưng lưu ý là phần mềm này chỉ hỗ trợ bạn vẽ thôi, không hỗ trợ “chạy” thử trên sơ đồ bạn nhé.
  • Crocodile Clips ICT: đây là cũng là phần mềm hỗ trợ việc vẽ sơ đồ và nhiều cái khác nữa. Điểm hay của phần mềm này là cho phép bạn “chạy” thử từng bước trên sơ đồ. Nhờ đó mà bạn sẽ nắm được cách hoạt động của sơ đồ dễ dàng hơn. Do đó mình đề xuất sử dụng phần mềm này để xây dựng sơ đồ trong quá trình học.

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Tags: lưu đồ, sơ đồ thuật toán, cách biểu diễn lưu đồ, cách minh hoạ thuật toán

Giữ đúng lời hứa với anh em, hôm nay mình sẽ chia sẻ 1 bài cơ bản nhất về phương pháp học Thuật toán hiệu quả và tiết kiệm thời gian cho anh em coder. Về tầm quan trọng của thuật toán chắc mình không cần nói nhiều nữa. Vào vấn đề luôn nhé!

1. Hiểu

Với bất kì lĩnh vực nào, để có thể làm được công việc đó một cách trơn tru và ở mức “tốt” bạn cần phải hiểu. Với thuật toán, trước tiên ta cần hiểu thuật toán là gì? Cách giải thích ngắn gọn và dễ hiểu về vấn đề này chính là: Thuật toán là tổng hợp các bước để giải quyết (đưa ra kết quả) của một bài toán. “Hiểu” ở đây cũng có thể là hiểu bản chất của vấn đề. Chẳng hạn với bài tập kiểm tra xem năm đó có phải năm nhuận hay không thì dĩ nhiên ta cần hiểu về năm nhuận và các điều kiện để là năm nhuận. Hay bài toán tính tiền điện theo các mốc giá thì bạn cũng cần hiểu cách thức tính để có thể đưa ra kết quả cuối cùng. Mỗi vấn đề hay bài toán đều cần được hiểu một cách chính xác. Đó là điều căn bản nhất để có thể giỏi thuật toán.

Hướng dẫn thuật toán a* c++

2. Nắm vững

Muốn code thì ngoài hiểu bạn cần phải bắt tay vào để làm, bạn cần code bằng các ngôn ngữ lập trình. Bởi vậy, muốn giỏi thì bạn phải nắm vững ngôn ngữ mà mình muốn sử dụng. Mỗi ngôn ngữ lập trình có một thế mạnh riêng và nếu bạn nắm vững, bạn đã có trong tay tiền đề để có thể code “nhoay nhoáy” mà không phải mò mẫm. Bạn không thể chặt một cái cây lớn khi không nắm vững được cây rìu của mình, đúng chứ?

3. Toán

Nhiều người thường nói, code không nhất thiết cần toán. Điều này có thể đúng trong những trường hợp đặc thù. Tuy nhiên nếu bạn muốn giỏi thuật toán thì toán là thứ không thể tách rời. Toán không chỉ giúp cho mạch logic trong code của bạn tốt hơn mà trong nhiều trường hợp, toán khiến cho việc code trở nên dễ dàng. Ví dụ như để tính tổng của các số nguyên liên tiếp. Nếu không biết công thức toán học liên quan thì bạn sẽ dùng vòng lặp, cũng khá đơn giản. Nhưng nếu bạn biết công thức liên quan thì bạn chỉ cần gõ vài chữ nhanh gọn là vấn đề đã được giải quyết. Đó là chưa kể có những vấn đề bạn bắt buộc phải sử dụng tới toán. Nếu không đồng ý, bạn có thể nhìn lại “Thuật Toán” bao gồm “Thuật” và “Toán”.

4. Cấu trúc dữ liệu

Nhiều bạn sẽ thấy cực kì khó chịu với môn học này. Xin chúc mừng, bạn không giỏi được thuật toán đâu. Tin tôi đi, 100% những người làm việc với thuật toán cần phải nắm được những cấu trúc dữ liệu từ cơ bản đến phức tạp dần. Nhiều bài toán được xây dựng dựa trên những mô hình cấu trúc dữ liệu. Nếu để ý thì chắc chắn bạn sẽ thấy “Cấu trúc dữ liệu và giải thuật” thường đi kèm với nhau và giải thuật ở đây chính là thuật toán. Muốn giỏi thuật toán, bạn không thể bỏ qua phần cực kì quan trọng này.

5. Phương pháp

Thực ra nói đến phương pháp thì cũng chính là thuật toán thôi, nhưng để giỏi thuật toán nói chung thì bạn cần biết nhiều phương pháp để tiếp cận bài toán. Cùng giải một bài toán nhưng với phương pháp này bạn có thể mất tới hàng trăm dòng code nhưng với phương pháp khác thì chỉ vài dòng. Phương pháp giải hợp lý không chỉ giúp code trở nên dễ dàng hơn mà còn giúp thời gian chạy code được tối ưu hơn.

6. Code

Dĩ nhiên là muốn code giỏi thì bạn phải code nhiều, kể cả bạn có là thiên tài thì cũng không thể mở máy tính ra gõ gõ là code chạy ầm ầm được. Đó gọi là ảo tưởng. Thực hành nhiều, học tập và rút ra kinh nghiệm chính là bí quyết đơn giản nhất cho mọi lập trình viên.

Hướng dẫn thuật toán a* c++

7. Internet

Đúng rồi, tài nguyên internet là tài nguyên vô cùng khủng khiếp mà nếu bạn có thể khai thác được thì đó là một thành công lớn. Gần như bạn có thể tìm thấy mọi thứ trên internet, với thuật toán thì mọi thứ bạn cần mà không liên quan đến cá nhân thì internet đều có. À việc học Tiếng Anh tốt cũng có thể xem như cách để giỏi thuật toán, không phải vì nó cũng là ngôn ngữ mà là vì bạn cần đọc tài liệu bằng Tiếng Anh để có những kiến thức chuẩn chỉ nhất.

Trên đây là những điều căn bản nhất bạn vần nằm vững, hiểu rõ để có thể chinh phục thuật toán thành công.

Ngoài ra, để bắt đầu với Thuật toán một cách dễ dàng và thuận lợi nhất, đừng bỏ qua các khóa học hữu ích tại Codelearn: