תכנות הנדסי – 1סמסטר א' תשע"ו תרגיל –3רקורסיה תאריך פרסום – 1/12/2015 מועד הגשה 14/12/2015 מתרגל אחראי – אסי שפר שאלות בנוגע לעבודה ייענו בפורום שבאתר הקורס .נא לא לשלוח שאלות במייל. שימו לב :בעבודה זו עליכם להשתמש ברקורסיות בלבד. כל שימוש בלולאה יגרור אחריו ציון 0על אותו התרגיל שבו התבצע שימוש בלולאה (גם אם הפלט של הקוד יהיה נכון) ,אלא אם כן בגוף התרגיל נאמר לכם אחרת! אסור להשתמש במשתנים סטטיים ) )staticאו גלובליים ) .(globalכל שימוש במשתנה סטטי או גלובלי יגרור אחריו ציון 0על אותו התרגיל שבו התבצע שימוש במשתנה כזה! ניקוד :שאלה .30% - 1שאלה .40% - 2שאלה - 3 .40% בהצלחה! כללי תרגיל זה יעסוק ברקורסיות .עליכם להשתמש אך ורק בחומר שנלמד בהרצאות ובתרגולים. שימו לב להנחיות הכלליות הנוגעות לאופן הגשת העבודה המופיעות בסוף מסמך זה .יש למלא כל אחת מההנחיות במלואה. תפריט בתחילת התוכנית יוצג בפני המשתמש התפריט כמו בתכנית לדוגמה. עבור הקלט 1יופיע תפריט זה .עבור הקלט 2יורץ הקוד של שאלה .1עבור הקלט 3יורץ הקוד של שאלה .2עבור הקלט 4יורץ הקוד של שאלה ,3ועבור הקלט 5התוכנית תסיים את ריצתה .המשתמש יכול לטעות עד 3פעמים בסה"כ בכל הרצה בהזנת הבחירה ,לאחר 3פעמים המערכת תיסגר. כמו כן ,מאחר והעבודה עוסקת ברקורסיות ,גם התפריט צריך להיות כתוב בצורה רקורסיבית .כלומר, אסור להשתמש בלולאות לצורך כתיבת התפריט .במידה ותרצו ,אתם יכולים לכתוב פונקציות עזר משלכם (בלי הגבלה על הכמות שלהן) ,אבל גם בהן אסור שתהיינה לולאות. הדפסות למסך הפלט של התוכנית שלכם צריך להיות זהה לפלט שמוגדר לכם בהמשך העבודה (בכל אחת מהשאלות), ולפלט המתקבל בתוכנית לדוגמא. בכל מקרה של אי-התאמה בין הפלט שהוגדר בגוף העבודה לבין הפלט של התכנית לדוגמא ,הפלט של התכנית לדוגמא הוא הקובע מה צריך להיות הפלט של התכנית שלכם. שאלה 30( 1נקודות): עליכם לקבל קלט מספר שלם nכאשר (2 ≤ 𝑛 ≤ 9התוכנה תבקש מספר שוב ושוב עד שתקבל מספר בתחום) .עליכם ליצור יהלום של סדרות מספרים עולות ויורדות כמו בדוגמת הפלט .לדוגמה בהינתן הקלט 9הפלט הנו: כאשר הפלט של מ 2הנו: נא לשים לב כי השורה האמצעית מתחילה בדיוק בתחילת השורה בקונסולה. שאלה 40( 2נקודות): במשחק כדורגל שכונתי בשם "סטנגה" כאשר מבקיעים גול מקבלים נקודה אחת ,וכאשר פוגעים בקורה מקבלים שתי נקודות .עליכם לכתוב תכנית רקורסיבית כאשר בהינתן תוצאת המשחק (קלט מהמשתמש) יוצגו כל מהלכי ההבקעה של המשחק האפשריים. לדוגמה בהינתן התוצאה 2:2 עץ הרקורסיה צריך להפרש בצורה הבאה: התהליך הראשון שנבדק הנה קבוצה )1st team( 1 התוצאה הראשונה שנבדקת הנה במידה והקבוצה הבקיעה גול רגיל (נקודה אחת) ,ורק לאחר מכן פגיעה בקורה ( 2נק'). שאלה 40( 3נקודות): על לוח שחמט בגודל N x Nממקמים במשבצת כל שהיא פרש (הסוס משחמט) .בכל שלב הפרש יכול להגיע לאחת משמונה המשבצות (במידה וקיימות): מצא את המסלול שעובר דרך כל המשבצות בלוח ,פעם אחת בכל משבצת. לדוגמה: בלוח 8x8כאשר ממקמים את הפרש במשבצת [:]0,0 בלוח 5x5כאשר ממקימים את הפרש בנקודה []2,2 סדר הבדיקה בעץ הרקורסיה צריך להתבצע בסדר הבא: **זמן ריצה של בעיה זו הנו מעריכי יש לבדוק עם קבצי הקלט הנתונים בפרויקט. הנחיות כלליות יש לוודא לבצע בדיקת קלט. oבתפריט הראשי בלבד לאחר 3טעויות של המשתמש (לאו דווקא ברצף) ,התכנית תסתיים. oבכל התפריטים שאינם התפריט הראשי ,אם יש טעות משתמש ,המשתמש יבקש קלט שנית עד שיקליד קלט תקין. תשובות לשאלות בנושא העבודה תתפרסמנה בפורום (באתר הקורס) נא להתעדכן לעיתים קרובות. שאלות בנושא העבודה יש לשאול בפורום שבאתר הקורס בלבד .לפני שאתם שואלים שאלה בפורום הקורס ,יש לוודא כי טרם ניתנה לה תשובה לפני כן .שאלות שכבר נענו בפורום לא ייענו. הגשת העבודות תתבצענה ביחידים בלבד. אך יש להגיש קובץ זיפ ששמו הוא מספר תעודת הזהות של הסטודנט .בתוך קובץ הזיפ יופיע ורק קובץ המקור ושמו יהיה .assignment3.cשימו לב ששם הקובץ חייב להיות זהה למה שמוגדר לכם בעבודה ,אחרת מערכת ההגשות לא תקבל אותו. אין להוסיף תיקיות או קבצים נוספים בתוך קובץ הזיפ. העבודות ייבדקו בבדיקה אוטומטית ,לכן יש להקפיד שפלט התכנית שלכם יהיה זהה לפלט המתקבל בתכנית לדוגמה המצורפת באתר .שימו לב שהפלט הוגדר באופן מדויק לאורך כל המסמך ,וכמו-כן מצורפת לכם תכנית לדוגמה. העתקות תיבדקנה ולכן אנו מבקשים להימנע מכך .סטודנטים אשר ייתפסו מעתיקים יועלו לועדת משמעת. שימו לב להערות ) (warningsשהמהדר מציג .עליכם להתייחס לכל הערה ולתקנה .נא לוודא שהתכנית מתקמפלת ללא שגיאות ( )errorsוהערות ) .(warningsמותר להגיש עם אזהרות של scanfו .gets חשבו על תסריטים (קלטים) מגוונים ככל האפשר על מנת לבדוק שהתכנית שלכם עובדת בצורה תקינה. בהצלחה!
© Copyright 2024