מערכים משוננים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 16 מתוך 78.
השורות של מערך דו־ממדי אינן צריכות להיות באותו אורך. מערך דו־ממדי שהשורות שלו באורכים שונים נקרא מערך משונן. כאן כל שורה מכילה את הניקוד של שחקן אחד, והשחקנים שיחקו מספר שונה של סבבים:
var scores := [
[90, 85, 70],
[60],
[75, 80]
]
print(scores[0].size()) # 3
print(scores[1].size()) # 1במערך משונן, scores[0].size() אינו האורך של כל שורה. עברו בלולאה על העמודות בשורה הנוכחית באמצעות scores[r].size():
for r in range(scores.size()):
var total := 0
for c in range(scores[r].size()):
total += scores[r][c]
print("Player ", r + 1, ": ", total)Player 1: 245
Player 2: 60
Player 3: 155לולאה שמשתמשת תמיד באורך של השורה הראשונה קוראת מעבר לסוף השורות הקצרות יותר: scores[1][2] היא שגיאה, כי בשורה 1 יש רק את האינדקס 0. for value in row תמיד מתאימה לשורה שהיא עוברת עליה.
בונים מערך משונן כמו רשת, כאשר לכל שורה אורך שונה. במשולש הזה, בשורה r יש r + 1 תאים:
var triangle := []
for r in range(4):
var row := []
for c in range(r + 1):
row.append("*")
triangle.append(row)
for row in triangle:
print("".join(row))*
**
***
****שורה יכולה אפילו להיות ריקה: [[1, 2], [], [3]] הוא מערך משונן תקין עם שלוש שורות.
אתגר
קלכתבו פונקציה בשם make_triangle עם פרמטר אחד מסוג int בשם n. היא מחזירה מערך מדורג עם n שורות:
- בשורה 1 יש תא אחד, בשורה 2 יש 2 תאים, וכן הלאה, עד לשורה
n, שבה ישnתאים. - אם סופרים את השורות והעמודות החל מ־1, הערך בכל תא הוא מספר השורה כפול מספר העמודה שלו. בתא שבשורה 3, עמודה 2, נמצא
3 * 2 = 6.
לדוגמה, make_triangle(3) מחזירה:
[[1], [2, 4], [3, 6, 9]]הבדיקות קוראות בעצמן ל־make_triangle() ובודקות את המערך שהוחזר. אל תקראו לה ואל תדפיסו דבר.
נסו בעצמכם
func make_triangle(n: int):
# כתבו כאן קוד
pass
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין