ABA


"שאלה פשוטה בפונקציה רקורסיבית...."
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #11725 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 11725
Ice Man 
חבר מתאריך 24.3.02
23365 הודעות
   00:48   23.01.05   
אל הפורום  
  שאלה פשוטה בפונקציה רקורסיבית....  
 
   כתוב פונקציה רקורסיבית לחיבור 2 מספרים שלמים INT1,int2

תודה רבה לעוזרים אני צריך את זה בשעה הקרובה בבקשה...


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב liran007 23.01.05 01:36 1
  מי נתן לך את התרגיל המפגר הזה? Boaz_fr 23.01.05 09:43 2
     ... g 23.01.05 13:57 3
         ידידי היקר Boaz_fr 23.01.05 14:34 4
             למה לא?.. Gold Dragon 23.01.05 18:10 5
                 סורי על ההתערבות ... אבל ... אופירוש 23.01.05 19:46 6
                     יכול להיות שאתה צודק... Gold Dragon 23.01.05 21:58 7
                         מציע לך לנסות את התרגיל שלך... Boaz_fr 23.01.05 22:23 8
                             שמע יכול להיות שאתה צודק ואם אתה אומר אני מאמין לך Gold Dragon 23.01.05 22:38 9
                                 זאת גישה מוטעית Boaz_fr 23.01.05 22:49 10
                                     סבבה תודה על ההסבר.... Gold Dragon 23.01.05 22:57 11
                                         בכיף, אחי Boaz_fr 23.01.05 23:42 12

       
liran007

   01:36   23.01.05   
אל הפורום  
  1. מכתב  
בתגובה להודעה מספר 0
 
   אני לגמרי לא בטוח, לא יצא לי לכתוב רקורסיה בC, אבל בכל מקרה זה אולי משהו כזה:

int plus(int int1, int int2)
{
if (int2 != 0)
{
return(plus(int1+1,int2-1));
}
else
{
return (int1);
}
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   09:43   23.01.05   
אל הפורום  
  2. מי נתן לך את התרגיל המפגר הזה?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
g

   13:57   23.01.05   
אל הפורום  
  3. ...  
בתגובה להודעה מספר 2
 
   בועז, אני לא חושב שזוהי דרך נאותה לענות לשאלתו של מישהו.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   14:34   23.01.05   
אל הפורום  
  4. ידידי היקר  
בתגובה להודעה מספר 3
 
   רקורסיה היא פעולה נפלאה, אפילו מדהימה.
אבל גם פעולה מאוד בזבזנית במשאבי מערכת, ומאוד מסוכנת.
ולכן השאלה הראשונה שמתכנת צריך לשאול את עצמו לפני שהוא בונה רקורסיה היא האם באמת חיבים לבצע כאן רקורסיה? אם התשובה היא לא אסור בשום פנים ואופן לבצע רקורסיה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   18:10   23.01.05   
אל הפורום  
  5. למה לא?..  
בתגובה להודעה מספר 4
 
   לא הבנתי כ"כ ממה נובעת ההתנגדות העזה שלך?..
עזוב אותך מחיבור של 1+1 אבל יש מקרים נגיד חיבור של 34534534645645+3456346456467776324 שאתה לא יכול לעשות בצורה הרגילה מן הסתם ורקורסיה היא דרך אחת לפתור בעיה מסוג זה(כמובן שלא הדרך היחידה...)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אופירוש

   19:46   23.01.05   
אל הפורום  
  6. סורי על ההתערבות ... אבל ...  
בתגובה להודעה מספר 5
 
   ערכתי לאחרונה בתאריך 23.01.05 בשעה 19:49 בברכה, אופירוש
 
הדוגמא שהבאת היא ממש טפשית ... ולא הבנתי מה ההבדל בין חיבור של 1+1 לבין החיבור של שני המספרים הארוכים האלו בהיבט של "האם להשתמש בריקורסיה או לא ..."

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

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

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

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

תוכניתן במקצועי , מבצע עבודות פרטיות , כל המעוניין לגשת בפרטי .


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   21:58   23.01.05   
אל הפורום  
  7. יכול להיות שאתה צודק...  
בתגובה להודעה מספר 6
 
   פשוט חיבור רגיל אתה יכול לעשות בצורה פשוטה וחיבור של מספרים גדולים יש לך חריגה מהגודל של המשתנה אז צריך מחרוזות וכל זה אז אפשר לבנות מזה תרגיל יותר מורכב שאפשר לעשות אותו בעזרת רקורסיה.

ברור שלא חייבים רקורסיה ואפילו עדיף בלי אבל בשביל התרגול זה דבר טוב...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   22:23   23.01.05   
אל הפורום  
  8. מציע לך לנסות את התרגיל שלך...  
בתגובה להודעה מספר 7
 
   אם תנסה לחבר שני מספרים גדולים, מעל מליארדף ואפילו קטנים יותר
ואפילו אם תקח מחשב על.
התוצאה תהיה אחת:

קריסה של המערכת שלך (במקרה הטוב, רק התוכנה תקרוס)
נסה ותהנה.

אם אתה רוצה הסבר יותר מפורט רק בקש...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   22:38   23.01.05   
אל הפורום  
  9. שמע יכול להיות שאתה צודק ואם אתה אומר אני מאמין לך  
בתגובה להודעה מספר 8
 
   אבל זאת לא הנקודה...
כל הקטע הוא תרגול של נושא הרקורסיה ולא משנה אם נותנים תרגילים שבדרכים אחרות ניתן לפתור אותם ביתר יעילות...
העיקר שהבן אדם שעושה את התרגיל מבין איך עובדת הרקורסיה וע"י כך בעתיד הוא יוכל להשתמש בה בכדי לפתור בעיות שבהן כן כדאי השימוש בה ובעיות כאלו לא חסרות....

וד"א אני זוכר שפעם מישהו רשם שבמבחני גמא הייתה שאלה לחשב !100(100 עצרת) ברקורסיה. זה גם יקרוס?..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   22:49   23.01.05   
אל הפורום  
  10. זאת גישה מוטעית  
בתגובה להודעה מספר 9
 
   בצבא אומרים
הפשרות של היום הם הנורמה של המחר.

עצרת של 100 לא אמורה להפיל מחשב נורמלי, למרות שזו שטות ממדרגה ראשונה לבצע זאת, ניתן לבצע עצרת בלולאה פשוטה, הרבה יותר מהיר, אמין ואלגנטי.

כאשר המחשב מבצע "דור נוסף ברקורסיה" הוא שומר את כל הנתונים הרלונטיים במחסנית, כל המשתנים המקומיים, כל הרגיסטרים, וכמובן את מיקומו בתוכנית (IP) נניח שכל שמירה כזאת לוקחת רק 200B (וזה יכול להיות הרבה יותר), ברירת המחדל של המחסנית היא 64K ז"א ניתן להגיע ל320 (בערך) דורות בריקורסיה, לפני שהתוכנית תקרוס, שלא לדבר על בזבוז הזמן האדיר שזה דורש.

תנסה לחבר 10,000 + 10,000 ברקורסיה ותראה מה יקרה.

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Gold Dragon

   22:57   23.01.05   
אל הפורום  
  11. סבבה תודה על ההסבר....  
בתגובה להודעה מספר 10
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Boaz_fr

   23:42   23.01.05   
אל הפורום  
  12. בכיף, אחי  
בתגובה להודעה מספר 11
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net