תכנות, רקורסיה, מערכים, מחרוזות, עצים בינאריים ורשימות מקושרות
FlatMatrix המממשת את הממשק Matrix (ראו תיאור בנספח) ומייצגת מטריצה אשר ממומשת כמערך חד-מימדי של איברים מטיפוס double. מערך זה שמור כשדה matrix במחלקה. השדות rows ו-columns מייצגים את מספר השורות והעמודות של המטריצה בהתאמה.set (5 נקודות) ואת הבנאי המעתיק (5 נקודות). לנוחיותכם, מעטפת חלקית של המחלקה מופיעה סביב שתי השיטות. אין צורך להשתמש בשיטות מחלקה שאינן נתונות לכם.set מקבלת שני אינדקסים ו-, ומעדכנת את הערך בתא של המטריצה ל-value.IllegalArgumentException.otherMatrix כפרמטר, ויוצר מטריצה חדשה על ידי העתקה עמוקה:otherMatrix, ו- הם גם אינדקסים חוקיים במטריצה החדשה ותוכן התא בשתי המטריצות שווה. יש להניח שהקלט אינו null.canFactorizeToTarget(int[] primes, int n) המקבלת מערך לא ריק של מספרים ראשוניים יחודיים ומספר n גדול או שווה ל-2, ומחזירה ערך true אם ניתן לייצג את n כמכפלת גורמים ראשוניים מהמערך primes (כלומר, כל הגורמים הראשוניים השונים של n נמצאים במערך primes). אחרת הפונקציה מחזירה false. כל גורם במערך יכול להופיע במכפלה מספר לא מוגבל של פעמים. המערך לא בהכרח ממויין.difference המקבלת מערך ממוין של מספרים array ומספר חיובי נוסף diff. אם קיימים שני מספרים שונים במערך שההפרש בינהם שווה ל-diff הפונקציה מחזירה ערך true, אחרת היא מחזירה ערך false.true.false.array או להגדיר (או ליצור) משתנים מורכבים (כגון מערך וכדומה).array1 = {1, 3, 6, 7, 8, 10}array2 = {8, 10, 1, 3, 6, 7}array3 = {3, 6, 7, 8, 10, 1}findMinIndex(int[] array) המקבלת מערך לא ריק וממויין בעל איברים יחודיים שעבר הזזה מעגלית ומחזירה את האינדקס של האיבר הקטן ביותר במערך.array1 הפונקציה תחזיר את הערך 0.array2 הפונקציה תחזיר את הערך 2.array3 הפונקציה תחזיר את הערך 5.longestSubSeq המקבלת מערך של מספרים array ומחזירה את אורך תת-הסדרה העולה הארוכה ביותר במערך array.array, מספר index ומספר lastElement ומחזירה את אורך תת-הסדרה העולה הארוכה ביותר ב-array החל מהאינדקס index ובה כל האיברים גדולים ממש מהאיבר lastElement.| לפני הקריאה לפונקציה | אחרי הקריאה לפונקציה | ערך החזרה | הסבר |
|---|---|---|---|
| 2 | הפרמוטציה הקטנה ביותר היא והיא שונה מהמחרוזת המקורית ב-2 מקומות (יש להחליף את התו d בתו a ואת התו a בתו d). הפרמוטציה הגדולה ביותר היא והיא שונה מהמחרוזת המקורית ב-4 מקומות (התו היחיד שנשאר במקום ולא מוחלף זה התו c) | ||
| 3 | הפרמוטציה הקטנה ביותר היא והיא שונה מהמחרוזת המקורית ב-4 מקומות (התו היחיד שנשאר במקום ולא מוחלף זה התו z). הפרמוטציה הגדולה ביותר היא והיא שונה מהמחרוזת המקורית ב-3 מקומות. | ||
| 0 | אין צורך לשנות את המחרוזת כיוון שהיא הפרמוטציה הקטנה ביותר והיא דורשת 0 שינויים. |
| התו | סידור המערך |
|---|---|
| המערך ממוין בסדר עולה | |
| המערך ממוין בסדר יורד |
compare. אסור להגדיר פונקציות עזר נוספות.| תוכן המערך | ערך החזרה | ||
|---|---|---|---|
| 1, 2, 3, 4, 5 | 3 | 2 | |
| 10, 5, 2, -1, -3 | 7 | -1 | |
| 12, 0, -2 | 0 | 1 |
compare: .f1 המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט את שיקוליכם. חובה לפשט את הביטוי ככל שניתן.f2 המוגדרת בקטע הקוד הבא, כפונקציה של . אין צורך לפרט את שיקוליכם. חובה לפשט את הביטוי ככל שניתן.c1_finalB.q יש תוכנית שבה קולטים שמות סטודנטים מהמשתמש ושומרים אותם במטריצה names.names. מובטח כי השם הארוך ביותר לא יהיה יותר מ תוים.main אשר קוראת לפונקציה read_names, מדפיסה את השמות, וקוראת לפונקציה free_names.main אין טעויות ואסור לשנות אותו.NULL לפני שתשתמש בו.| המחרוזת | המחרוזת | מחרוזת התוצאה |
|---|---|---|
| "1" | "1" | "2" |
| "998" | "2" | "1000" |
| "5" | "0" | "5" |
| "123456789012" | "1" | "123456789013" |
שאלות תרגול במבוא למדעי המחשב בנושא מערכים ממבחנים של האוניברסיטה הפתוחה, אוניברסיטת תל אביב, אוניברסיטת בר-אילן, הטכניון. השאלות ממוינות לפי רמת קושי, עם פתרונות לבדיקה עצמית - כך שניתן ללמוד מטעויות ולהבין את דרך הפתרון לפני הבחינה. ניתן לאתר שאלות חוזרות ולהריץ מבחני סימולציה ממוקדים בנושא מערכים.