אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך הבחינה : דף פוליו אחד לא מודפס חומר עזר : ולא מצולם. אין להשתמש במחשבון. 100 במבחן זה 5 שאלות. עליך לבחור בארבע שאלות בלבד, המאפשרות לצבור נקודות. רשמו תשובותיכם במחברת התשובות בלבד. מותר להגדיר פעולות עזר בכל השאלות, אלא אם נאמר אחרת. כתבו קוד קריא והקפידו על אינדנטציה והערות )אפשר בעברית(. ב ה צ ל ח ה!
שאלה )25 1 נק'( נתונה התכנית הבאה : public static boolean what1(int [ ] a, int k ) if( k >= 0 && k <a.length ) return what2(a,k,k+1); return false; } // what1 public static boolean what2(int [ ] b, int l, int m) if ( l == b.length-1 ) return true; if( m == b.length) return what1(b,l+1); if(b[l] == b[m]) return false; return what2(b,l,m+1); } // what2 public static void main(string[ ] args) int [ ] array = 4,3,2,3,4 }; System.out.println(what1(array,0)); System.out.println(what1(array,2)); } // main א. מהו הפלט של התכנית הנ"ל? ) 10 נק' ) ב. מה יעודה של הפעולה? what1 )15 נק' ) שאלה )25 2 נק'( א. 4( נק' ) כתוב פעולה y) public static void swap(int [ ] a, int x, int המקבלת מערך a מטיפוס int ושני אינדקסים x ו y. הפעולה מחליפה בין ערכי איברי המערך הנמצאים במקומות x ו y בהתאם.
public static int maxindexfrom(int [ ] b, int from) ב. )6 נק' ) כתוב פעולה המקבלת מערך b מטיפוס int ואינדקס from במערך ומחזירה את האינדקס של האיבר המקסימלי במערך b מהמקום ה- from )כולל(. אפשר להניח שהאינדקס from לא חורג מגודל המערך b. לדוגמא, עבור מערך arr הבאה int [ ] arr = -6, 45, 8, -2, 19, 7, 14}; System.out.println("maxIndexFrom(arr, 0): " + maxindexfrom(arr, 0)); System.out.println("maxIndexFrom(arr, 3): " + maxindexfrom(arr, 3)); נקבל פלט : maxindexfrom(arr, 0): 1 maxindexfrom(arr, 3): 4 ג.) 15 נק' ) כתוב פעולה k) public static int kelement(int [ ] c, int המקבלת מערך с מטיפוס int במערך c. ומספר שלם k ומחזירה את ערך המספר ה- k בגודלו לדוגמה, עבור מערך arr המוגדר בסעיף ב' System.out.println("The 3rd element in arr is:" + kelement(arr, 3)); System.out.println("The 5th element in arr is:" + kelement(arr, 5)); נקבל פלט : The 3rd element in arr is:14 The 5th element in arr is:7 הערה: בסעיף ג' חובה להשתמש בפעולה swap של סעיף א' וגם בפעלה maxindexfrom של סעיף ב' )אפילו אם לא כתבתם(.
שאלה )25 3 נק'( נתונה התכנית הבאה : public static int what31(int arr[ ], int start, int end) int i,j; for (i = start, j = end; i<j; i++, j--) if (arr[i]!= arr[j]) return 0; return 1; } // what31 public static void what32(int arr[ ], int N) int max = 1, indx = 0; for(int i = 0; i < N - max; i++) for(int j = N - 1; j >= i + max; j--) if (what31(arr, i, j) == 1) indx = i; max = j i + 1; break; } for (int k = 0; k < max; k++) System.out.print(arr[indx+k] + " "); System.out.println(); } // what32 public static void main(string [ ] args) int arr[ ]=1,4,-3,4,3,4,3,4,3,2}; what32(arr, 10); } // main ) 10 נק' ) 5( נק' ) 10( נק' )?? א. מהו הפלט של התכנית הנ"ל? ב. מה יעודה של הפעולה what31 ג. מה יעודה של הפעולה what32
שאלה )25 4 נק'( כתוב פעולה רקורסיבית public static String remduplications(string str) כאשר, ברגע שתו אחד מופיע מספר פעמים ברצף, str המקבלת מחרוזת המחרוזת משאירה רק תו אחד מהרצף. "aaabb####aa555" str לדוגמה, אם הפעולה הנ''ל מקבלת כפרמטר מחרוזת הפעלה מחזירה מחרוזת."ab#a5" הערה : אין להשתמש בלולאות ובפעולות עזר נוספות. שאלה )25 5 נק'( לפניך מחלקה : Hotel - כתובת כל עצם במחלקה Hotel מוגדר ע"י התכונות : name שם המלון, addr המלון, rooms מערך החדרים ( פנוי/לא פוי.)false/true public class Hotel private String name; private String addr; private boolean [ ] rooms; } // Hotel other במחלקה Hotel המקבלת כפרמטר הפנייה א. ( 10 נק' ) כתוב פעולה besthotel לעצם מטיפוס Hotel ומחזירה את שם המלון עם מספר החדרים הפנויים הקטן ביותר.
ב. )15 נק' ) כתוב פעולה public static List<Hotel> Test5( List<Hotel> lsh, int num ) המקבלת כפרמטרים את רשימת המלונות בעיר lsh ומספר התיירים בקבוצה num ומחזירה את רשימת המלונות שבהם אפשר לאכלס את התיירים ביחד. הערה 1 : אפשר להשתמש בכל הפעולות של המחלקות Node, List וגם בפעולות SET ו - GET ) בלי של המחלקה Hotel )פעולה בונה, פעולות לממש אותן. הערה 2 : אין להשתמש בפעולות עזר נוספות.