Thuật toán đếm số dòng code trong 1 file

Mọi người cho em xin cách đếm số dòng code với ạ, không thể đếm theo số dấu " ; ", nên em đếm các lệnh có kí tự cuối là " ; " và đếm các khối lệnh, nhưng nó chỉ đúng ở một số bài, vậy nên ai có cách nào hay thì chỉ cho em với ạ. Em cảm ơn.

Đầu tiên bạn phải định nghĩa được line of code bạn muốn đếm là gì đã.
Lấy ví dụ đoạn code sau thì bạn sẽ đếm thành mấy dòng?

// Đây là comment
/*
Đây là 1 block comment
Dòng này có tính?;
*/

if (cond1) do_work();

if (cond2){
  do_work2();
}

if (cond3)
{
  do_work3();
}
2 Likes

Nếu đếm đúng thì e sẽ đếm được 5 dòng logic.

Quan trọng là phải xác định được định nghĩa kìa.
Vậy bạn đã đếm như thế nào để ra 5 dòng?

2 Likes

Theo em là các khối lệnh { } sẽ tính là một , và các câu lệnh cũng được tính là 1

  1. if (cond1) do_work()
  2. if (cond2){}
  3. do_work2()
  4. if (cond3){}
  5. do_work3()

Nếu làm như vậy, thì ít nhất bạn phải có 1 cái parser để hiểu được từng block của ngôn ngữ.

Bạn nên tham khảo cách đếm đơn giản hơn, như ở đây chẳng hạn https://github.com/AlDanial/cloc#how-it-works-

3 Likes

dạ, e cảm ơn, để e xem thử ạ.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?