phức tạp - Trực tuyến trên đám mây

Đây là độ phức tạp của lệnh có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


phức tạp - Đo độ phức tạp của nguồn C

SYNOPSIS


phức tạp [-sao] [-lá cờ [giá trị]] [- tên phụ đề[[= | ]giá trị]] [ ...]

Các toán hạng mà chương trình này hoạt động có thể được chỉ định trên dòng lệnh hoặc
đọc từ đầu vào tiêu chuẩn, một trên mỗi dòng. Trong đầu vào đó, khoảng trắng đầu và cuối
bị loại bỏ, các dòng trống bị bỏ qua. Đầu vào tiêu chuẩn có thể không phải là một thiết bị đầu cuối.

Tính toán độ phức tạp của mã nguồn không chỉ với số lượng đường dẫn qua mã, mà còn
cũng khuếch đại số lượng dòng bằng lồng mức logic.

Tính toán độ phức tạp của mã bằng cách đếm các dòng của nguồn không nhận xét và nhân với
một hệ số trọng số logic lồng nhau. Theo mặc định, 1.9.

MÔ TẢ


Trọng số của mỗi câu lệnh là số dòng mà câu lệnh sử dụng. Giá trị này là
nhân với trọng số logic lồng nhau (1.9 theo mặc định) cho mỗi lớp logic. Vì
ví dụ, đoạn mã này:

nếu (foo) {
if (thanh) {
kêu vo vo; baz;
}
}

sẽ đạt điểm 11. Điểm này sau đó được chia tỷ lệ gần đúng chiềuccabe kết quả bằng cách chia cho 20
và làm tròn. Điểm này "1" ở cuối. chiềuccabe điểm cao hơn đối với các thủ tục đơn giản và
phức tạp điểm cao hơn với logic lồng ghép sâu sắc hơn.

Điểm có thể được điều chỉnh bằng cách điều chỉnh - phạt đền--tỉ lệ-ing các yếu tố.
Các giá trị mặc định đã được hiệu chỉnh bằng cách so sánh kết quả trung bình của hàng triệu dòng
mã với kết quả của chiềuccabe.

Đối với các mục đích của chương trình này, một thủ tục được xác định bằng tên, theo sau là
biểu thức có dấu ngoặc đơn và sau đó là dấu ngoặc nhọn mở. Nó kết thúc bằng một lọn xoăn đóng lại
dấu ngoặc nhọn ở cột 1.

Chương trình này sẽ thực hiện chức năng của nó đối với mọi tệp có tên trên dòng lệnh hoặc mọi
tệp có tên trong danh sách được đọc từ stdin. Các đối số hoặc tên đầu vào phải có trước
các tập tin. Danh sách đầu vào có thể chứa các nhận xét, là các dòng trống hoặc các dòng bắt đầu bằng
một nhân vật.

LỰA CHỌN


-t tối thiểu, --ngưỡng=tối thiểu
Ngưỡng báo cáo. Tùy chọn này nhận một số nguyên làm đối số của nó. Các
mặc định tối thiểu cho tùy chọn này là:
30

Bỏ qua bất kỳ quy trình nào có độ phức tạp dưới ngưỡng này. Theo mặc định,
điểm phức tạp dưới 30 sẽ không được in. Tuy nhiên, nếu một biểu đồ và
thống kê sẽ được in, nhưng không phải là điểm số thủ tục riêng lẻ, sau đó là giá trị mặc định
được đặt thành XNUMX. Các thủ tục dưới giới hạn này không được tính vào thống kê.

- ngưỡng cửa sổ=tối thiểu
ngưỡng thoát bằng không. Tùy chọn này nhận một số nguyên làm đối số của nó. Các
mặc định tối thiểu cho tùy chọn này là:
100

Nếu bất kỳ quy trình nào đạt điểm cao hơn ngưỡng này, thì chương trình sẽ thoát khỏi
số không. (4 / COMPLEX_EXIT_HORRID_FUNCTION, nếu không có vấn đề nào khác gặp phải.) bởi
mặc định, chương trình này thoát khỏi số XNUMX trừ khi một chức năng vượt quá điểm số khủng khiếp của
100.

-n yếu tố, - phạt đền=yếu tố
hệ số nhân cho mã lồng nhau.

Các cấu trúc ngôn ngữ học càng nặng khi chúng càng lồng vào nhau sâu sắc hơn. Qua
mặc định, mỗi lớp sẽ phạt theo hệ số 1.9. Đối số tùy chọn là một
số điểm nổi. Hình phạt có thể là 1, nhưng không ít hơn.

--demi-nesting-hình phạt=yếu tố
hệ số nhân cho các biểu thức lồng nhau.

Theo mặc định, giá trị này nằm giữa 1.0 và hình phạt lồng nhau
(cụ thể là căn bậc hai của hình phạt tổ). Nó đề cập đến một
biểu thức con có dấu ngoặc đơn. ví dụ
((a> b) && (c> d))
chứa hai biểu thức con được đặt trong ngoặc đơn. Điều này sẽ được tính là 3.5 điểm. Trên
mặt khác, điều này:
(a> b && c> d)
chứa hai toán tử quan hệ và một toán tử logic ở cùng một mức. Này
các số lượng lồng nhau sẽ được nhân với nhau và mang lại kết quả 2.5 * 2.5, hoặc là 6.25. Đừng làm
điều đó. Nó thậm chí còn tồi tệ hơn nếu bạn có các ands và ors logic ở cùng cấp độ.

-s yếu tố, --tỉ lệ=yếu tố
hệ số tỷ lệ phức tạp. Tùy chọn này nhận một số nguyên làm đối số của nó.

Theo mặc định, tỷ lệ là 20 chia điểm thô cho 20. Đây là
được chuẩn hóa để gần tương ứng với chiềuccabe điểm số:

0-9 Dễ dàng duy trì mã.

10-19 Bảo trì với một chút rắc rối.

20-29 Duy trì với một số nỗ lực.

30-39 Khó bảo trì mã.

40-49 Khó bảo trì mã.

50-99 Mã không thể xác nhận được.

100-199 Điên đầu tạo mã khó.

200 + Tôi chỉ ước mình đang đùa.
Điểm | ln-ct | nc-lns | file-name (dòng): proc-name
4707 3815 2838 lib /vasnprintf.c(1747): VASNPRINTF

-h, --biểu đồ, - không có biểu đồ
Hiển thị biểu đồ của các số phức tạp. Các không có biểu đồ biểu mẫu sẽ vô hiệu hóa
Lựa chọn. Tùy chọn này có thể không được đặt trước với các biến môi trường hoặc trong
các tệp khởi tạo (rc).

Thay vì in ra điểm của mỗi chức năng, một bản tóm tắt được in ở cuối
hiển thị bao nhiêu hàm có phạm vi điểm cụ thể. Trừ phi --điểm is
được gọi ra cụ thể, điểm số sẽ không in với tùy chọn này được chỉ định. Các
ngưỡng điểm tối thiểu cũng sẽ được giảm xuống không (0), trừ khi --ngưỡng is
được chỉ định.

-c, --điểm, - không có điểm số
Hiển thị điểm cho mỗi thủ tục. Các không có điểm biểu mẫu sẽ vô hiệu hóa tùy chọn.
Tùy chọn này có thể không được đặt trước với các biến môi trường hoặc trong quá trình khởi tạo (rc)
các tập tin.

Nếu bạn chỉ định --biểu đồ, điểm số riêng lẻ sẽ không được hiển thị, trừ khi điều này
tùy chọn được chỉ định.

-I chuỗi, --phớt lờ=chuỗi
tên thủ tục được bỏ qua. Tùy chọn này có thể xuất hiện không giới hạn số lần.

Một số mã có các macro được xác định làm nhầm lẫn phân tích từ vựng. Điều này sẽ gây ra
chúng sẽ được bỏ qua. Các cách khác để khiến các chức năng bị bỏ qua là:

Sử dụng cú pháp K&R cho tiêu đề thủ tục.

Sử dụng macro tiền xử lý để tập hợp tiêu đề thủ tục.

Đơn giản hóa mã của bạn.
Nói chung, bất cứ điều gì bạn làm thay đổi cú pháp C bình thường sẽ gây nhầm lẫn
Phân tích từ vựng. Nếu một thủ tục không được nhìn thấy, thì nó sẽ không được tính. Nếu như
mã trong một quy trình không thể hiểu được, bạn có thể sẽ nhận được không phù hợp
kết quả.

-H, --Không tiêu đề
không in tiêu đề ghi điểm. Tùy chọn này có thể không được đặt trước với môi trường
các biến hoặc trong các tệp khởi tạo (rc).

Nếu một tập lệnh sẽ xử lý kết quả tính điểm, việc phân tích cú pháp sẽ dễ dàng hơn mà không có
đầu trang. Đầu ra biểu đồ sẽ luôn có tiêu đề.

-u unifdef-opt, --unifdef=unifdef-opt
Chạy (các) nguồn thông qua unifdef(1BSD). Tùy chọn này có thể xuất hiện không giới hạn
số lần.

Loại bỏ các phần mã được bao quanh bởi # if / # endif các chỉ thị. Các tùy chọn
đối số được chuyển làm đối số cho unifdef(1BSD) chương trình. Ví dụ:
phức tạp -u-Biểu tượng
sẽ gây ra biểu tượng được xác định và xóa các phần mã trước #ifndef
biểu tượng chỉ thị.

Xin vui lòng xem unifdef tài liệu để biết thêm thông tin.

--unif-exe=ăn xin
Chỉ định chương trình unifdef.

Chương trình thay thế để sử dụng để bỏ xác định đầu vào.

-i tên tập tin, --đầu vào=tên tập tin
tệp danh sách tệp.

Thay vì một danh sách dòng lệnh của các tệp đầu vào hoặc đọc chúng từ tiêu chuẩn
đầu vào, đọc danh sách các tệp từ tệp này.

--dấu vết=tên tập tin
theo dõi tập tin đầu ra.

In điểm số trung gian vào một tệp theo dõi.

-?, --Cứu giúp
Hiển thị thông tin sử dụng và thoát.

-!, --giúp đỡ nhiều hơn
Chuyển thông tin sử dụng mở rộng qua máy nhắn tin.

-> [tập tin cfg], --save-opt [=tập tin cfg]
Lưu trạng thái tùy chọn vào tập tin cfg. Mặc định là cuối cùng tập tin cấu hình
được liệt kê trong TÙY CHỌN NGUYÊN NHÂN phần bên dưới. Lệnh sẽ thoát sau khi cập nhật
tệp cấu hình.

-< tập tin cfg, --tải-opt=tập tin cfg, --không tải-opt
Tải các tùy chọn từ tập tin cfg. Các không tải biểu mẫu sẽ vô hiệu hóa việc tải
các tệp cấu hình / rc / ini trước đó. --không tải-opt được xử lý sớm, không theo thứ tự.

-v [{v | c | n --phiên bản [{v | c | n}]}]
Phiên bản đầu ra của chương trình và thoát. Chế độ mặc định là `v ', một phiên bản đơn giản.
Chế độ `c 'sẽ in thông tin bản quyền và` n' sẽ in toàn bộ bản quyền
để ý.

TÙY CHỌN NGUYÊN NHÂN


Bất kỳ tùy chọn nào không được đánh dấu là không đặt trước có thể được đặt trước bằng cách tải các giá trị từ
(các) tệp cấu hình ("RC" hoặc ".INI") và các giá trị từ các biến môi trường có tên:
COMPLEXITY_ or THÀNH PHẦN
Các cài đặt trước môi trường được ưu tiên (được xử lý muộn hơn) cấu hình
các tập tin. Các gia đình tập tin là "$@/complex.conf""$ HOME""$ PROJECT_ROOT / complex.conf", và
".". Nếu bất kỳ thư mục nào trong số này là thư mục, thì tệp .complexityrc được tìm kiếm trong
các thư mục đó.

MÔI TRƯỜNG


Xem TÙY CHỌN NGUYÊN NHÂN cho các biến môi trường cấu hình.

Sử dụng sự phức tạp trực tuyến bằng cách sử dụng các dịch vụ onworks.net



Các chương trình trực tuyến Linux & Windows mới nhất