מס' סידורי: ת.ז.: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך ה

מסמכים קשורים
אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

תרגול 1

מבוא למדעי המחשב

Tutorial 11

מבוא לתכנות ב- JAVA תרגול 7

Slide 1

Microsoft Word - c_SimA_MoedA2006.doc

מבוא למדעי המחשב

סדנת תכנות ב C/C++

Slide 1

מבוא למדעי המחשב

PowerPoint Presentation

Slide 1

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

מהוא לתכנות ב- JAVA מעבדה 3

מבוא לתכנות ב- JAVA תרגול 11

אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו

Microsoft Word B

PowerPoint Presentation

הגשה תוך שבוע בשעת התרגול

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מבוא למדעי המחשב

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

Microsoft Word - c_SimA_MoedB2005.doc

Slide 1

מבוא למדעי המחשב

PowerPoint Presentation

פייתון

PowerPoint Presentation

PowerPoint Presentation

MathType Commands 6 for Word

Slide 1

PowerPoint Presentation

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

מבוא למדעי המחשב

Microsoft PowerPoint - rec3.ppt

תרגול 3 - מערכים

תרגול 1

PowerPoint Presentation

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

PRESENTATION NAME

תרגיל בית מספר 1#

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

שאלה 2. תכנות ב - CShell

שאלהIgal : מערכים דו מימדיים רקורסיה:

PowerPoint Presentation

תרגול 1

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מבוא למדעי המחשב - חובלים

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

לנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי

עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ

תוכן העניינים

Slide 1

תוכן העניינים

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

תרגול 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl

Microsoft Word - ExamA_Final_Solution.docx

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

Slide 1

הגשה תוך שבוע בשעת התרגול

מבוא למדעי המחשב

áñéñ åîéîã (ñéåí)

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

Microsoft Word - pitaron222Java_2007.doc

תכנות מונחה עצמים א' – תש"ע

Microsoft PowerPoint - lec10.ppt

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

Slide 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

שקופית 1

1

שעור 6

ex1-bash

מבוא למדעי המחשב - חובלים

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

234114

PowerPoint Presentation

PowerPoint Presentation

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

תמליל:

מס' סידורי: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך הבחינה שלוש שעות - חלקו את זמנכם ביעילות. יש לענות על כל השאלות. בשאלות שבהן יש צורך לנמק, תשובה ללא נימוק לא תזכה באף נקודה. יש לענות על כל השאלות בגוף הבחינה במקום המיועד לכך. המקום המיועד מספיק לתשובות מלאות )ויותר(. יש לצרף את טופס המבחן למחברת הבחינה. מחברת ללא טופס עזר תפסל. תשובות במחברת הבחינה לא תיבדקנה. במידת הצורך ניתן לכתוב בגב טופס הבחינה. יש למלא מספר סידורי )מס' מחברת( ומספר ת.ז על כל דף של טופס הבחינה. ניתן להניח לאורך השאלה שכל החבילות הדרושות יובאו, ואין צורך לכתוב שורות.import במקומות בהם תתבקשו לכתוב מתודה )שירות(, ניתן לכתוב גם מתודות עזר. אסור השימוש בחומר עזר כלשהוא, כולל מחשבונים או כל מכשיר אחר פרט לעט. בסוף הבחינה צורף לנוחותכם נספח ובו תיעוד מחלקות שימושיות. שאלה ז ו ה ד ג ב א סה"כ 1 2 3 4 ציון בחינה: בהצלחה!

מס' סידורי: עמוד 2 מתוך 20 35( נקודות ) שאלה 1 עליכם לממש מערכת לייצוג מטריצות ולביצוע פעולות עליהן. נתון מנשק כללי לייצוג מטריצה 1 4 10 2 A 12 0.5 1 0.1 2 9 133 4 מטריצה לדוגמה )אם שכחתם(: /** Represents a matrix */ public interface IMatrix { /** return the value at row r and column c */ public double at(int r,int c); /** set the value at row r and column c to be val */ public void setat(double val, int r, int c); /** transpose the matrix (A'[i][j] = A[j][i]) */ public void transpose(); /** this[i][j] = this[i][j]+m[i][j] for each i and j */ public void add(imatrix m); /** multiply with m and return new matrix as result */ public IMatrix multiply(imatrix m); /** number of rows */ public int rows(); /** number of columns */ public int cols(); הערה: האינדקסים במטריצה יהיו [1-c,0] לעמודות ו-[ 0,r-1 ] לשורות תזכורת: חיבור מטריצות: נסמן ב C = A+B את סכום המטריצות )מאותו גודל( אזי C ij = A ij + B ij כפל מטריצות: A בגודל,m x n Bבגודל n x p המכפלה AB מגודל m x p מוגדרת ע"י: (AB) ij = n 1 r=0 A ir B rj

מס' סידורי: עמוד 3 מתוך 20 א' סעיף הגדירו תנאי קדם ואחר לכל שירות במנשק,IMatrix ומשתמר מחלקה )אם צריך( public interface IMatrix { public double at(int r,int c); public void setat(double val, int r, int c); public void transpose(); public void add(imatrix m); public IMatrix multiply(imatrix m); public int rows(); public int cols();

מס' סידורי: עמוד 4 מתוך 20 סעיף ב ' סטודנט X וסטודנטית Y החליטו לממש את המנשק.IMatrix תחילה הם החליטו לממש את המערכת כך: מטריצה מלאה { IMatrix public class FullMatrix implements מטריצה אשר בה יש אברים רק על האלכסון { IMatrix public class DiagonalMatrix implements מה הבעיה במימוש זה של המערכת? סעיף ג ',get לשנות את המימוש ויצרו את המנשק הבא, השלימו את תנאי הקדם והאחר של השירותים החליטו ו- Y X ו- islegal. set public interface IMatrixImpl { /** Returns true if values be placed in this cell*/ public boolean islegal(int r, int c); public double get(int r, int c); public void set(double val, int r, int c); public int rows(); public int cols();

מס' סידורי: עמוד 5 מתוך 20 סעיף ד ' IMatrixImpl אשר מממשת את FullMatrix את המחלקה כתבו ו- Y X public class FullMatrix implements IMatrixImpl { private double[] m; private int cols; public FullMatrix(int rows, int cols) { m = new double[rows*cols]; this.cols = cols; public double get(int r, int c) { return m[r * cols + c]; public boolean islegal(int r, int c) { return true; public void set(double val, int r, int c) { m[r * cols + c] = val; public int rows() { return m.length/cols; public int cols() { return cols;

מס' סידורי: עמוד 6 מתוך 20 השלימו את המחלקה DiagonalMatrix אשר מממשת את אותו מנשק public class DiagonalMatrix implements IMatrixImpl { ;

ז) מס' סידורי: עמוד 7 מתוך 20 סעיף ה ' בהנחה שיהיה מס' מימושים רב של,IMatrixImpl הציעו שיטה כיצד ניצור מופעים של IMatrixImpl "א מופעים של מחלקות המממשות את המנשק(, כיתבו את הגדרת המחלקה )ו/או השירותים( הנדרשים כדי לממש את הצעתכם )אין צורך לממש(

מס' סידורי: עמוד 8 מתוך 20 סעיף ו ' בנוסף הם כתבו את המחלקה Matrix אשר מממשת את.IMatrix השלימו את השירותים הבאים במחלקה: אם צריך ליצור מופע חדש של IMatrixImpl עשו זאת בעזרת מה שכתבתם בסעיף ה'. שימו לב שייתכן וקיימים בנאים ושירותים אחרים במחלקה, שימומשו בעתיד. public class Matrix implements IMatrix { protected IMatrixImpl impl; public Matrix(int rows, int cols) { public double at(int r, int c) { public void setat(double val, int r, int c) {... rest of the methods

מס' סידורי: עמוד 9 מתוך 20 סעיף ז ' סטודנט Z הציע להרחיב את המחלקה Matrix כך שתדע לחשב דטרמיננטה של מטריצה. השלימו את הגדרת המחלקה AdvancedMatrix וממשו את השירות determinant a b A,det A ad bc c d דטרמיננטה של מטריצה בגודל 2 על 2: a b c A d e f,det A a( ei fh) b( di fg) c( dh eg) g h i מטריצה בגודל 3 על 3: מטריצה כללית תחושב בצורה רקורסיבית M ij ו- k i j A a C, C ( 1) M i1 ij ij ij ij ז"א היא הדטרמיננטה של מטריצה הנוצרת ממחיקת שורה.A ממטריצה j ועמודה i הערה: )i( ניתן לחשב דטרמיננטה גם בדרכים אחרות, אך אנו ממליצים על שיטה זו לצורך התרגיל )ii( דטרמיננטה של מטריצה לא ריבועית תוגדר כ- 0 לצורך השאלה )iii( ניתן להוסיף שירותי עזר במידת הצורך public class AdvancedMatrix { public double determinant() {

עמוד 10 מתוך 20 מס' סידורי: ( 30 נקודות ) שאלה 2 בשאלה הבא עליכם לבנות servlet אשר מקבל בתור פרמטר מחרוזת המכילה URL ומדפיס בחזרה )לדפדפן של המשתמש( את ה- URL הדומה ביותר בתוכו לURL החדש ואשר נשלחו בעבר באופן דומה אל ה- servlet. אין צורך בהוספת תגי HTML לדף החוזר. מציאת התוכן הדומה ביותר ייעשה בשיטת.MIN-HASH בשיטה זו כל מסמך מיוצג ע"י וקטור. ב-וקטור זה N מספרים מסוג DOUBLE אשר מקודדים את התוכן של המסמך. הקידוד מבוסס על מתן ערכים רנדומאליים שנקבעו מראש למילים במילון שנקבע מראש. משמעות "מילון" בהקשר הזה היא אוסף של מילים. נניח ש 1=N. הקידוד נעשה באופן הבא :לפני הקידוד משייכים לכל מילה במילון ערך רנדומאלי בין 0 ל- 1. בהינתן מסמך מסתכלים על הערכים של כל המילים מתוך המילון שמופיעות בו ורושמים את הערך המינימאלי בתור הקידוד של המסמך. אם = 2 N פשוט חוזרים על התהליך פעמיים. כאשר לכל קורדינטה יש אוסף ערכים רנדומאליים נפרד (בכל באוסף שכזה יש ערך לכל מילה(. לכל אוסף ערכים מחשבים את המינימום על כל המילים שמופיעים במסמך כדי לקודד את המסמך. שימו לב: הערכים למילים במילון אינם משתנים כאשר עוברים ממסמך אחד לשני. (במילה קורדינטה אנו מתכוונים למקום מסויים בוקטור ) עבור N כללי פשוט חוזרים על התהליך N פעמים. כל קורדינטה בלתי תלויה באחרות. דוגמא: המילון לדוגמא מכיל את המילים "אבא" "אמא" "ילד" "ילדה", והקידוד לדוגמא הוא דו מימדי (,2=N שתי קורדינטות( לפי טבלאות הקידוד הבאות: טבלה 1 טבלה 2 מילה ערך מילה ערך 0.52 אבא 0.91 אבא 0.26 אמא 0.62 אמא 0.17 ילד 0.76 ילד 0.29 ילדה 0.22 ילדה המשפט )שיקרא להלן משפט א'( "דני הרביץ לדנה כי היא קיללה את אמא שלו" מקבל את הערך הוקטורי.)0.62,0.26( המשפט )להלן משפט ב'( "הילד הביט בילדה שהביטה בילד" מקבל את הערך הוקטורי )0.22,0.17(. המשפט )להלן משפט ג'( "אבא אמא קצת יותר לאט, אבא אמא תחכו מעט" מקבל את הערך הוקטורי.)0.62,0.26( המשפט )להלן משפט ד'( "ילדה טובה כמו אבא" מקבל את הערך הוקטורי )0.22,0.29(.

עמוד 11 מתוך 20 מס' סידורי: מידת הדמיון בין שני מסמכים נקבעת ע"י מספר המקומות בוקטורים המקודדים כל מסמך בהם הוקטורים שווים. להלן טבלת הדמיון של המשפטים בדוגמא: משפט א' משפט ב' משפט ג' משפט ד' 0 2 0 2 משפט א' 1 0 2 0 משפט ב' 0 2 0 2 משפט ג' 2 0 1 0 משפט ד' המילון נתון לכם בתור קובץ המכיל רשימה של מילים. שם הקובץ.DICT.TXT את סט הערכים למילים במילון עליכם לבנות בעצמכם כך שכל מסמך ייוצג ע"י 999=N ערכים. מימוש ה- SERVLET יכלול מחלקת עזר Helper אשר אין עליכם לממש. עליכם לרשום מנשק בשם IHelper בלבד. מחלקה זו תכיל את הפונקציות הבאות: randdouble שמחזירה מספר רנדומלי מסוג double בין 0 ל- 1. url2strings שמקבלת מחרוזת URL ומחזירה מבנה נתונים לבחירתכם שמכיל את כל המילים. filename2strings שמקבלת שם של קובץ ומחזירה מבנה נתונים המכיל את רשימת המילים בקובץ..1.2.3 משמעות המשפט "מבנה נתונים לפי בחירתכם" לעיל הוא: אחד ממבני הנתונים בנספח א' או מבנה נתונים שאתם ממשים בעצמכם על טופס הבחינה. סעיף א ' רשמו את המנשק IHelper public interface IHelper

עמוד 12 מתוך 20 מס' סידורי:

עמוד 13 מתוך 20 מס' סידורי: סעיף ב ' רשמו את המחלקה MINHASH אשר מקבלת לבנאי שלה שם של קובץ מילון ואולי פריטים אחרים ומממשת את הפונקציונאליות של קידוד ה- MINHASH )לא כולל אחסון קידודים שחושבו בעבר(

עמוד 14 מתוך 20 מס' סידורי:

עמוד 15 מתוך 20 מס' סידורי: סעיף ג ' רשמו את המחלקה MINHASHDATABASE אשר מממשת בסיס נתונים אשר אוגר אוסף של מסמכים ומאפשר שליפה של מסמכים דומים לפי שיטת ה- MINHASH. באוגר הכוונה היא לא לאחסן את המידע הטקסטואלי עצמו, אלא מידע מזהה בתוספת מידע לצורך מציאת דמיון בין מסמכים. שימו לב, אם יש כמה מסמכים עם אותה מידת דמיון מקסימאלית, מספיק לשלוף אחד מהם. שימו לב, יתכן שהדמיון המקסימאלי הוא דמיון 0

עמוד 16 מתוך 20 מס' סידורי: ד' סעיף רשמו את המחלקה MINHASHSERVLET אשר מממשת את servlet כפי שנדרש לעיל. שימו לב -- אם עדיין לא נשלח אף URL אל ה- servlet אזי יש להחזיר הודעה בנוסח database" ".empty לתשומת ליבכם בסיס הנתונים משותף לכל המשתמשים של הסרולט, אבל הוא קיים רק כל עוד הסרוולט קיים. כדי לסייע, הוספנו בסוף נספח א' מעט מידע על המנשקים הרלוונטיים.

עמוד 17 מתוך 20 מס' סידורי: ( 20 נקודות ) שאלה 3 נתונות המחלקות הבאות: public class Base { public Base() { x = 0; bar(); public Base(int x) { this.x = x; foo(); public void foo() { System.out.println("Base.foo : " + x); private void bar() { System.out.println("Base.bar:" + x.tostring()); protected Integer x; public class Derived extends Base { public Derived() { bar(); public Derived(int x, int y) { super(x); this.y = y; public void foo() { System.out.println("Derived.foo : " + x + ", " + y); public void bar() { System.out.println("Derived.bar:" + x.tostring() + ", " + y.tostring()); private Integer y; public class Main { public static void main(string[] args) { <**BODY OF MAIN**>

עמוד 18 מתוך 20 מס' סידורי: ענו על שלשת הסעיפים הבאים. בכל סעיף יש לסמן תשובה אחת בלבד. Base b = new Derived(10, 20); סעיף א ' מה יתרחש כשגוף ה main יהיה: יודפס : 10, 0 Derived.foo התכנית לא עוברת קומפילציה יודפס : 10, 20 Derived.foo יודפס Derived.foo : 10, null במהלך ריצת התכנית ייזרק חריג יודפס : 10 Base.foo.1.2.3.4.5.6 Derived d = new Base(10); סעיף ב ' מה יתרחש כשגוף ה main יהיה: Derived.foo : 10, null יודפס : 10, 0 Derived.foo יודפס : 10 Base.foo יודפס התכנית לא עוברת קומפילציה יודפס : 10, 20 Derived.foo במהלך ריצת התכנית ייזרק חריג.1.2.3.4.5.6 Base b = new Derived(); סעיף ג ' מה יתרחש כשגוף ה main יהיה: יודפס Derived.bar : 0, null Derived.bar : 0, null התכנית לא עוברת קומפילציה לא יודפס פלט וייזרק חריג במהלך ביצוע התכנית יודפס : 0 Base.bar ולאחר מכן ייזרק חריג Base.bar : 0 יודפס Derived.bar : 0, null יודפס : 0 Base.bar Base.bar : 0.1.2.3.4.5.6

עמוד 19 מתוך 20 מס' סידורי: ( 15 נקודות ) שאלה 4 נתונה המחלקה הגנרית.Box 1. public class Box<T> { 2. public T get() { 3. return element; 4. 5. 6. public void put(t element) { 7. this.element = element; 8. 9. 10. public void put(box<t> box) { 11. put(box.get()); 12. 13. 14. private T element; 15. וכן נתונה המחלקה BoxClient העושה שימוש במחלקה.Box 1. public class BoxClient { 2. 3. public static void main(string[] args) { 4. Box<Number> nbox = new Box<Number>(); 5. Box<Integer> ibox = new Box<Integer>(); 6. nbox.put(ibox); 7. 8. 9. סעיף א ' קוד הלקוח אינו עובר קומפילציה, אולם ניתן לשנות את קוד המחלקה Box כך שקוד הלקוח יעבור קומפילציה. בצעו את השינויים הדרושים במחלקה Box שיאפשרו למחלקה BoxClient לעבור קומפילציה. שימו לב, אין לשנות את קוד הלקוח וכמובן יש לשמר את הגנריות של המחלקה.Box אין צורך להעתיק את כל המחלקה, מספיק לציין את מספרי השורות בהן אתם מבצעים שינוי ולציין מהו השינוי.

עמוד 20 מתוך 20 מס' סידורי: copy את השירות הסטטי Box סעיף ב ' נרצה להוסיף למחלקה public static<t> void copy(*1* from, *2* to) { { to.put(from.get()); מהם יהיו הטיפוסים של הפרמטרים from ו- to כך שיאפשרו גמישות בשימוש בשירות זה? לדוגמה, נרצה לאפשר את קוד הלקוח הבא public class BoxClient { public static void main(string[] args) { Box<Number> nbox = new Box<Number>(); Box<Integer> ibox = new Box<Integer>(); Box.copy(iBox, nbox); { הטיפוס של from הוא: הטיפוס של to הוא: בהצלחה!