תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
almostPalindrome(String s) המקבלת מחרוזת s שונה מ-null, ובודקת האם היא כמעט פלינדרום.Math.sqrt , Math.min , Math.max מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIN_VALUE מהמחלקה Integer.Overloading)what הבאה. השיטה מקבלת כפרמטר מערך מלא במספרים שלמים ממוינים בסדר לא יורד (כלומר, סדר עולה, אבל גם מספרים שווים אפשריים).0 1 2 3 4 5 6 7 a = -6 -4 1 2 3 4 5 8
what בעקבות הקריאה what(a)?what באופן כללי כשהיא מקבלת מערך כלשהו המלא במספרים שלמים וממוין בסדר עולה ממש? הסבירו בקצרה מה השיטה עושה ולא כיצד היא מבצעת זאת.something הבאה. גם בשיטה זו המערכים המועברים כפרמטרים מלאים במספרים שלמים והם ממוינים בסדר עולה ממש. שני המערכים ו- הם באורך .0 1 2 3 4 5 6 7 a = -6 -4 1 2 3 5 9 18 b = -4 -1 2 4 5 7 8 12
something בעקבות הקריאה something(a, b)?something באופן כללי כשהיא מקבלת שני מערכים ו- כלשהם באותו אורך, המלאים במספרים שלמים וממוינים (כל אחד בנפרד) בסדר לא יורד? הסבירו בקצרה מה השיטה עושה ולא כיצד היא מבצעת זאת.node שלהלן מממשת צומת בעץ בינרי.BinaryTree מאגדת בתוכה שיטות סטטיות לטיפול בעץ בינרי.what הבאות:root: 3
/ \
2 7
/ \ \
9 8 5
/ / \
6 1 4
\
10
.what אם נקרא לה עם הפרמטרים הבאים: השורש root לעיל והערך ?what באופן כללי כשהיא מקבלת כפרמטר שורש של עץ בינרי root ובהינתן לה מספר שלם כלשהו. שימו לב, עליכם לתת תיאור ממצה של מה עושה השיטה באופן כללי, ולא תיאור של מה עושה כל שורה בשיטה, או איך היא מבצעת זאת. כלומר, מה המשמעות של הערך המוחזר מהקריאה לשיטה what. התייחסו למקרי הקצה השונים.if (ans == 0 && root.getRightSon() != null)if (root.getRightSon() != null)Integer.MAX_VALUE. (כך גם, אם יש מסלול שמגיע למבוי סתום כי אי אפשר לעשות ממנו שום צעד חוקי, השיטה צריכה פשוט להתעלם ממנו ולא להדפיס אותו. ההדפסה צריכה להיות רק כאשר מגיעים אל היעד.)0 -- 10 -- 13 -- 9 -- 15 sum = 150 -- 10 -- 13 -- 9 -- 3 -- 15 sum = 220 -- 10 -- 7 -- 13 -- 8 -- 2 -- 15 sum = 240 -- 10 -- 7 -- 1 -- 9 -- 2 -- 15 sum = 28Math.max ו- Math.min מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIN_VALUE מהמחלקה Integer.Overloading).size) של קבוצה (set) הוא מספר האיברים שיש בה. disjoint and complementary sets) של המערך הן קבוצות שאין להן איבר משותף, והאיחוד שלהן הוא כל איברי המערך. במילים אחרות, כל איבר במערך נמצא בדיוק באחת משתי הקבוצות.a הוא:0 1 2 3 4 1 2 0 3 -1
arr. השיטה צריכה לבדוק האם ניתן לחלק את המערך לשתי קבוצות זרות ומשלימות של איברים כך שיתקיים התנאי הבא : ההפרש בין הסכומים של שתי הקבוצות יהיה בדיוק ההפרש בין הגדלים שלהן (בערך מוחלט).a, החלוקות 2, 3, 4, 7 שציינו לעיל מקיימות את התנאי שההפרש בין הסכומים של שתי הקבוצות הוא בדיוק ההפרש בין הגדלים שלהן.1 2 0 sum = 3 count = 3 3 -1 sum = 2 count = 2 2 0 3 -1 sum = 4 count = 4 1 sum = 1 count = 1
b הוא:0 1 2 3 4 1 2 0 4 -1
Overloading)count המקבלת כפרמטר מספר שלם לא שלילי sum ומחזירה את מספר הסדרות העולות ממש שסכום האיברים שלהן (של כל אחת בנפרד) שווה ל- sum.sum השיטה count תחזיר את הערך 5, שכן יש בדיוק 5 סדרות עולות ממש שסכום האיברים שלהן שווה ל-7. להלן הסדרות:a הוא:arr. השיטה צריכה לבדוק האם ניתן לחלק את המערך לשתי קבוצות זרות ומשלימות של איברים כך שיתקיים התנאי הבא: ההפרש בין הסכומים של שתי הקבוצות יהיה בדיוק ההפרש בין הגדלים שלהן (בערך מוחלט).a, החלוקות שציינו לעיל מקיימות את התנאי שההפרש בין הסכומים של שתי הקבוצות הוא בדיוק ההפרש בין הגדלים שלהן.b הוא:Overloading)mat המכיל מספרים שלמים (חיובים, שליליים ואפסים), ומספר שלם number. אנחנו מעוניינים לעבור במסלול במערך שמתחיל בתא האחרון שהוא התא (עד לתא הראשון ), כאשר אפשר לעבור מתא אך ורק שורה אחת למעלה או עמודה אחת שמאלה, כלומר לתא או לתא . בכל ביקור בתא, המספר שנמצא בתא מתווסף (בין אם המספר הוא חיובי או שלילי) למספר number. אפשר לבקר בתא רק אם המספר number הוא חיובי ממש (לפני ואחרי שהתא מתווסף למספר). שימו לב, בכל ביקור בתא - כולל בתאים הראשון והאחרון.mat המלא במספרים שלמים, ומחזירה את ערכו של המספר המינימלי שצריך להיות בהתחלה ב-number כדי להצליח לעבור מהתא האחרון לתא הראשון במערך.number צריך להיות 7. שכן, אז אפשר ללכת במסלול הזה:number יהיה 2, לאחר ביקור בתא ערכו יהיה 3, לאחר ביקור בתא ערכו יהיה 6, לאחר ביקור בתא ערכו יהיה 3 ולאחר ביקור בתא ערכו יהיה 1. כלומר, הערך של number היה חיובי לכל אורך המסלול.number תמיד יהיה חיובי.Math.max ו- Math.min מהמחלקה Math וכן בקבועים Integer.MAX_VALUE, Integer.MIN_VALUE מהמחלקה Integer.Package) הוגדרה גם המחלקה Driver הבאה:main לעיל.main במחלקה Driver:main במחלקה Driver:main במחלקה Driver:main במחלקה Driver:main במחלקה Driver:main במחלקה Driver:שאלות תרגול במבוא למדעי המחשב בנושא Overloading ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא Overloading.