Thuật toán máy tính có thể biểu diễn bằng

Trong những năm gần đây, nhu cầu tuyển dụng ngành lập trình nhiều nên rất nhiều bạn theo học ngành công nghệ thông và cũng rất nhiều bạn từ ngành khác chuyển sang. Do thời gian học ngắn hoặc thiếu tập trung trong quá trình học, các bạn gặp rất nhiều khó khăn khi đi phỏng vấn, nhất là phỏng vấn với thuật toán.

Trong chuỗi bài viết này, mình sẽ trình bày một cách rất cơ bản về thuật toán và những thuật toán thường gặp để giúp các bạn dễ hiểu, dễ áp dụng và tự tin trong quá trình tham gia phỏng vấn tìm việc cũng như tạo nền tảng cho quá trình học lập trình.

Thuật toán là gì?

Thuật toán/Thuật giải/Giải thuật/Algorithm nói chung đó là cách giải một bài toán bằng chương trình máy tính. Kỹ năng về thuật toán là nền tảng trong lập trình nên các lập trình viên phải nắm vững phần này thì mới làm việc tốt được.

Ví dụ: Để giải một phương trình bật nhất ax+b =0. Cần các bước:

Khai báo các biến a, b và x

Nhập hai tham số a và b

Kiểm tra a:

    Nếu a =0

      Kiểm tra b

         Nếu b= 0 thì in ra phương trình có vô số nghiệm

         Nếu b0 thì in ra phương trình vô nghiệm

    Nếu a0

       In ra phương trình có một nghiệm x=-b/a

Cái trên gọi là thuật toán để giải phương trình bậc nhất ax+b=0

Cách biểu diễn thuật toán

Đôi khi bạn biết cách giải nhưng lại không nắm được cách trình bày cũng là một vấn đề khác bạn phải đối mặt. Có 03 cách cơ bản để biểu diễn thuật toán:

    • – Sử dụng ngôn ngữ giả [Pseudo Code]
    • – Sử dụng sơ đồ khối [Flow Chart]
    • – Sử dụng code của một ngôn ngữ lập trình nào đó.

1. Ngôn ngữ giả [Pseudo Code]

Ngôn ngữ giả, ở đây có nghĩa là không phải ngôn ngữ lập trình, bạn có thể sử dụng ngôn ngữ tiếng Anh hoặc tiếng Việt để biểu diễn thuật toán. Ví dụ ở trên tôi sử dụng tiếng Việt để biểu diễn thuật toán giải phương trình bậc nhất ax + b =0 . Ở các bài tiếp theo chúng ta sử dụng thường xuyên ngôn ngữ giả để biểu diễn thuật toán.

2. Sơ đồ khối [Flowchart]

Sơ đồ khối sử dụng các ký hiệu để biểu diễn các khối lệnh trong thuật toán.

a. Bảng ký hiệu của sơ đồ khối

b. Khối lệnh điều khiển [if]

c. Khối lệnh điều khiển [if..else]

d. Khối lệnh lặp 

e. Ví dụ: Sử dụng sơ đồ khối để biểu diễn thuật giải để giải bài toán ax+b=0 ở trên.

3. Code

Bạn có thể sử dụng ngôn ngữ lập trình mình đã học để biểu diễn thuật toán.

Ví dụ: Sử dụng ngôn ngữ lập trình Java để biểu diễn thuật toán giải phương trình ax+b=0 ở trên.

package firstdegreeequation;

import java.util.Scanner;

public class FirstDegreeEquation {

public static void main[String[] args] {
   System.out.println["Giai phuong trinh bac nhat ax + b =0"];
   int a, b;
   double x;
   Scanner sc= new Scanner[System.in];
   System.out.print["Nhap bien so a:"];
   a= sc.nextInt[];
   System.out.print["Nhap bien so b:"];
   b= sc.nextInt[];

   if[a==0]
      if[b==0]
         System.out.println["Phuong trinh co vo so nghiem"];
      else
         System.out.println["Phuong trinh vo nghiem"];
   else{
       x=[double]-b/a;
       System.out.println["Phuong trinh co nghiem x=" + x];
   }
}

}

Việc nắm rõ cách biểu diễn thuật toán ngoài việc giúp bạn biểu diễn thuật toán bạn muốn viết ra, nó còn giúp bạn đọc, hiểu các thuật toán do người khác viết hoặc đọc các đề thi tuyển.

Cách giải quyết một bài toán liên quan đến thuật toán

Có thể tóm tắt các bước để giải một bài toán liên quan đến thuật toán như sau:

  1. – Tìm hiểu kỹ về yêu cầu
  2. – Tìm ra cách giải
  3. – Phân ra từng bước thực hiện
  4. – Biểu diễn

a. Tìm hiểu kỹ về yêu cầu

Đây làm bước đọc đề, bạn cần đọc kỹ để nắm bắt được yêu cầu và đảm bảo hiểu được yêu cầu.

b. Tìm ra cách giải

Bước này khó nhất, tùy thuật vào kỹ năng tư duy và kinh nghiệm của bạn. Phần lớn phụ thuộc nhiều và khả năng làm toán của bạn. Tuy nhiên, nếu bạn chịu khó đọc kỹ các bài toán liên quan hoặc lập trình nhiều kỹ năng này cũng tăng lên.

c. Phân ra từng bước thực hiện

Lập trình là quá trình chia nhỏ các bước thực hiện của một thuật toán đến mức có thể viết thành các lệnh trong ngôn ngữ lập trình. Nên bạn cần chia nhỏ các bước thực hiện của thuật giải ra thành từng bước nhỏ nhất có thể biểu diễn.

d. Biểu diễn

Tùy theo nhu cầu mà bạn có thể biểu diễn thuật toán theo các hình thức đã nêu ở trên.

Thuật toán và cấu trúc dữ liệu

Mỗi kiểu dữ liệu sẽ định hình trên đó các bài toán cơ bản và thuật giải trên đó. Do vậy, khi nói về thuật toán chúng ta thường phải đi kèm với cấu trúc dữ liệu. Trong các bài tiếp theo chúng ta sẽ làm quen với các thuật toán thông dụng trên các kiểu dữ liệu thường gặp như:

Trên đây là những nội dung cơ bản về thuật toán, hy vọng giúp bạn dễ dàng hơn trong việc học hoặc ôn tập về thuật toán.

Bài tiếp: Các thuật toán về số học

Comments display order: By default New comments first Old comments first

0

12 Phạm Hồng Thu   [02-06-20 1:23 PM] [Entry]

hay vailon luôn


0

11 phuong   [10-04-17 7:05 AM] [Entry]

thầy ơi cho e hỏi muốn việt thuật toán cho mô phỏng chyển động bánh xe thì viêt sao dc ạ


0

10 Nguyệt tú   [13-12-16 10:47 AM] [Entry]

chắc chết mất thui


0

9 Phạm Văn Đạt   [03-11-16 9:03 AM] [Entry]

- chuẩn bị website này die nhé ^!^


0

8 fuck   [01-11-16 9:12 AM] [Entry]

dkm


0

7 harry miêu   [23-10-15 11:16 AM] [Entry]

chắc chết quá


0

6 muadong45   [26-09-12 4:49 AM] [Entry]

thuật toán thật là khó


0

4 punky   [19-08-11 8:09 PM] [Entry]

đọc xong mà hoa mắt chóng mặt đau đầu


0

5 Angle_Bup   [19-08-11 9:06 PM] [Entry]

tương lai sẽ học mấy cái đó đó! ^^


0

1 kiepmeodoremon   [19-08-11 4:06 PM] [Entry]

Thầy cho e hỏi, 2 thuật ngữ 'đệ quy' và 'ma trận' là gì vậy thầy ?


1

2 Angle_Bup   [19-08-11 4:25 PM] [Entry]

đệ quy là cách để gọi các thuật toán gọi lại chính nó. vd: với thuật toán tính n! thì ta có thể viết bằng vòng lặp tuy nhiên ta còn có thể viết theo kiểu đệ quy như sau: nhận xét n!=n*[n-1]! nên ta có

Code

function giaithua[n:integer]:longint;   begin   if n=1 then    giaithua:=1   else   giaithua:=n*giaithua[n-1];   end;

trong hàm giaithua[n] em thấy nó sẽ gọi lại hàm giaithua[n-1]. Chúng ta sẽ được học về cái này kỹ hơn về sau.

còn Ma Trận chính là Array đó em! ^^ thường Ma Trận được dùng để gọi mảng hai chiều.


0

3 kiepmeodoremon   [19-08-11 7:52 PM] [Entry]

khẹc, sao mấy ông chuyên gia cứ thích dùng mấy từ cao siêu thầy nhỉ ?


Page 2

Hoàng Anh likes

Lương Thế Vinh High school

Page 3

Hoàng Anh likes

Lương Thế Vinh High school

Page 4

Hoàng Anh likes

Lương Thế Vinh High school

Page 5

Hoàng Anh likes

Lương Thế Vinh High school

Page 6

Hoàng Anh likes

Lương Thế Vinh High school

Page 7

Hoàng Anh likes

Lương Thế Vinh High school

Page 8

Hoàng Anh likes

Lương Thế Vinh High school

Page 9

Hoàng Anh likes

Lương Thế Vinh High school

Page 10

Hoàng Anh likes

Lương Thế Vinh High school

Page 11

Hoàng Anh likes

Lương Thế Vinh High school

Page 12

Hoàng Anh likes

Lương Thế Vinh High school

Page 13

Hoàng Anh likes

Lương Thế Vinh High school

Page 14

Hoàng Anh likes

Lương Thế Vinh High school

Page 15

Hoàng Anh likes

Lương Thế Vinh High school

Page 16

Hoàng Anh likes

Lương Thế Vinh High school

Page 17

Hoàng Anh likes

Lương Thế Vinh High school

Page 18

Hoàng Anh likes

Lương Thế Vinh High school

Page 19

Hoàng Anh likes

Lương Thế Vinh High school

Page 20

Hoàng Anh likes

Lương Thế Vinh High school

Page 21

Hoàng Anh likes

Lương Thế Vinh High school

Page 22

Hoàng Anh likes

Lương Thế Vinh High school

Page 23

Hoàng Anh likes

Lương Thế Vinh High school

Page 24

Hoàng Anh likes

Lương Thế Vinh High school

Page 25

Hoàng Anh likes

Lương Thế Vinh High school

Page 26

Hoàng Anh likes

Lương Thế Vinh High school

Video liên quan

Chủ Đề