תבניות נפוצות במערכים דו־ממדיים
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-JavaScript של Coddy. שיעור 13 מתוך 65.
תבניות מסוימות מופיעות לעיתים קרובות בעבודה עם מערכים דו־ממדיים. זיהוי התבניות האלה יכול לעזור לך לפתור בעיות ביעילות רבה יותר. הנה כמה תבניות נפוצות:
מעבר באלכסון
גישה לאיברים שבהם אינדקס השורה שווה לאינדקס העמודה (matrix[i][i]) נותנת לך את האלכסון הראשי. באלכסון המשני, סכום אינדקסי השורה והעמודה שווה לגודל המערך פחות 1 (matrix[i][size - 1 - i]).
לדוגמה:
1 2 3
4 5 6
7 8 9עוברים לאורך האלכסון הראשי (matrix[i][i]): 1, 5, 9
עוברים לאורך האלכסון המשני (matrix[i][size - 1 - i]): 3, 5, 7
מעבר על הגבול
כדי לעבור על איברי הגבול, משאירים אינדקס אחד קבוע (0 או size - 1) בזמן שמתקדמים על פני האינדקס האחר.
כדי לגשת לגבול העליון, עוברים על העמודות כשאינדקס השורה קבוע על 0.
לדוגמה:
1 2 3 4
5 6 7 8
9 10 11 12איברי הגבול: 1, 2, 3, 4, 8, 12, 11, 10, 9, 5 (הכול חוץ מ־6 ו־7)
אתגר
קלצרו פונקציה בשם printPatterns שמקבלת כקלט מערך דו-ממדי ריבועי של מספרים שלמים (matrix) ומדפיסה את הדפוסים הבאים:
- אלכסון ראשי: הדפיסו את כל האיברים שבהם אינדקס השורה שווה לאינדקס העמודה.
- אלכסון משני: הדפיסו את כל האיברים שבהם סכום אינדקסי השורה והעמודה שווה לגודל המטריצה פחות 1.
- גבולות: הדפיסו את האיברים בגבול העליון, התחתון, השמאלי והימני של המטריצה.
הפלט אמור להיראות כך:
Main Diagonal: 1 6 11 16
Anti-Diagonal: 4 7 10 13
Top Border: 1 2 3 4
Bottom Border: 13 14 15 16
Left Border: 1 5 9 13
Right Border: 4 8 12 16נסו בעצמכם
function printPatterns(matrix) {
let mainDiagonal = []
// TODO: לממש
console.log("Main Diagonal:", mainDiagonal.join(" "));
let antiDiagonal = [];
// TODO: לממש
console.log("Anti-Diagonal:", antiDiagonal.join(" "));
let topBorder = [];
// TODO: לממש
console.log("Top Border:", topBorder.join(" "));
let bottomBorder = [];
// TODO: לממש
console.log("Bottom Border:", bottomBorder.join(" "));
let leftBorder = [];
// TODO: לממש
console.log("Left Border:", leftBorder.join(" "));
let rightBorder = [];
// TODO: לממש
console.log("Right Border:", rightBorder.join(" "));
}
// אין לכתוב דבר מחוץ לפונקציההשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
4JSON חלק 2
מעבר על JSONJSON מקונןשרשור אופציונלי ב-JSONהעתקה שטחית והעתקה עמוקהסיכום - חנות אופנייםסיכום - מערכת השמש10ניהול מערכת הפסטיבל
סקירת הפרויקטהוספת סרטים ואולמות2מערכים רב־ממדיים
יסודות המערכים הדו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום – מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים משונניםמערכים תלת־ממדיים ומעבר לכךתבניות נפוצות במערכים דו־ממדייםסיכום – כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר JavaScript אונליין