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

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

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

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

Microsoft PowerPoint - rec3.ppt

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

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

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

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

Microsoft PowerPoint - lec10.ppt

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

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

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

PowerPoint Presentation

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

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

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

Microsoft PowerPoint - rec8.ppt

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

PowerPoint Presentation

Slide 1

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

1

Microsoft Word B

PowerPoint Presentation

Microsoft PowerPoint - rec1.ppt

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

Slide 1

Slide 1

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

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

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

1

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

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

תורת הקומפילציה

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

Slide 1

PowerPoint Presentation

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

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

מבחן בפיתוח מערכות תוכנה בשפת Java ( )

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

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

PowerPoint Presentation

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

Microsoft Word - דוגמאות ב

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

PowerPoint Presentation

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

PowerPoint Presentation

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

תרגול 1

1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle ב

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

PowerPoint Presentation

PowerPoint Presentation

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

Slide 1

Microsoft PowerPoint - lec9.ppt

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

PowerPoint Presentation

Microsoft Word - c_SimA_MoedB2005.doc

Microsoft PowerPoint - lec2.ppt

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

Microsoft Word - c_SimA_MoedA2006.doc

Microsoft PowerPoint - lec9.ppt

Microsoft PowerPoint - Lecture1

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

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

תרגיל 1 בקורס תוכנה 1

Tutorial 11

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

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

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

Slide 1

Slide 1

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

Microsoft Word - Ass1Bgu2019b_java docx

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

Microsoft PowerPoint - 10_threads.ppt

Microsoft PowerPoint - 07_tdd.ppt

תרגול 1

תרגול מס' 1

PowerPoint Presentation

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

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

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

Slide 1

PowerPoint Presentation

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

Programming

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

Slide 1

Microsoft PowerPoint - 07_tdd.ppt

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

תמליל:

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן מתרגלים: הנחיות: השאלות. כל על לענות עליכם משקל. שוות שאלות 5 במבחן מהנקודות. 20% ותקבלו יודע/ת" "לא כתבו התשובה את יודעים אינכם אם סעיף, בכל הקוד כי ייתכן אחרת במפורש נאמר לא אם הקוד, פלט את לציין נדרש בה שאלה בכל הריצה זמן או הקומפילציה שגיאת את לציין יש כזה במקרה רץ. או מתקמפל לא מתרחשת. היא מדוע ולהסביר התשובה. על הניתן בציון תפגע נכון( הוא אם )אף בעליל רלוונטי לא מידע הוספת לעניין. ענו קריאות. בלתי תשובות לבדוק אפשר אי ברור. בכתב תשובתכם כתבו חדש. בעמוד תשובה כל התחילו עזר. חומר בכל להשתמש אין כולם. את שקיבלתם כעת ודאו זה(. עמוד )כולל עמודים 8 במבחן שעות. שלוש הבחינה משך.5.7.6.8.9 בהצלחה! 8 מתוך 1 עמוד 127602 עצמים מונחה תכנות 1024 אביב

שאלה 1: פולימורפיזם הכלה polymorphism( )inclusion השאלה הזו עוסקת בנושא הפולימורפיזם - אבל מתרכזת בפולימורפיזם ההכלה. כל התייחסות לסוג אחר של רבגוניות צריך להיות רלוונטי באופן ישיר לשאלה ומנומק. אנו מזכירים לכם כי פולימורפיזם ההכלה ממומש בעזרת יחסי הורשה ו- binding.dynamic השאלה עוסקת במשמעויות של פולימורפיזם ההכלה לגבי התנהגות התוכנה וכן עוסקת בדרכים השונות למימוש תכונה זו כפי שהדבר מתבטא בשפות שונות לתכנות מונחה עצמים. בכל השאלה הזאת, כשכתוב פולימורפיזם אנו מתכוונים ל בפולימורפיזם ההכלה. לכל הסעיפים שלהלן יש תשובות קצרות - תשובות ארוכות עלולות להפסיד נקודות. )2 נק'( תנו דוגמת קוד קצרה שמראה שהקוד הבא מתנהג בצורה פולימורפית: int f(y &y) { return y.g(); )2 נק'( מדוע דוגמת הקוד הקצרה הבאה אינה מתנהגת בצורה פולימורפית? הסבירו את הבעיה: int f(const Y y) { return y.g(); )6 נק'( נניח שבשפת ++C נבטל את תכונת העברת ארגומנטים by-reference לדוגמא ונשאיר רק את צורות העברת הפרמטרים הקיימות ב- C. )int )n& א. האם זה יבטל לחלוטין את האפשרות לספק קוד רבגוני או יגרום לשינוי משמעותי בסגנון התכנות? נמקו במדויק מדוע כן או מדוע לא. ב. מהי היכולת )תכונה( של ++C שתיפ גע באופן החמור ביותר מחוסר?reference )הכוונה היא שאין שום דרך לעקוף את הקושי( )6 נק'( בהרצאה נתקלנו בכמה סוגים של דריסות (Overriding/Refinement) דרכים לניהול\שליטה על מנגנון הקישוריות הדינאמית binding).(dynamic תנו דוגמה לשני סוגי דריסה. עבור כל אחד משני הסוגים: א. תנו הסבר קצר המייחד את הסוג הזה לעומת האחר. ב. תנו שתי דוגמאות למימושים שונים )ייתכן בשפות שונות( של הסוג המדובר )אינכם חייבים להוכיח בקיאות בשפות שלא נלמדו במהלך הקורס(. עמוד 2 מתוך 8

שאלה הקוד 2: שימוש בתכנות מונחה עצמים להקטנת סיבוכיות לפרדיגמה של תכנות מונחה עצמים יש יתרונות רבים )בלי לזלזל ביתרונות של פרדיגמות אחרות(. אחד הדברים שראינו בהרצאה היה "שימוש בתכנות מונחה עצמים להקטנת סיבוכיות הקוד" כאשר "סיבוכיות הקוד" יכולה להתפרש בכמה צורות: חסכון בכתיבת קוד ע"י המתכנת מניעת שכפול קוד שנעשה ע"י המהדר )הקומפיילר( אפשרויות נוספות השאלות: )22 נק'( הציגו שתי דוגמאות שונות באופן מהותי, המדגימות את התופעה ומסבירות בדיוק כיצד משתמשים בתכונות המאפיינות את התכנות מונחה העצמים כדי לממש את הדוגמאות )איננו טוענים שאי-אפשר לפתור את הבעיות תוך שימוש בפרדיגמות תכנות אחרות(. הסבירו כל דוגמה ונמקו כיצד מוקטנת סיבוכיות הקוד. )6 נק'( הסבירו מדוע הדוגמה "שימוש בהורשה כדי למנוע שכפול קוד של מחלקת הבסיס" נדחית על הסף. הערה: כל הדוגמאות יכולות להיות ממומשות בשפות שונות, לפעמים בטכניקות קצת שונות, בהתאם ליכולות המיוחדות של כל שפה )++C Python,,D,#C Java, וכולי(. עמוד 3 מתוך 8

C# - שאלה 3 חלק ראשון - return Yield נתון הקוד הבא: class C1 { int F1() { yield return 1; public void Q1() { Console.WriteLine( F1() ); F1(); )4 נק'( האם הקוד C1().Q1() new מתקמפל? אם כן, האם הוא זורק חריגה? אם לא, מהו הפלט שלו? class C2 { int i = 0; IEnumerable<int> F23() { i++; for (int j = 0; j < 10; j++) yield return j; public void Q2() { i = 0; for (int k = 0; k < 10; k++) F23().First(); // access the first element // the semantics of First are not important! Console.WriteLine(i); public void Q3() { i = 0; foreach (int m in F23()) ; Console.WriteLine(i); נתון הקוד הבא: )4 נק'( התעלם מהמתודה Q3. האם הקוד C2().Q2() new מתקמפל? אם כן, האם הוא זורק חריגה? אם לא, מהו הפלט שלו? )4 נק'( התעלם מהמתודה Q2. האם הקוד C2().Q3() new מתקמפל? אם כן, האם הוא זורק חריגה? אם לא, מהו הפלט שלו? המשך השאלה בעמוד הבא עמוד 4 מתוך 8

)המשך שאלה 3( חלק שני - Contra-variance Covariance and )4 נק'( אחת הסיבות לכך שלא ניתן להגדיר מחלקות גנריות קו-וריאנטיות )<T )class C<out או קונטרה-וריאנטיות )<T )class C<in היא האפשרות להגדיר שדות לא-פרטיים, שיהיו נגישים לקריאה ולכתיבה. האם ניתן להגדיר Properties בממשק גנרי קו-וריאנטי או קונטרה-וריאנטי? אם כן, האם יש מגבלות על הצהרת ה- Property? פרט. )4 נק'( נתון הקוד הבא: interface Iface<T> { class Cls<T> : Iface<T> { class Base { class Derived : Base {.5 האם ניתן לשנות את הגדרות המחלקה Cls או הממשק Iface כך שהקוד הבא יעבור קומפילציה? Iface<Derived> d = new Cls<Base>(); הסבר. עמוד 5 מתוך 8

Java generics - שאלה 4 נתונות שלוש מחלקות לא אבסטרקטיות B A, ו- C. נתון כי C יורשת מ- B, שיורשת מ- A. לשלוש המחלקות ישנו בנאי חסר פרמטרים. נתונה המתודה הסטטית copy הבאה: public static void copy( (1) src, (2) dst) { for (int i = 0; i < src.length; i++) { // copy from src to dst dst (3) = src (4) ; public static void main() { (5) src = new (6) ; (7) dst = new (8) ; src (9) = new A(); copy(src, dst); )5 נק'( השלם את הקוד הכתוב למעלה כך שהקוד יתקמפל אבל יזרוק חריגה בזמן ריצה )בלי לזרוק חריגה בצורה ישירה(. הסבר איזה תכונה של שפת Java מאפשרת שהקוד יתקמפל, מדוע תכונה זו נחשבת בעייתית. )6 נק'( נתונה המתודה :copy2 public static void copy2(list< (1) > src, List< (2) > dst) { for ( (3) element : src) { dst.add(element); השלם את המתודה copy2 כך שהקוד הנ"ל לא יתקמפל: List<A> listofas = new ArrayList<A>(); List<B> listofbs = new ArrayList<B>(); copy2 (listofas, listofbs); List<A> listofas = new ArrayList<A>(); List<B> listofbs = new ArrayList<B>(); List<C> listofcs = new ArrayList<C>(); copy2 (listofbs, listofbs); copy2 (listofbs, listofas); copy2 (listofcs, listofbs); copy2 (listofcs, listofas); אך הקוד הנ"ל כן יתקמפל: הסבר מדוע ההשלמה שבצעת למתודה copy2 גורמת לקטע הקוד הראשון לא להתקמפל ולשני כן להתקמפל. רמז: השתמשו בתו? ובמילים super ו\או.extends המשך השאלה בעמוד הבא עמוד 6 מתוך 8

)המשך שאלה 4( )2 נק'( הסבר מה היא פעולת,type erasure וציין באיזה שלב היא מבוצעת. )3 נק'( ציין מדוע למרות שמתקיים ה- erasure,type לקוד שמשתמש ב- generics יש יתרון על קוד דומה שמתבסס על ירושה )למשל,ListA שהיא רשימה לא גנרית, שיכולה להחזיק כל אובייקט מטיפוס B A, ו- C (. )4 נק'( כתבו את הקוד השקול לזה שייצר המהדר עבור המתודה copy2 בסעיף 1, לאחר ביצוע.type erasure.5 עמוד 7 מתוך 8

Squeak - שאלה 5 נתון הקוד הבא: 1 o := #(Prediction is very difficult, especially about the future). "array of symbols" 2 a := o select: [:s s size > 2]. 3 i := 1. 4 b1 := [Transcript show: i]. 5 b2 := [a at: i put: o. o := o class. i := i + 1.]. 6 [o class class ~~ o] whiletrue: b2. 7 c := a deepcopy. "copy array elements recursively" 8 b1 value. הסעיפים הבאים הם בלתי תלויים. )4 נק'( מה יהיה פלט התוכנית? Transcript show: ((a at: 1) == (c at: 1)). Transcript show: ((a at: 2) == (c at: 2)). a := o. (a at: ) superclass new. )4 נק'( מחליפים את שורה 8 בשורה הבאה: מה יהיה פלט התוכנית כעת? )4 נק'( מחליפים את שורה 8 בשורה הבאה: מה יהיה פלט התוכנית כעת? )4 נק'( מחליפים את שורה 1 בשורה הבאה: מה יהיה פלט התוכנית כעת? )4 נק'( מחליפים את שורה 8 בשורה הבאה:.5 השלימו את השורה במקום החסר, כך שהקוד ירוץ ללא שגיאות. עמוד 8 מתוך 8