
int[][] matrix = new int[5][];. הגודל הראשון מציין כמה מערכים פנימיים יש, והסוגריים השניים נשארים ריקים.matrix[3][5] = -12.47; מכניס את הערך לשורה 3 ועמודה 5.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר כללי על מטריצה - Matrix» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו מה זה מערכים ועשינו כמה דוגמאות עם מערכים אנחנו טיפה עולים רמה ומתעסקים עם מטריצות. אז בואו נראה מה זה בעצם מטריצה.
מטריצה זה מערך של מערכים. למה אנחנו בעצם צריכים מערך שכל טאבו זה מערך ספציפי? אז המטרה זה בעצם להכיל סדרה של מערכים שכולם בעצם מכילים דאטה דומה.
לדוגמה אנחנו רוצים משכורות של 5 שנים אבל כל שנה אנחנו רוצים מערך שמחזיק את המשכורות של אותה השנה. אז יש לנו מערך בגודל 5 שכל טאבו זה בעצם מערך של שנה אחת של משכורות שיש בו כמובן 12 תאים.
סך הכל 5 כפול 12. לדוגמה, אנחנו רוצים ציונים של כל הבית ספר ולא רק סדרת ציונים של תלמיד אחד. אז כל תלמיד יהיה מערך אחד בתוך מערך של כל המערכים של התלמידים הללו.
לדוגמה, לוח מסוים של משחק שבו כל שורה בלוח מתוארת על ידי מערך אחד, ולכן המטריצה מתארת לנו את כל הלוח. איך אנחנו יוצרים מטריצה?
אז יש לנו כמובן את הסוג של המטריצה בדיוק כמו שהיה לנו סוג של מערך, אבל אנחנו רושמים פעמיים סוגריים מרובעים. מה זה בעצם? אפשר להסתכל על זה בתור דאבל עם סוגריים אחד, זה סוג של מערך, אבל אני רוצה מערך ממנו.
במקום שיהיה לי רק דאבל סוגריים אחד, יש לי דאבל סוגריים סוגריים. במקרה בדוגמה הזאת זה דאבל, אבל כמובן זה יכול להיות מכל סוג. לאחר מכן אנחנו ממציאים לו שם, במקרה הזה מטריקס, וזה כמובן יכול להיות כל שם, העיקר שהוא יהיה שם משמעותי, שווה ניו, שוב פעם את אותו טיפוס שרשמנו פה.
הסוגריים הראשונים המרובעים מכילים את הגודל של המערך של המערכים והסוגריים השניים ריקים. לאחר מכן אנחנו רצים בלולאה על המערך הראשון, המערך המרכבי של כל המערכים, זה יהיה matrix.length ופונים לכל תא במערך הראשי ומכניסים אליו, ניחשתם נכון, מערך נפרד.
אז כאן אנחנו רואים שיש לנו מערך אחד בגודל 5 שכל תא בו הוא מערך בגודל 10. סך הכל יש לנו 50 תאים אבל הם מסודרים בחמישה מערכים שכל מערך הוא עשרה תאים.
אז מה בעצם נוצר לנו בזיכרון מהדבר הזה שהגדרנו? זאת תמונת הזיכרון שתיווצר. קודם כל יש לנו פה בצד שמאל אנחנו רואים מערך בגודל חמישה תאים יש לו אינדקסים כמובן 0 עד 4 אבל כל תא הוא בעצם מתאר או זה נקרא ליתר דיוק אבל כרגע מבחינתנו הוא מתאר מערך שלם בגודל במקרה הזה זה היה גודל 10 אז המערכים הפנימיים האינדקסים שלהם זה
0 עד 9. איך אנחנו מכניסים ערך לתוך מטריצה? אז אנחנו פונים לשם האחד והיחיד שיש לנו עבור