זוהי מורכבות הפקודות שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
מורכבות - מדידת מורכבות של מקור C
תַקצִיר
מורכבות [-דגלים] [-דֶגֶל [ערך]] [--אפשרות-שם[[=| ]ערך]] [ ... ]
ניתן לציין את האופרנדים שעליהם תוכנית זו פועלת בשורת הפקודה או
קריאה מקלט סטנדרטי, אחד בכל שורה. בקלט זה, רווח לבן מוביל וסוגר
מושמט, שורות ריקות מתעלמות. קלט סטנדרטי לא בהכרח טרמינל.
חשב את מורכבות קוד המקור לא רק באמצעות ספירת נתיבים דרך הקוד, אלא
גם הגברת ספירת שורות על ידי קינון ברמת הלוגיקה.
חשב את מורכבות הקוד על ידי ספירת שורות של קוד מקור שאינו כותב תגובות והכפלה ב-
גורם משקל לוגי מקונן. כברירת מחדל, 1.9.
תיאור
המשקל של כל משפט הוא מספר השורות בהן משתמש המשפט. ערך זה הוא
כפול שקלול הלוגיקה המקוננת (1.9 כברירת מחדל) עבור כל שכבת לוגיקה. עבור
לדוגמה, קטע זה:
אם (פו) {
אם (סרגל) {
באמבל; באז;
}
}
יקבל ציון 11. לאחר מכן קנה מידה זה מדורג לקירוב pmccabe תוצאות על ידי חלוקת ב-20
ועיגול. זה נותן ציון "1" בסוף. pmccabe ציון גבוה יותר על הליכים פשוטים ו
מורכבות מקבל ציון גבוה יותר עם לוגיקה מקוננת עמוקה יותר.
ניתן לכוונן את הניקוד על ידי התאמת ה- --עונש-קינון ו --סוּלָםגורמים -ינג.
ערכי ברירת המחדל כוילו על ידי השוואת התוצאות הממוצעות של מיליוני שורות
של קוד עם תוצאות של pmccabe.
למטרות תוכנית זו, פרוצדורה מזוהה על ידי שם ואחריה
ביטוי בסוגריים ולאחר מכן סוגר מתולתל פותח. זה מסתיים בסוגר מתולתל סוגר
סוגריים בעמודה 1.
תוכנית זו תבצע את תפקידה עבור כל קובץ ששמו מופיע בשורת הפקודה או כל
קובץ ששמו נמצא ברשימה שנקראה מ-stdin. הארגומנטים או שמות הקלט חייבים להיות קיימים מראש
קבצים. רשימת הקלט עשויה להכיל הערות, שהן שורות ריקות או שורות המתחילות ב-
תו '#'.
אפשרויות
-t מינימום, --מפתן=מינימום
סף דיווח. אפשרות זו מקבלת מספר שלם כארגומנט שלה.
ברירת מחדל מינימום עבור אפשרות זו היא:
30
התעלם מכל פרוצדורות עם מדד מורכבות מתחת לסף זה. כברירת מחדל,
ציון מורכבות מתחת ל-30 לא מודפס. עם זאת, אם היסטוגרמה ו
יש להדפיס סטטיסטיקות, אך לא ציוני הליכים בודדים, אז ברירת המחדל
מוגדר לאפס. פרוצדורות מתחת למגבלה זו אינן נספרות בסטטיסטיקה.
--סף-נורא=מינימום
סף יציאה אפס. אפשרות זו מקבלת מספר שלם כארגומנט שלה.
ברירת מחדל מינימום עבור אפשרות זו היא:
100
אם הליך כלשהו יקבל ציון גבוה יותר מסף זה, אז התוכנית תצא ממצב שאינו
אפס. (4/COMPLEX_EXIT_HORRID_FUNCTION, אם לא נתקלים בבעיות אחרות.) על ידי
ברירת מחדל, תוכנית זו יוצאת מאפס אלא אם כן פונקציה אחת עולה על הציון הנורא של
100.
-n גורם, --עונש-קינון=גורם
מכפיל ניקוד עבור קוד מקונן.
מבנים לשוניים שוקלים יותר ככל שהם מקוננים עמוק יותר.
ברירת מחדל, כל שכבה מענישה בגורם של 1.9. ארגומנט האופציה הוא א
מספר נקודה צפה. העונש יכול להיות 1, אך לא פחות.
--עונש-קינון-למחצה=גורם
מכפיל ניקוד עבור ביטויים מקוננים.
כברירת מחדל, ערך זה נמצא באמצע הדרך בין 1.0 לעונש הקינון.
(באופן ספציפי, השורש הריבועי של עונש הקינון). זה מתייחס ל-
ביטוי משנה בסוגריים. לדוגמה
((א > ב) ו-(ג > ד))
מכיל שני ביטויי משנה בסוגריים. זה יספור 3.5 נקודות. על ה
מצד שני, זה:
(א > ב ו-ג > ד)
מכיל שני אופרטורים של יחסים ואופרטור לוגי באותה רמה. אלה
ספירות מקוננות יוכפלו יחד ויניבו 2.5 * 2.5, או 6.25אל תעשה
זה. זה נהיה אפילו יותר גרוע אם יש לך ו-או לוגיים באותה רמה.
-s גורם, --סוּלָם=גורם
גורם קנה המידה של הסיבוכיות. אפשרות זו מקבלת מספר שלם כארגומנט שלה.
כברירת מחדל, קנה המידה הוא 20, אשר מחלק את הציון הגולמי ב-20. זה היה
מנורמל כך שיתאים בערך ל- pmccabe ציונים:
0-9 קוד קל לתחזוקה.
10-19 מתוחזק ללא מעט בעיות.
20-29 מתוחזק במאמץ מסוים.
30-39 קשה לתחזק קוד.
40-49 קשה לתחזק קוד.
50-99 קוד שלא ניתן לתחזוקה.
100-199 מטורף לבנות קוד קשה.
200 + הלוואי והייתי צוחק.
ניקוד | ln-ct | nc-lns| שם קובץ (שורה): שם-פרודקשן
4707 3815 2838 lib/vasnprintf.c(1747): VASNDREPTF
-h, --היסטוגרמה, --ללא היסטוגרמה
הצגת היסטוגרמה של מספרי סיבוכיות. ללא היסטוגרמה הטופס ישבית את
אפשרות. ייתכן שאפשרות זו אינה מוגדרת מראש עם משתני סביבה או ב
קבצי אתחול (rc).
במקום להדפיס את הניקוד של כל פונקציה, מודפס סיכום בסוף.
מראה לכמה פונקציות היו טווחי ציונים מסוימים. אלא אם כן --ציונים is
אם נקרא במפורש, הניקוד לא יודפס אם אפשרות זו צוינה.
סף הניקוד המינימלי יופחת גם הוא לאפס (0), אלא אם כן --מפתן is
נָקוּב.
-c, --ציונים, --ללא ציונים
הצג את הציון עבור כל הליך. ללא ציונים טופס ישבית את האפשרות.
ייתכן שהאפשרות הזו לא תהיה מוגדרת מראש עם משתני סביבה או באתחול (rc)
קבצים.
אם אתה מציין --היסטוגרמה, ציונים אישיים לא יוצגו, אלא אם כן זה
אפשרות זו מוגדרת.
-I מחרוזת, --להתעלם=מחרוזת
שם הפרוצדורה שיש להתעלם ממנו. אפשרות זו עשויה להופיע מספר בלתי מוגבל של פעמים.
בחלק מהקודים יש פקודות מאקרו מוגדרות שמבלבלות את הניתוח הלקסיקלי. זה יגרום
להתעלם מהן. דרכים נוספות לגרום להתעלמות מפונקציות הן:
השתמש בתחביר K&R עבור כותרת פרוצדורה.
השתמש במאקרו של עיבוד מקדים כדי להרכיב את כותרת הפרוצדורה.
פשט את הקוד שלך.
באופן כללי, כל דבר שתעשה שמשנה את התחביר הרגיל של C יבלבל את
ניתוח לקסיקלי. אם לא נראה פרוצדורה, היא לא תיספר. אם
קוד בתוך פרוצדורה אינו מובן, סביר להניח שתקבלו קוד לא הולם
תוצאות.
-H, --ללא כותרת
אל תדפיס כותרת ניקוד. ייתכן שאפשרות זו אינה מוגדרת מראש עם הסביבה
משתנים או בקבצי אתחול (rc).
אם סקריפט עומד לעבד את פלט הניקוד, הניתוח קל יותר ללא
כותרת. פלט ההיסטוגרמה תמיד יכלול כותרת.
-u unifdef-opt, --יוניפדף=unifdef-opt
העבר את המקור/ים דרך unifdef(1BSD). אפשרות זו עשויה להיראות בלתי מוגבלת
מספר פעמים.
הסירו קטעי קוד המוקפים על ידי #if/#endif הנחיות. האפשרות
ארגומנט מועבר כארגומנט אל ה- unifdef(1BSD) תכנית. לדוגמה:
מורכבות סמל -u-D
יגרום ל סמל להיות מוגדר ולהסיר קטעי קוד שקדמו להם #ifndef
סמל הוראות.
אנא ראה את unifdef תיעוד למידע נוסף.
--unif-exe=פרוג
ציין את תוכנית unifdef.
תוכנית חלופית לשימוש עבור unifdef-ing של הקלט.
-i שם קובץ, --קֶלֶט=שם קובץ
קובץ של רשימת קבצים.
במקום רשימת קבצי קלט משורת הפקודה או קריאתם מקובץ רגיל
קלט, קרא את רשימת הקבצים מקובץ זה.
--זֵכֶר=שם קובץ
קובץ פלט של מעקב.
הדפס ציוני ביניים לקובץ מעקב.
-?, - עזרה
הצג מידע שימוש וצא.
-!, --עוד עזרה
העבר את מידע השימוש המורחב דרך ביפר.
-> [cfgfile], --אפשרויות שמירה [=cfgfile]
שמור את מצב האפשרות ל cfgfile. ברירת המחדל היא ה אחרון קובץ תצורה
המפורטים ב אוֹפְּצִיָה פריז סעיף, להלן. הפקודה תצא לאחר העדכון
קובץ התצורה.
-< cfgfile, --טעינה-אופציות=cfgfile, --אופציות ללא עומס
טעינת אפשרויות מ cfgfile. ה אופציות ללא עומס טופס ישבית את הטעינה של
קובצי config/rc/ini קודמים. --אופציות ללא עומס מטופל מוקדם, לא תקין.
-v [{v|c|n --גִרְסָה [{v|c|n}]}]
גרסת פלט של התוכנית ויציאה. מצב ברירת המחדל הוא 'v', גרסה פשוטה.
מצב 'c' ידפיס מידע על זכויות יוצרים ו-'n' ידפיס את מלוא זכויות היוצרים
הודעה.
אוֹפְּצִיָה פריז
כל אפשרות שאינה מסומנת כ לֹא ניתן להגדרה מראש ניתן להגדיר מראש על ידי טעינת ערכים מ
קבצי תצורה ("RC" או ".INI") וערכים ממשתני סביבה בשם:
מוּרכָּבוּת_ or מוּרכָּבוּת
הקביעות הקבועות מראש סביבתיות עדיפות (מעובדות מאוחר יותר) מהתצורה
קבצים. ה homerc הקבצים הם "$@/complex.conf""$ HOME""$PROJECT_ROOT/complex.conf", ו
".". אם אחת מאלה היא ספריות, אז הקובץ .complexityrc מחפשים אותו בתוך
הספריות האלה.
הסביבה
לִרְאוֹת אוֹפְּצִיָה פריז עבור משתני סביבת תצורה.
שימוש במורכבות מקוונת באמצעות שירותי onworks.net