ABA


"ארג' ! שאלה ברקורסיה ... :|||"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #14015 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14015
IcqBoy

   05:45   28.03.07   
אל הפורום  
  ארג' ! שאלה ברקורסיה ... :|||  
 
   ערכתי לאחרונה בתאריך 28.03.07 בשעה 05:46 בברכה, IcqBoy
 
איזה עצבים עם זה !
אני רוצה ליצור הליך הדפסה שיוצר לי ארבעה x בצורה הבאה:

x x
x x

במילים אחרות - הליך שידפיס מטריצה של 2*2.
מה הקטע?
שאני רוצה שאחרי ההדפסה המקום של העכבר יהיה פה:

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


x
x

שוב פעם, הסמן של העכבר יהיה אחרי ה-X הראשון בסיום ההדפסה.


אם הבנתם עד פה, אז אני שמח
הבעייה שלא הצלחתי ...
ניסיתי משהו כזה:
הדפס2(i:integer)
אם i=1
אז הדפס שורה ריקה.
הדפס 'x'.
אחרת הדפס2(i-1).
הדפס 'x'.
=-=-=-=-=-=-=-=-=-=-=-=
למה זה לא עובד? (זה רושם לי את שני האיקסים בשורה אחת למטה).
תודה לעוזרים.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  אני מקווה שהבנתי אותך Net_Boy  28.03.07 19:30 1
     לא בידיוק ... IcqBoy 28.03.07 20:36 2
         מה שרשמתי מבצע את מה רצית Net_Boy  29.03.07 21:25 3
             כן, רק הבעייה שרציתי בלי הפקודה הזאת ... IcqBoy 29.03.07 23:06 4

       
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   19:30   28.03.07   
אל הפורום  
  1. אני מקווה שהבנתי אותך  
בתגובה להודעה מספר 0
 
  
רקורסיה להדפסת N על K איברים

(לגבי כל הקטע הגרפי זה על אחריותך)


אבל זה הולך ככה (אני אנסח בעברית מבנית כי אני לא יודע באיזה שפה אתה עובד)


הדפס איברים (K , N

1. אם N = 0 אזי סיים (return בלי כלום)
2. רד N שורות
3. הזז את הסמן לתחילת השורה
4. עבור מ i=0 ועד K
4.1 הדפס מה שאתה רוצה
5. החזר הדפס איברים ( K , N-1 )

מקווה שהבנת , קשה לרשום פה לא ניתן לעשות הזחות וכו' ...


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

   20:36   28.03.07   
אל הפורום  
  2. לא בידיוק ...  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 28.03.07 בשעה 20:37 בברכה, IcqBoy
 
אני לא סתם רוצה הליך רקורסיבי.
אני רוצה לבנות הליך שנגיד נקרא "הדפס_מטריצה" ...
עכשיו אם אני אשתמש בו בתכנית הראשית:
תכנית_ראשית
הדפס_מטריצה(M).
הדפס ' השורה הראשונה במטריצה '

אז הפלט "השורה הראשונה במטריצה" יופיע מימין לשורה הראשונה במטריצה ולא מתחת למטריצה או מימין לשורה האחרונה במטריצה.

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

בסופו של דבר השתמשתי בפסקל בפקודה gotoxy ...
אבל אני באמת לא מת על זה.

בכל מקרה תודה רבה ...
ואלגוריתם מילולי זה מצויין בשבילי אם יש לך פיתרון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Net_Boy  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 1.4.02
17151 הודעות, 1 פידבק
   21:25   29.03.07   
אל הפורום  
  3. מה שרשמתי מבצע את מה רצית  
בתגובה להודעה מספר 2
 
   ערכתי לאחרונה בתאריך 29.03.07 בשעה 21:25 בברכה, Net_Boy
 
אבל כמובן שצריך להשתמש בפקודות כמו gotoxy וכד'

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


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

   23:06   29.03.07   
אל הפורום  
  4. כן, רק הבעייה שרציתי בלי הפקודה הזאת ...  
בתגובה להודעה מספר 3
 
   הדרך שלך נכונה 100% ואכן מדפיסה מטריצה באופן רקורסיבי אבל היא מובילה אותי בסופו של דבר לסוף המטריצה, ולכן זה לא נותן לי כלום.

כנראה שנצטרך לעבוד לפי צירים,
תודה רבה.


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

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

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



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