שאלה למתרגל הבודק הרחום

מנהל: The Architect

שאלה למתרגל הבודק הרחום

הודעהעל ידי golaniu » 00:41 17/03/2009

שלום למתרגל הנ"ל..

אשמח אם תוכל לענות לי בנושא ולהשקיט את נפשי הדואבת.
בבחינה בשאלת הרקורסיה הראשונה הסתבר לי שעשיתי טעות.
הטעות היא לא טעות לוגית,אבל היא עלולה להתפרש ככזאת.
כשביצעתי את הקראיה הרוקרסיבית היא נראתה כך (לא משנה תנאי העצירה ושאר הקוד)
l// line that adds index to str
SOS(n,k--,index++,str)
//another line that removes index from string
(SOS(n,k,index++,str

הכוונה היתה כמובן :
l// line that adds index to str
SOS(n,k-1,index+1,str)
//another line that removes index from string
(SOS(n,k,index+1,str

זה נראה קצת מעורפל, אבל הכוונה שלי היא שהתבלבלתי בפירוש הסימן ++. כלומר,כשרשמתי את הקוד התכוונתי לשלוח לקריאה הרקורסיבית את האינדקסים מוגדלים באחד, אבל לא לשנות אותם ב"אינסטנס" הנוכחי של הפונקציה. אבל הסתברה לי הטעות מאוחר יותר, שהפעולה ++ שהרי היא כמו x = x+1. כלומר שינוי המשתנה באותו המיקום (לא רצוי) ובמקרה זה לשלוח אותו מעודכן מטה להמשך הרקורסיה-(רצוי)
אם משנים את הסימנים ל "משתנה" + 1. הקוד רץ כפי שהתכוונתי וגם בצורה נכונה ומדוייקת.
האם טעות שכזאת (של בלבול של מבחן אבל לא טעות לוגית מבחינת הגיון השאלה) גוררת פסילה של כל השאלה או שיש איזושהיא התחשבות?
חשוב לי לדעת בהקדם, כי אני לא מתוכנן כרגע להיות בארץ למועד ב'. אך יתכן שאאלץ לשנות תכניות.
golaniu
 
הודעות: 17
הצטרף: 21:55 04/12/2008

הודעהעל ידי The Architect » 05:09 17/03/2009

שגיאה כזאת תוריד כמה נקודות. אגב, טעויות כאלה הן בדיוק הסיבה שאנחנו לא ממליצים להשתמש ב- ++ וכד'. אל תשתמשו בתחביר שאינכם מבינים עד הסוף.
צוות מבוא למדעי המחשב (מתרגל)
The Architect
 
הודעות: 179
הצטרף: 09:25 09/08/2007


חזור אל - מבוא למדעי המחשב

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ו 2 אורחים

cron