מערכת הגשת תרגילים: הוראות למתרגל

הקובץ targil_name.io – ארגומנטים

אם רוצים לתת לתוכנית הנבדקת ארגומנטים בשורת הפקודה, יש להוסיף אותם עבור כל מקרה בדיקה בהמשך לשורת END_INPUT.

בדוגמא הבאה ישנם שני מקרי בדיקה שבהם נוספו ארגומנטים לשורת הפקודה. במקרה הראשון נוספו שני הארגומנטים  “arg 20” ובמקרה השני נוסף הארגומנט “myfile” (הארגומנט יכול לשמש כשם של קובץ שעל התוכנית לפתוח). במקרה השני הקלט ריק ולכן END_INPUT מופיע מיד אחרי END_OUTPUT.

 input1
 input2
 END_INPUT arg 20
 output1
 output2
 END_OUTPUT 50
 END_INPUT myfile
 output3
 output4
 END_OUTPUT 50

הקובץ targil_name.io – השוואת שורות

בדרך כלל תכנית הבדיקה תשווה את פלט התכנית הנבדקת לפלט הנכון של המתרגל, אם נמצאו שווים אזי הנקודות שנקבעו עבור מקרה הבדיקה יתווספו לציון התרגיל. לפני בדיקת השוויון, תכנית הבדיקה מחליפה בשני הפלטים רצף של רווחים וטאבים ברווח אחד.

ישנה אפשרות לתת ניקוד לא לפי השוואה בינרית, אלא לפי מספר השורות השונות בין שני הפלטים. אם אחרי END_OUTPUT יופיעו כמה מספרים מופרדים ברווחים, תכנית הבדיקה תתיחס למספרים כאל מערך שמצין את הניקוד שיש לתת עבור n שורות לא שוות. לדוגמא:

END_OUTPUT 20 15 10

המספר 20 מציין את הניקוד שיש לתת עבור 0 שורות שונות, כלומר עבור פלט ללא שגיאות. המספר 15 הוא הניקוד עבור שורה אחת שונה והמספר 10 עבור שתי שורות שונות. אם מספר השורות השונות גדול מכך, לא ינתן ניקוד.

השוואת השורות מתבצעת לפי אלגוריתם diff, כל שורה שנוספה נגרעה או שונתה נחשבת לשגיאה. אם m שורות שונו ל- n שורות, מספר השורות השגויות הוא max(m,n)‎. שורה שזזה ממקומה נחשבת לשגיאה אחת

הוספת קבצי מתרגל בזמן קומפילציה

אם רוצים להוסיף לקבצים שנשלחו לבדיקה קבצים נוספים (לדוגמא main.cpp) כך שתכנית הבדיקה תקמפל אותם יחד, יש ליצור תיקיה ששמה כשם התרגיל בתוך התיקיה data:

‎~course_name/data/targil_name

ולשים את הקבצים הנוספים בתוך תיקיה זו. אם הקבצים שנשלחו לבדיקה מכילים קובץ מתוך הקבצים שבתיקיה זו, ההגשה תדחה. אם הוגדר לתרגיל alias, ניתן ליצור תיקיה ששמה כשם ה-alias עבור כל alias.

הוספת קבצי מתרגל בזמן ריצה

אם רוצים להוסיף לקבצים הנשלחים קבצי נתונים שיהיו זמינים לתכנית בזמן ריצה, יש לתת שם כלשהו של תיקיה כערך לפרמטר data_files בקובץ auto.cfg:

data_files=data_dir

בנוסף, יש ליצור תיקיה בשם זה בתוך התיקיה data:

‎~course_name/data/data_dir

ולשים את קבצי הנתונים בתוך תיקיה זו. אם הקבצים שנשלחו לבדיקה מכילים קובץ מתוך הקבצים שבתיקיה זו, ההגשה תדחה. התכנית הנבדקת יכולה לקרוא ולכתוב לקבצי הנתונים, הקבצים יועתקו מחדש עבור כל מקרה בדיקה.

קבצים זמניים

התוכנית הנבדקת יכולה ליצור קבצים זמניים בתיקיה הנוכחית.