עבור לתוכן

יצירת מטריצת שיחלוף ממטריצה נתונה

Featured Replies

פורסם

שלום לכולם,

כיצד לגשת בסדר המתאים לאיברים כך שאוכל להדפיס בצורה נאה מטריצת שיחלוף?

מטריצת שיחלוף: במטריצה A האיבר ה-i,j

ובמטריצת השיחלוף אותו מיקום מצויין ע"י j,i

תודה לעוזרים :xyxthumbs:

פורסם

שלום וברוך הבא לפורום.

ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

פורסם

באיזו שפה?

פורסם
  • מחבר

אסמבלי

:s07:

פורסם

נניח שגודל כל איבר במטריצה הוא 1. אם לא (לדוגמא WORD שגודלו 2 בתים), תחליף בהודעה שלי כל 1 ב- 2.

יש 2 דרכים -

1) מעבר על הערכים האפשריים ע"י הגדלה של המצביע שלך ב- 1 כל פעם:

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

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

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

2) שימוש בפקודת mov באופן הבא:

mov eax, dword [ebx + ecx*4 + mem_location]

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

ארכיון

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

דיונים חדשים