תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
FlatMatrix המממשת את הממשק Matrix (ראו תיאור בנספח) ומייצגת מטריצה אשר ממומשת כמערך חד-מימדי של איברים מטיפוס double. מערך זה שמור כשדה matrix במחלקה. השדות rows ו-columns מייצגים את מספר השורות והעמודות של המטריצה בהתאמה.set (5 נקודות) ואת הבנאי המעתיק (5 נקודות). לנוחיותכם, מעטפת חלקית של המחלקה מופיעה סביב שתי השיטות. אין צורך להשתמש בשיטות מחלקה שאינן נתונות לכם.set מקבלת שני אינדקסים ו-, ומעדכנת את הערך בתא של המטריצה ל-value.IllegalArgumentException.otherMatrix כפרמטר, ויוצר מטריצה חדשה על ידי העתקה עמוקה:otherMatrix, ו- הם גם אינדקסים חוקיים במטריצה החדשה ותוכן התא בשתי המטריצות שווה. יש להניח שהקלט אינו null.f1 המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט את שיקוליכם. חובה לפשט את הביטוי ככל שניתן.f2 המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט את שיקוליכם. חובה לפשט את הביטוי ככל שניתן.c1_finalB.q יש תוכנית שבה קולטים שמות סטודנטים מהמשתמש ושומרים אותם במטריצה names.names. מובטח כי השם הארוך ביותר לא יהיה יותר מ תוים.main אשר קוראת לפונקציה read_names, מדפיסה את השמות, וקוראת לפונקציה free_names.main אין טעויות ואסור לשנות אותו.NULL לפני שתשתמש בו.routes בגודל המייצגת את כל המסלולים הקיימים. אם קיים מעבר ממדינה למדינה אזי routes[i][j] יהיה מחיר המעבר. אם לא קיים מעבר, routes[i][j] יהיה .| 0 | 200 | 300 | |
| 50 | 0 | 25 | |
| 150 | 0 | 0 |
| 0 | 200 | 0 | |
| 0 | 0 | 0 | |
| 0 | 100 | 0 |
routes, קוראת לפונקציה ומדפיסה למסך את המחיר.start ל- end. כולל.arr הוא מערך דו-ממדי בעל 2 עמודות ו- שורות. כל שורה מייצגת אינטרוואל המתחיל ב- arr[0][i] ומסתיים ב- arr[1][i].n אינטרוואלים, ותכתוב למערך output סדרת אינטרוואלים מחוברים. הפונקציה מחזירה את אורך הסדרה המתקבלת.arr = [ [-4, -2],
[3, 8],
[2, 4] ]
n=3
-4, -3, -2, 2, 3, 4, 5, 6, 7, 8
output בסופן ממשחק הפונקציה exam_q3. על הממשק להיות בעל מספר איברים בהתאמה.output הוצקה מראש עם מרחב קיום בו.m.m אינו קבוע בחישוב סיבוכיות.Q5 נתונה השיטה הסטטית הבאה, הפועלת על מערך דו-ממדי ממוין-יורד:find בעקבות הקריאה find(m), בהינתן לה כפרמטר המערך שלעיל?find אם נפעיל אותה עם הפרמטר שהוא המערך ? הסבירו בקצרה מה השיטה עושה ולא כיצד היא מבצעת זאת.find. התייחסו למקרי קצה.find1 שתקבל את המערך כפרמטר ותבצע בדיוק את מה שעושה השיטה find. כלומר, המשמעות של הערך המוחזר מ- find תהיה אותה משמעות של הערך המוחזר מ- find1.find?find ולשנות אותה, ולא לכתוב שיטה מחדש.mat המכיל מספרים שלמים. נסמן את מספר השורות והעמודות במערך ב- . המספרים ב- mat הם חיוביים ממש בלבד (ללא אפסים).mat המלא במספרים שלמים, חיוביים ממש בלבד, ומחזירה את ערכו של המספר המינימלי מבין המספרים המקסימלים בכל המסלולים האפשריים.B = 0 1 1 3 4 2 A = 0 1 1 2 3 4
[0][0] -> [0][1] -> [1][1][0][0] -> [1][0] -> [1][1]D = 4 5 8 2 3 12 16 7 13 1 10 14 15 11 9 6 C = 4 5 8 2 3 12 7 16 13 1 10 14 15 11 9 6
[1][3] שבו יש ואת [1][2] שבו יש (זה המערך ), המספר שיוחזר יהיה , שהוא המקסימום במסלול המסומן. שימו לב ש- הוא המקסימום גם במסלול הזה: [0][0] -> [0][1] -> [1][1] -> [1][2] -> [2][2] -> [2][3] -> [3][3]D = 4 1 9 3 25 24 23 2 21 5 13 12 15 16 22 17 11 18 19 20 10 14 8 7 6 C = 4 1 9 3 25 24 23 22 21 5 13 12 15 16 14 17 11 18 19 20 10 2 8 7 6
[0][0] -> [0][1] -> [0][2] -> [0][3] -> [1][3] -> [3][2] -> [3][3] -> [3][4] -> [4][4][0][0] -> [0][1] -> [0][2] -> [0][3] -> [1][3] -> [3][2] -> [2][2] -> [2][3] -> [2][4] -> [3][4] -> [4][4]Math.max ו- Math.min מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIn_VALUE מהמחלקה Integer.1 1 2 2 3 2 3 1 3 1 3 1 1 2 1 2 1 1 3 3 2 3 1 2 2
1 1 2 2 3 1 1 2 2 3 1 1 2 2 3 2 3 1 3 1 2 3 1 3 1 2 3 0 3 1 3 1 1 2 1 <- 3 1 0 2 1 <- 3 0 0 2 1 2 1 1 3 3 2 0 0 3 3 2 0 0 3 3 2 3 1 2 2 2 3 0 2 2 2 3 0 2 2
for, do ו־while.define.שאלות תרגול במבוא למדעי המחשב בנושא מערך דו-ממדי ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא מערך דו-ממדי.