עבור לתוכן

רקורסיה ב C++

Featured Replies

פורסם

אני צריך הסבר על השאלה הזאת:

נתונה ההגדרה:

struct element { char name[10]; int day, month, year; element *next; } ;

כתוב פונקציה רקורסיבית

void birthday(int day, int month, int year, element *head)

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

------------------------------------------------------------------------------------

מה זה אומר "נתונה הגדרה" זה קשור לקוד? חלק מהתכנית? מה זה?

המצביע HEAD איך אני מקדם אותו ומה מכיל המצביע הזה? ועל מה הוא עובר?

אם אפשר לכתוב קוד ולהסביר לי דברים עקריים בקוד אז ממש אודה

אני פשוט לא הייתי בשיעורים ואין לי ממי לקחת עכשיו הסברים

פורסם

ההגדרה ניתנה כדאי שתדע מה לכתוב בקוד כאשר אתה מתייחס לחוליה כלשהיא ברשימה

אם אתה לא יודע איך עובדת רשימה אני ממליץ לך לקרוא קצת בויקיפדיה או משהו

אתה פשוט רץ ברקורסיה עד שתגיע ל NULL ומדפיס תוך כדאי

פורסם
  • מחבר

 
void birthday(int day , int month, int year, element *head)
{
if(head == NULL)//if(!head)
return;
if((head->month == month) && (head->day == day))
{
cout << head->name <<" ";
cout << year - head-> year << endl;
}
birthday(day, month, year, head->next);
}

זה הפתרון

כמה שאלות עליו

הסמיון -> בשורה 5כשכתוב HEAD -> MONTH==MONTH

זה אומר ש HEAD שהוא קשור ל ELEMENT עכשיו מקבל את MONTH מתוך ELEMENT ומשווה אותו אם הערך שהכנסנו לMONTH לפונקציה?

פורסם

אני לא מבין למה פתחת את הנושא הזה - אתה מצפה שנלמד אותך ++C?

פתח ספר ותלמד בעצמך, או שתשיג סיכומי שיעור.

פורסם

ב CPP, הסימון "חץ" בא לפתור סרבול שקיים בפנייה לאיברים של מחלקה, כאשר יש לנו רק מצביע לאיבר.

לדוגמא:

class Ex{
public:
int integer;
};
int main(void)
{
Ex* dummy = new Ex();
(*dummy).integer = 3;
dummy->integer = 3;
return 0;
}

שורות 8 ו-9 שקולות.

האופרטור ->, בא לפתור את הסרבול שב *().

פורסם
  • מחבר

אני לא מבין למה פתחת את הנושא הזה - אתה מצפה שנלמד אותך ++C?

פתח ספר ותלמד בעצמך, או שתשיג סיכומי שיעור.

אחי מה הבעיה?

אני שואל שאלה על קוד

לא הצלחתי להבין לבד אז אני שואל פה ממוקד...

ותודה למגיב האחרון

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים