ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

ความซับซ้อน - ออนไลน์ใน Cloud

เรียกใช้ความซับซ้อนในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือความซับซ้อนของคำสั่งที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


ความซับซ้อน - วัดความซับซ้อนของแหล่งกำเนิด C

เรื่องย่อ


ความซับซ้อน [- ธง] [-ธง [ความคุ้มค่า---ตัวเลือก-ชื่อ- -ความคุ้มค่า]] [ ... ]

ตัวถูกดำเนินการที่โปรแกรมนี้ทำงานอาจถูกระบุบนบรรทัดคำสั่งหรือ
อ่านจากอินพุตมาตรฐาน หนึ่งรายการต่อบรรทัด ในการป้อนข้อมูลนั้น พื้นที่สีขาวนำหน้าและต่อท้าย
ถูกปล้น บรรทัดว่างจะถูกละเว้น อินพุตมาตรฐานอาจไม่ใช่เทอร์มินัล

คำนวณความซับซ้อนของซอร์สโค้ดไม่เพียงแค่นับเส้นทางผ่านโค้ดเท่านั้น แต่
ยังขยายจำนวนบรรทัดด้วยการซ้อนระดับตรรกะ

คำนวณความซับซ้อนของโค้ดโดยนับบรรทัดของแหล่งที่มาที่ไม่ใช่ความคิดเห็นแล้วคูณด้วย
ปัจจัยน้ำหนักลอจิกที่ซ้อนกัน ตามค่าเริ่มต้น 1.9

DESCRIPTION


น้ำหนักของแต่ละคำสั่งคือจำนวนบรรทัดที่คำสั่งใช้ ค่านี้คือ
คูณด้วยน้ำหนักลอจิกที่ซ้อนกัน (1.9 โดยค่าเริ่มต้น) สำหรับแต่ละชั้นของตรรกะ สำหรับ
ตัวอย่าง ตัวอย่างนี้:

ถ้า (foo) {
ถ้า (บาร์) {
บัมเบิล; บาส;
}
}

จะให้คะแนน 11 ​​คะแนนนี้จะถูกปรับขนาดเป็นค่าประมาณ บ่ายโมง ผลลัพธ์หารด้วย 20
และการปัดเศษ คะแนนนี้ "1" ในตอนท้าย บ่ายโมง คะแนนที่สูงขึ้นในขั้นตอนง่าย ๆ และ
ความซับซ้อน ได้คะแนนสูงขึ้นด้วยตรรกะที่ซ้อนกันอย่างลึกซึ้งยิ่งขึ้น

การให้คะแนนสามารถปรับแต่งได้โดยการปรับ --รัง-บทลงโทษ และ --มาตราส่วน- ปัจจัยต่างๆ
ค่าเริ่มต้นถูกปรับเทียบโดยการเปรียบเทียบผลลัพธ์เฉลี่ยของเส้นนับล้าน
ของรหัสที่มีผลลัพธ์ของ บ่ายโมง.

สำหรับวัตถุประสงค์ของโปรแกรมนี้ ขั้นตอนจะถูกระบุโดยชื่อตามด้วย
นิพจน์วงเล็บและวงเล็บปีกกาเปิด มันจบลงด้วยหยิกปิด
รั้งในคอลัมน์ 1

โปรแกรมนี้จะทำหน้าที่ของมันกับทุกไฟล์ที่มีชื่ออยู่ในบรรทัดคำสั่งหรือทุก ๆ
ไฟล์ที่มีชื่ออยู่ในรายการที่อ่านจาก stdin อาร์กิวเมนต์หรือชื่ออินพุตต้องมีอยู่แล้ว
ไฟล์. รายการป้อนข้อมูลอาจมีความคิดเห็นซึ่งเป็นบรรทัดว่างหรือบรรทัดที่ขึ้นต้นด้วย
อักขระ '#'

OPTIONS


-t ขั้นต่ำ, --เกณฑ์=ขั้นต่ำ
เกณฑ์การรายงาน ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์ NS
ผิดนัด ขั้นต่ำ สำหรับตัวเลือกนี้คือ:
30

ละเว้นขั้นตอนใด ๆ ที่มีการวัดความซับซ้อนต่ำกว่าเกณฑ์นี้ โดยค่าเริ่มต้น,
ไม่พิมพ์คะแนนความซับซ้อนต่ำกว่า 30 อย่างไรก็ตาม ถ้าฮิสโตแกรมและ
ต้องพิมพ์สถิติ แต่ไม่ใช่คะแนนขั้นตอนแต่ละรายการ จากนั้นจะเป็นค่าเริ่มต้น
ถูกตั้งค่าเป็นศูนย์ กระบวนการที่ต่ำกว่าขีดจำกัดนี้จะไม่ถูกนับในสถิติ

--น่ากลัว-เกณฑ์=ขั้นต่ำ
เกณฑ์การออกศูนย์ ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์ NS
ผิดนัด ขั้นต่ำ สำหรับตัวเลือกนี้คือ:
100

หากขั้นตอนใดมีคะแนนสูงกว่าเกณฑ์นี้ โปรแกรมจะออกจากโปรแกรมที่ไม่ใช่
ศูนย์. (4/COMPLEX_EXIT_HORRID_FUNCTION, หากไม่พบปัญหาอื่นๆ) By
ค่าเริ่มต้น โปรแกรมนี้ออกจากศูนย์เว้นแต่หนึ่งฟังก์ชันจะเกินคะแนนที่น่ากลัวของ
100.

-n ปัจจัย, --รัง-บทลงโทษ=ปัจจัย
ตัวคูณคะแนนสำหรับรหัสที่ซ้อนกัน

โครงสร้างทางภาษาศาสตร์จะมีน้ำหนักมากขึ้นตามโครงสร้างที่ซ้อนกันอย่างลึกล้ำ โดย
ค่าเริ่มต้น แต่ละชั้นจะลงโทษด้วยปัจจัยที่ 1.9 อาร์กิวเมนต์ตัวเลือกคือ a
จำนวนจุดลอยตัว บทลงโทษอาจจะ 1 แต่ไม่น้อย

--demi-nesting-บทลงโทษ=ปัจจัย
ตัวคูณคะแนนสำหรับนิพจน์ที่ซ้อนกัน

โดยค่าเริ่มต้น ค่านี้อยู่ครึ่งทางระหว่าง 1.0 และค่าปรับการซ้อน
(โดยเฉพาะสแควร์รูทของการลงโทษการซ้อน) มันหมายถึง
นิพจน์ย่อยในวงเล็บ เช่น
((a > b) && (c > d))
มีนิพจน์ย่อยสองวงเล็บ นี่จะนับได้ 3.5 คะแนน บน
อีกทางหนึ่งนี้:
(a > b && c > d)
มีตัวดำเนินการความสัมพันธ์สองตัวและตัวดำเนินการเชิงตรรกะที่ระดับเดียวกัน เหล่านี้
จำนวนที่ซ้อนกันจะถูกคูณเข้าด้วยกันและให้ผลผลิต 2.5 * 2.5,หรือ 6.25. อย่าทำ
นั่น. มันจะยิ่งแย่ลงถ้าคุณมีตรรกะและหรือในระดับเดียวกัน

-s ปัจจัย, --มาตราส่วน=ปัจจัย
ปัจจัยการปรับขนาดความซับซ้อน ตัวเลือกนี้ใช้ตัวเลขจำนวนเต็มเป็นอาร์กิวเมนต์

โดยค่าเริ่มต้น มาตราส่วนคือ 20 ซึ่งหารคะแนนดิบด้วย 20 นี่คือ
ทำให้เป็นมาตรฐานเพื่อให้สอดคล้องกับ บ่ายโมง คะแนน:

0-9 รหัสบำรุงรักษาได้อย่างง่ายดาย

10-19 บำรุงรักษาด้วยปัญหาเล็กน้อย

20-29 รักษาด้วยความพยายามบางอย่าง

30-39 ยากที่จะรักษารหัส

40-49 ยากที่จะรักษารหัส

50-99 รหัสที่ไม่สามารถรักษาได้

100-199 ทำโค้ดยากอย่างบ้าคลั่ง

200 + ฉันแค่หวังว่าฉันล้อเล่น
คะแนน | ln-ct | nc-lns| ชื่อไฟล์(บรรทัด): proc-name
4707 3815 2838 ลิบ/vasnprintf.c(ค.ศ. 1747): VASNPRINTF

-h, --ฮิสโตแกรม, --ไม่มีฮิสโตแกรม
แสดงฮิสโตแกรมของตัวเลขความซับซ้อน NS ไม่มีฮิสโตแกรม แบบฟอร์มจะปิดการใช้งาน
ตัวเลือก. ตัวเลือกนี้ไม่สามารถตั้งค่าล่วงหน้าด้วยตัวแปรสภาพแวดล้อมหรือin
ไฟล์การเริ่มต้น (rc)

แทนที่จะพิมพ์คะแนนของแต่ละฟังก์ชัน จะมีการพิมพ์สรุปไว้ที่ส่วนท้าย
แสดงจำนวนฟังก์ชันที่มีช่วงคะแนนเฉพาะ เว้นแต่ --คะแนน is
เรียกเฉพาะเจาะจง คะแนนจะไม่พิมพ์ด้วยตัวเลือกนี้ที่ระบุ NS
เกณฑ์การให้คะแนนขั้นต่ำจะลดลงเป็นศูนย์ (0) เว้นแต่ --เกณฑ์ is
ระบุไว้

-c, --คะแนน, --ไม่มีคะแนน
แสดงคะแนนสำหรับแต่ละขั้นตอน NS ไม่มีคะแนน แบบฟอร์มจะปิดการใช้งานตัวเลือก
ตัวเลือกนี้ไม่สามารถตั้งค่าล่วงหน้าด้วยตัวแปรสภาพแวดล้อมหรือในการกำหนดค่าเริ่มต้น (rc)
ไฟล์

หากคุณระบุ --ฮิสโตแกรม, คะแนนส่วนบุคคลจะไม่ปรากฏ ยกเว้นกรณีนี้
มีการระบุตัวเลือก

-I เชือก, --ไม่สนใจ=เชือก
ชื่อขั้นตอนที่จะถูกละเว้น ตัวเลือกนี้อาจปรากฏขึ้นได้ไม่จำกัดจำนวนครั้ง

โค้ดบางตัวมีมาโครที่กำหนดไว้ซึ่งทำให้การวิเคราะห์คำศัพท์สับสน นี้จะทำให้
พวกเขาจะถูกละเลย วิธีอื่นๆ ในการทำให้ฟังก์ชันถูกละเว้นคือ:

ใช้ไวยากรณ์ K&R สำหรับส่วนหัวของขั้นตอน

ใช้แมโครการประมวลผลล่วงหน้าเพื่อประกอบส่วนหัวของโพรซีเดอร์

ลดความซับซ้อนของรหัสของคุณ
โดยทั่วไป สิ่งที่คุณทำซึ่งเปลี่ยนรูปแบบ C ปกติจะทำให้ .สับสน
การวิเคราะห์คำศัพท์ หากไม่เห็นขั้นตอนจะไม่ถูกนับ ถ้า
รหัสภายในขั้นตอนที่เข้าใจยาก คุณอาจจะได้รับความไม่เหมาะสม
ผล.

-H, --ไม่มีหัว
ห้ามพิมพ์หัวคะแนน ตัวเลือกนี้อาจไม่ได้ตั้งค่าไว้ล่วงหน้ากับสภาพแวดล้อม
ตัวแปรหรือในไฟล์เริ่มต้น (rc)

หากสคริปต์กำลังประมวลผลผลลัพธ์การให้คะแนน การแยกวิเคราะห์จะง่ายขึ้นโดยไม่ต้องใช้ a
หัวข้อ. เอาต์พุตฮิสโตแกรมจะมีส่วนหัวเสมอ

-u unifdef-เลือก, --ยูนิฟเดฟ=unifdef-เลือก
เรียกใช้แหล่งที่มาผ่าน ยูนิฟ(1BSD). ตัวเลือกนี้อาจปรากฏเป็นไม่จำกัด
จำนวนครั้ง.

ตัดส่วนของรหัสที่ล้อมรอบด้วย #ถ้า/#สิ้นสุด คำสั่ง ทางเลือก
อาร์กิวเมนต์จะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยัง ยูนิฟ(1บีเอสดี) โปรแกรม. ตัวอย่างเช่น:
ความซับซ้อน -u-D symbol
จะทำให้ เครื่องหมาย เพื่อกำหนดและลบส่วนของรหัสนำหน้าด้วย #ifndef
เครื่องหมาย แนวทาง

โปรดดูที่ ยูนิฟ เอกสารสำหรับข้อมูลเพิ่มเติม

--unif-exe=โปรแกรม
ระบุโปรแกรม unifdef

โปรแกรมสำรองเพื่อใช้สำหรับ unifdef-ing อินพุต

-i ชื่อไฟล์, --ป้อนข้อมูล=ชื่อไฟล์
ไฟล์รายการไฟล์.

แทนที่จะเป็นรายการบรรทัดคำสั่งของไฟล์อินพุตหรืออ่านจากไฟล์มาตรฐาน
อินพุต อ่านรายการไฟล์จากไฟล์นี้

--ติดตาม=ชื่อไฟล์
ติดตามไฟล์เอาต์พุต

พิมพ์คะแนนระดับกลางไปยังไฟล์การติดตาม

-?, --ช่วยด้วย
แสดงข้อมูลการใช้งานและออก

-!, --เพิ่มเติม-ช่วย
ส่งข้อมูลการใช้งานเพิ่มเติมผ่านเพจเจอร์

-> [cfgfile.cfgfile], --save-ตัวเลือก [=cfgfile.cfgfile]
บันทึกสถานะตัวเลือกไปที่ cfgfile.cfgfile. ค่าเริ่มต้นคือ ล่าสุด ไฟล์การกำหนดค่า
ที่ระบุไว้ใน ทางเลือกที่ ที่ตั้งไว้ล่วงหน้า ส่วนด้านล่าง คำสั่งจะออกหลังจากอัปเดต
ไฟล์ปรับแต่ง

-< cfgfile.cfgfile, --ตัวเลือกการโหลด=cfgfile.cfgfile, --no-โหลดตัวเลือก
โหลดตัวเลือกจาก cfgfile.cfgfile. ไม่มีโหลดตัวเลือก แบบฟอร์มจะปิดการโหลดของ
ไฟล์ config/rc/ini ก่อนหน้า --no-โหลดตัวเลือก ได้รับการจัดการในช่วงต้นของการสั่งซื้อ

-v [{วี|ค|น --รุ่น [{วี|ค|น-
เวอร์ชันเอาต์พุตของโปรแกรมและออก โหมดเริ่มต้นคือ `v' ซึ่งเป็นเวอร์ชันธรรมดา
โหมด `c' จะพิมพ์ข้อมูลลิขสิทธิ์ และ `n' จะพิมพ์ลิขสิทธิ์ฉบับเต็ม
แจ้งให้ทราบ

ทางเลือกที่ ที่ตั้งไว้ล่วงหน้า


ตัวเลือกใด ๆ ที่ไม่ได้ทำเครื่องหมายเป็น ไม่ ที่ตั้งไว้ล่วงหน้า อาจถูกตั้งค่าไว้ล่วงหน้าโดยการโหลดค่าจาก
ไฟล์การกำหนดค่า ("RC" หรือ ".INI") และค่าจากตัวแปรสภาพแวดล้อมที่มีชื่อ:
ซับซ้อน_ or ซับซ้อน
การตั้งค่าล่วงหน้าด้านสิ่งแวดล้อมมีความสำคัญกว่า (ประมวลผลช้ากว่า) การกำหนดค่า
ไฟล์ โฮมอาร์ค ไฟล์คือ "$@/complex.conf""$ HOME""$PROJECT_ROOT/complex.conf", และ
"." หากสิ่งเหล่านี้เป็นไดเร็กทอรีไฟล์ .complexityrc ถูกค้นหาภายใน
ไดเรกทอรีเหล่านั้น

และพวกเรา


ดู ทางเลือกที่ ที่ตั้งไว้ล่วงหน้า สำหรับตัวแปรสภาพแวดล้อมการกำหนดค่า

ใช้ความซับซ้อนทางออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    วงเล็บ
    วงเล็บ
    Brackets เป็นโอเพ่นซอร์สที่ทันสมัยและฟรี
    โปรแกรมแก้ไขข้อความที่สร้างขึ้นโดยเฉพาะสำหรับเว็บ
    การพัฒนา. เขียนใน HTML, CSS และ
    JavaScript พร้อมเครื่องมือภาพที่เน้นและ
    เตรียม...
    ดาวน์โหลดวงเล็บเหลี่ยม
  • 2
    ฟรี Pascal Compiler
    ฟรี Pascal Compiler
    คอมไพเลอร์ Pascal 32/64/16 บิตสำหรับ
    Win32/64/CE, ลินุกซ์, Mac OS X/iOS,
    Android, FreeBSD, OS/2, เกมบอย
    แอดวานซ์, Nintendo NDS และ DOS;
    ความหมายเข้ากันได้ wi ...
    ดาวน์โหลดคอมไพเลอร์ Pascal ฟรี
  • 3
    Canon EOS DIGITAL ข้อมูล
    Canon EOS DIGITAL ข้อมูล
    Canon ไม่มีจำนวนชัตเตอร์
    รวมอยู่ในข้อมูล EXIF ​​​​ของ
    ไฟล์ภาพซึ่งตรงข้ามกับ Nikon และ
    เพนแท็กซ์ ไม่มี Canon อย่างเป็นทางการ
    แอปพลิเคชัน ...
    ดาวน์โหลดข้อมูล Canon EOS DIGITAL
  • 4
    การตรวจสอบ
    การตรวจสอบ
    rEFInd เป็นทางแยกของ rEFIt boot
    ผู้จัดการ. เช่นเดียวกับ rEFIt rEFInd can
    ตรวจจับการบูต EFI ที่คุณติดตั้งโดยอัตโนมัติ
    รถตักและนำเสนอ GUI ที่สวยงาม
    เมนูตัวเลือกการบูต...
    ดาวน์โหลด rEFInd
  • 5
    ด่วนลุค GSI
    ด่วนลุค GSI
    หน้าดาวน์โหลด SourceForge นี้เป็นไป
    อนุญาตให้ผู้ใช้ดาวน์โหลดซอร์สของฉัน
    GSIs อ้างอิงจาก phhusson's great
    งาน. ฉันสร้างทั้ง Android Pie และ
    แอนดรอยด์ 1...
    ดาวน์โหลด ExpressLuke GSI
  • 6
    นักดนตรี
    นักดนตรี
    Music Caster เป็นเครื่องเล่นเพลงแบบถาด
    ที่ให้คุณส่งเพลงท้องถิ่นของคุณไปที่a
    อุปกรณ์ Google Cast ในการวิ่งครั้งแรก
    คุณจะต้องคลิกลูกศรใน .ของคุณ
    ตา...
    ดาวน์โหลด Music Caster
  • เพิ่มเติม»

คำสั่ง Linux

Ad