יוםשישי 14 בספטמבר 2012 ) תכנות מונחה עצמים ( מבחן סוף סמסטר סמסטר אביב 2012, מועד ב' מרצה: קרן לנץ מתרגלים: אייל מושקוביץ, ערן גלעד, ניר האוזר
|
|
- רינה גרין
- לפני5 שנים
- צפיות:
תמליל
1 יוםשישי 14 בספטמבר 2012 ) תכנות מונחה עצמים ( מבחן סוף סמסטר סמסטר אביב 2012, מועד ב' מרצה: קרן לנץ מתרגלים: אייל מושקוביץ, ערן גלעד, ניר האוזר הנחיות: במבחן 5 שאלות שוות משקל. עליכם לענות על כל השאלות. במבחן שאלת בונוס. בכל שאלה, למעט שאלת הבונוס, אם אינכם יודעים את התשובה, כתבו "לא יודע/ת" ותקבלו 20% מהנקודות. בכל שאלה בה נדרש לציין את פלט הקוד, ייתכן כי הקוד לא מתקמפל. במקרה זה יש לציין את שגיאת הקומפילציה או זמן הריצה ולהסביר מדוע היא מתרחשת. ענו לעניין. הוספת מידע לא רלוונטי בעליל )אף אם הוא נכון( תפגע בציון הניתן על התשובה, ובמקרים קיצוניים אף למתן שלילי. כתבו תשובתכם בכתב ברור. התחילו כל תשובה בעמוד חדש. אין להשתמש בכל חומר עזר. במבחן 01 עמודים ( כולל עמוד זה ) וודאו כעת שקיבלתם את כולם משך הבחינה שלוש שעות. בהצלחה!! תכנות מונחה עצמים
2 .0 שאלה 1 Generics ב- C++ ו- Java 02( נק'( :T2 להלן מימוש של פונקציה ב-++ C הבודקת האם ניתן להציב מופע של טיפוס T1 למשתנה מטיפוס template<typename T1, typename T2> bool canassign(t1 from, T2 to) { T2* t2 = new T1(); return true; האם הפונקציה מבצעת את יעודה? אם כן, האם היא מטילה אילוצים נוספים על T1 ו- T2? מנה אילוצים אלו. אם לא, הסבר מדוע. 2. להלן הצעה למימוש דומה באמצעות :template specialization template<class T1, class T2> struct canassign { enum { result = false ; ; template<class T1> struct canassign<t1,t1> { enum { result = true ; ; מהי תוצאת הביטויים הבאים )מחלקה B יורשת ממחלקה A(? canassign<a,a>::result; canassign<b,a>::result; canassign<b*,a*>::result; כתבו ב- Java פונקציה בשם canassign2 השקולה לפונקציה מסעיף א', כלומר, פונקציה שתכשל בזמן קומפילציה אם לא ניתן הציב מופע של טיפוס T1 למשתנה מטיפוס T2. להלן הצעה לפונקציה דומה ב- Java, שבודקת האם ניתן להציב את האובייקט from למשתנה מטיפוס של.to.4 המתודה static<t1,t2> boolean canassign3(t1 from, T2 to){ Class<?> c1 = from.getclass(); Class<?> c2 = to.getclass(); return (c2.isassignablefrom(c1) ); isassignablefrom קובעת האם ניתן להציב ערך ממחלקה אחת למחלקה אחרת. כתבו קטע קוד קצר בו קריאות לcanAssign2 ו- canassign3 עם אותם ערכים יחזירו ערכים זהים )קטע הקוד צריך לעבור קומפילציה(. כתבו קטע קוד קצר בו קריאות לcanAssign2 ו- canassign3 עם אותם ערכים יחזירו ערכים שונים )קטע הקוד צריך לעבור קומפילציה(..a.b תכנות מונחה עצמים
3 שאלה 0 Conformance 02( C# Generics and נק'( עבור הסעיפים הבאים נתונה המחלקה הגנרית הבאה ב-# C : public class ArrayList<T> : IArrayList<T> { T[] items; // the elements array int n; // the number of elements int N; // the maximum number of elements public ArrayList(T[] arr) { items = arr; N = n = (arr == null? 0 : arr.length); public void Expand() { N = (N + 10) * 2; T[] olditems = items; items = new T[N]; for (int i=0; i < n; ++i) items[i] = olditems[i]; public void Add<U>(U u) { if (n >= N) Expand(); items[n++] = u; public T this[int i]{ // operator overloading get { if (i < 0 i >= n) throw new IndexOutOfRangeException(); return items[i]; public void Clear() { items = null; N = n = 0; items = null; public void AddEmptyCells(int n) { for(int i = 0; i < n; ++i) Add((T)null); // ToString is first defined in object. public String ToString(){ return items == null? "null" : items.tostring(); 0. קוד זה אינו מתקמפל וקיימות בו 2 שגיאות קומפילציה. מצא את שגיאות הקומפילציה. לכל שגיאת קומפילציה ציין: a. מספר שורה. b. הסיבה לשגיאה. c. מספר השורה של התיקון. d. התיקון. תכנות מונחה עצמים
4 כעת נניח כי השגיאות בסעיף הקודם תוקנו. לפניכם קוד אשר משתמש בממשק.IArrayList עליכם לממש את ממשק זה כך שהקוד הבא יתקמפל ויעבוד בצורה תקינה: עבור הסעיפים הבאים נתונה המחלקה הגנרית הכתובה ב- #C: ArrayList<string> sl = new ArrayList<string>(); sl.add("a"); IArrayList<object> ol = sl; Console.WriteLine(ol[0]); class C<T> : T { private T t; public C(C<T> other) { t = other.t; הערות: הקוד הוא אינו קוד חוקי ב-# C, אך אנחנו נניח לצורך שאלה זאת כי הוא חוקי ועובד. ההגדרות בסעיפים הבאים מתייחסות רק לחוקי התאימות בכלליות ולאו דווקא לחוקי התאימות הספציפיים ב-# C. להשתמש גם ב- A. ניתן אם בכל מקום שבו ניתן להשתמש ב- B A is-a B הסעיפים: מחלקה גנרית תיחשב קו-וריאנטית ביחס לפרמטר הגנרי T אם היא מקיימת: A<X> A<Y> is-a אמ"מ. Y is-a X האם המחלקה C קו-וריאנטית לפי הגדרה זאת? אם כן הסבר, אם לא תן דוגמא קצרה שמוכיחה את הטענה שלך. מחלקה גנרית תיחשב קונטרה-וריאנטית ביחס לפרמטר הגנרי T אם היא מקיימת: A<Y> A<X> is-a אמ"מ Y. is-a X האם המחלקה C קונטרה-וריאנטית? אם כן הסבר, אם לא תן דוגמא קצרה שמוכיחה את הטענה שלך..4 תכנות מונחה עצמים
5 שאלה - 3 Squeak 02( נק'( נתונה המחלקה הבאה המתארת גרף מכוון: בגרף יש צמתים vertices( ) וקשתות.)edges( קבוצת הצמתים הן,set כלומר קבוצה ללא חזרות. הקשתות מסודרות במילון,)dictionary( המפתח של המילון הוא צומת המקור והערך הוא set של צמתי היעד. ניתן להניח כי סדר המעבר על האיברים ב- set הוא לפי סדר ההכנסה. Object subclass: #Graph instancevariablenames: 'vertices edges' classvariablenames: '' pooldictionaries: '' initialize vertices := Set new. edges := Dictionary new. addvertex: u vertices add: u addedgefrom: u To: v edges at: u ifpresent: [:uedges uedges add: v] ifabsent: [ uedges uedges := Set new. uedges add: v. edges at: u put: uedges]. print: u edges at: u ifpresent: [:uedges uedges do: [:v self print: v ] ]. Transcript show: u; cr. א. מהו הפלט של הקוד הבא? g g := Graph new. g addvertex: 'a'. g addvertex: 'b'. g addvertex: 'c'. g addvertex: 'd'. g addvertex: 'e'. g addedgefrom: 'a' To: 'b'. g addedgefrom: 'a' To: 'e'. g addedgefrom: 'b' To: 'c'. g addedgefrom: 'b' To: 'd'. g print: 'a'. תכנות מונחה עצמים
6 ב. הוסיפו מתודה חדשה בשם,do: המאפשרת למשתמש להגדיר פעולה שתתבצע עבור כל צומת בתת גרף של צומת נתון v, יש לעבור על כל צומת פעם אחת בדיוק..DFS על המתודה לעבור על הגרף בסדר a. b. ניתן להניח כי בגרף אין מעגלים. c. ניתן להוסיף מתודות עזר. בחברת SqueakRUs התלהבו מהמימוש הפשוט של הגרף והחליטו להוסיף ירושה מרובה ל- Squeak. המימוש יסתמך על המימוש הנתון של גרף. כלומר, חיפוש המתודות יתבסס על חיפוש בגרף. בסעיפים הבאים נעזור לחברת SqueakRUs למממש את הירושה המרובה. ג. תזכורת: המתודה canunderstand מוגדרת במחלקה :class canunderstand: t1 (self includesselector: t1) iftrue: [^ true]. superclass ifnil: [^ false]. ^ superclass canunderstand: t1 כתבו מימוש מחדש למתודה הנ"ל בעזרת המחלקה.Graph תחילה חשבו איך ניתן לייצג את גרף הירושה בצורה שתקל על מימוש הפונקציה הנ"ל ציינו את ההנחות שלכם המפורש. ד. אחת הבעיות שנוצרות כאשר תומכים בירושה מרובה היא דו-משמעות. בסעיף זה תממשו את המתודה: hasambiguity: t1 אשר מקבלת מתודה ובודקת אם קיימת דו-משמעות מיקרית בהגדרה שלה. רמז: קיימת דו-משמעות מיקרית אם קיימות שתי הגדרות של המתודה בשתי מחלקות שונות כך שלא קיים מסלול ירושה ביניהן. כתבו את הנחותיכם במפורש. תכנות מונחה עצמים
7 שאלה - 4 פולימורפיזם ב- ++C )02 נק'( נתון הקוד החוקי הבא: struct A1 { int i; virtual void f() { ; struct A2 { int j; virtual void g() { ; struct B : A1, A2 {; bool aresameobject(a1* a1, A2* a2) { // your code here void test() { A1 a1; B b1, b2; A2 a2; assert( aresameobject(&a1, &b1) == false ); assert( aresameobject(&b1, &b2) == false ); assert( aresameobject(&b2, &a2) == false ); // comparing object to itself returns true assert( aresameobject(&b1, &b1) ); // comparing two NULLs returns true as well assert( aresameobject(null, NULL) ); הסבר בקצרה את ההבדלים בין static_cast ל- dynamic_cast באיזה מידע כל המרה משתמשת, מתי מובטח שהיא תעבוד ובאיזה מצבים יש להשתמש באחת ולא בשנייה. ממש את הפונקציה aresameobject כך שתחזיר true אם גם a1 וגם a2 מצביעים על אותו אובייקט B )ראה assert רביעי למעלה( או ששניהם מצביעים על NULL )ראה assert חמישי למעלה(. הנח כי הקוד הקורא לא עושה תעלולים כמו שימוש ב- reinterpret_cast כדי "לזייף" טיפוסים, על ידי הסטת מצביע למקום לא נכון באובייקט. עם זאת, הקלט עשוי להיות.NULL האם הקוד שכתבת בסעיף הקודם יעבוד גם אם הירושה של B מ- A1 ו- A2 תהיה וירטואלית? הסבר..0 הנח עכשיו שהקוד בתחילת השאלה שונה, כך שהפונקציה f איננה וירטואליות )גם הירושה איננה וירטואלית, כמו בהתחלה(. תאר )במילים או בקוד( כיצד יש לשנות את המימוש של aresameobject כך שתעבוד במצב החדש, או הסבר מדוע אי אפשר לבצע שינוי כזה..4 הנח עכשיו שהקוד בתחילת השאלה שונה, כך ששתי הפונקציות f ו- g אינן וירטואליות )גם הירושה איננה וירטואלית, כמו בהתחלה(. תאר )במילים או בקוד( כיצד יש לשנות את המימוש של aresameobject כך שתעבוד במצב החדש, או הסבר מדוע אי אפשר לבצע שינוי כזה..5 תכנות מונחה עצמים
8 שאלה - 5 Classes Nested ב- Java 02( נק'( ב- Squeak, בלוק הוא למעשה מופע של המחלקה.BlockClosure רוצים לממש מנגנון דומה ב- Java. לשם כך, מוצע הממשק הבא: interface Block<T> { public T invoke(t arg); נתונה מתודה לשימוש כללי, אשר מריצה בלוק על כל אחד מאיברי מערך מספרים נתון )הפעולה שתתבצע על איברי המערך תלויה במימוש של הבלוק(: public static int foreach(int[] nums, Block<Integer> action) { int result = 0; for (int num : nums) result = action.invoke(num); return result; // this is the last action's result השלם את המתודה הבאה, שמשתמשת ב- foreach כדי לקבל את הסכום של איברי המערך. הגדר מחלקה מקוננת מהסוג המתאים, והעבר מופע שלה אל :foreach public static int sum(int[] nums) { int result = 0; // your code here return result; שימוש במחלקה אנונימית במקום בבלוק דורש כתיבה של יותר קוד, אבל נותן יותר כוח למתכנת. איזה אפשרויות קיימות בשימוש במחלקה אנונימית, ולא בבלוקים של?Squeak )רמז: חישבו מה ניתן להגדיר במחלקה אנונימית, ולא ניתן להגדיר בבלוק( במחשבה נוספת, הוחלט לשנות את המתודה,invoke כך שלא תקבל פרמטרים:.0 public T invoke(); בהתאם, גם foreach שונתה כך שלא תקבל את המערך,nums אלא רק את מספר הפעמים שיש להריץ את ה- action : public static int foreach(int count, Block<Integer> action) { int result = 0; for (int i = 0; i < count; i++) result = action.invoke(); return result; // this is the last action's result כתוב מחדש את המתודה,sum כך שתחשב סכום עם הקוד הנתון החדש )באפשרותך לשנות את כל חלקי המתודה(. תכנות מונחה עצמים
9 מתכנני השפה החליטו להוסיף תכונה חדשה: רפרנס )"alias"( למשתנה, בדומה ל-++ C. לדוגמא:.4 String s1 = null; String& s2 = s1; s1 = "hello"; System.out.println(s2); // prints "hello", and not "null" לתכונה תהיה תמיכה גם ב- JVM. איזו מגבלה בשימוש במחלקות אנונימיות ומקומיות יהיה אפשר להסיר באמצעות שימוש בתכונה החדשה? הסבר. שימוש במחלקות אנונימיות לא מאפשר מימוש של יותר ממשק אחד. הסבר למה אין תועלת רבה במתן אפשרות למימוש מספר ממשקים. כלומר, מעבר לסיבות תחביריות, מדוע לא מאפשרת השפה את הדוגמאות הבאות:.5 // Can't create anonymous class that extends String and implements Iterator. new String() implements Iterator { // Can't create anonymous class that implements two interfaces. new Iterator, Comparable<String> () { התעלם בתשובתך מממשקים "מתייגים" כמו Cloneable ו- Serializable, ומיכולות עוקפות-קומפיילר כמו.reflection אם לדעתך האפשרות הזאת דווקא נדרשת והייתה צריכה להיתמך בשפה, הסבר מדוע ותן דוגמה שבה נעשה באפשרות שימוש. תכנות מונחה עצמים
10 שאלת בונוס - System 5( Typing נק'(.0 מה ההבדל בין strong typing לבין?static typing 2. האם שפת תכנות יכולה להיות strongly typed אבל לא?statically typed אם כן תנו דוגמא, אחרת נמקו מדוע לא תיתכן שפה כזאת. 2. האם שפת תכנות יכולה להיות statically typed אבל לא?strongly typed אם כן תנו דוגמא, אחרת נמקו מדוע לא תיתכן שפה כזאת. תכנות מונחה עצמים
11 פיתרון רשמי שאלה 1 סעיף )5 1 נק'( הפונקציה מבצעת את יעודה - תכשל )בזמן קומפילציה( אם T1 אינו תואם לT2. אילוצים על T1 ו- T2 : לשניהם קיים copy constructor ו- destructor זמין )שכן הפרמטרים לפונקציה מתקבלים by.)value ל- T1 קיים constructor חסר פרמטרים..0 סעיף )5 0 נק'( תוצאות הביטויים: true false false <T2, T1 extends T2>boolean canassign2(t1 from, T2 to){ return true; Object o1 = new Object(); Object o2 = new Object(); assert(canassign2(o1,o2) == canassign3(o1,o2)); סעיף )5 3 נק'( סעיף )5 4 נק'( Object o3 = new Integer(3); Object o4 = new Object(); assert(canassign2(o3,o4)!= canassign3(o3,o4)); תכנות מונחה עצמים
12 שאלה 0 סעיף )9 1 נק'( 0. שורה 08: לא ניתן להציב איבר מטיפוס U למערך מטיפוס T מבלי לציין את האילוצים על U. תיקון שורה :07 { U:T public void Add<U>(U u) where שורה 29: לא ניתן להציב null לתוך ValueType לכן חייבים לציין ש- T הוא מחלקה. תיקון שורה :0 class class ArrayList<T> : IArrayList<T> where T: שורה 22: מכיוון ש-() ToString מוגדרת ב- Object, חייבים לציין שהפונקציה ToString של ArrayList דורסת אותה. תיקון שורה :22 { ToString() public override String בשורה 02: T[N] items = new מתקמפל ב-# C, אך הוא מוציא שגיאת קומפילציה ב- Java. ולכן מי שטען כי צריך להוסיף new() where :T בשורה 0 קיבל מלא על כך. מי שטען כי nullable types יפתרו את שגיאה השנייה קיבלו מלא. טעויות נפוצות הרבה טענו כי throw new IndexOutOfRangeException גורם לשגיאת קומפילציה ב- #C. אך כפי שנדון בתרגולים ב-# C אין checked exceptions ולכן אין פה שגיאה. public interface IArrayList<out T> { public T this[int i] { get; סעיף )3 0 נק'( We need "out" for "IArrayList<object> ol = sl; We need "public T this[int i]" for Console.WriteLine(ol[0]); טעויות נפוצות מי שכתב מימוש לפונקציות בממשק קיבל חלקי. סעיף )4 3 נק'( לפי חוקי התאימות שלמדם בהרצאות המחלקה הנ"ל היא קו-וריאנטית. נשים לב כי המחלקה C אינה מוסיפה יכולות )משתנה t הוא פרטי ומאתחלים אותו רק בקונסטרקטור( ולכן בכל מקום שניתן להשתמש במחלקה כלשהי C<X> ניתן להשתמש ב- X. ולכן אם Y יורש מ- X )כלומר ניתן להשתמש ב- Y בכל מקום שבו משתמשים ב- X ( אזי C<Y> תואם ל-< C<X. סעיף )4 4 נק'( לפי חוקי התאימות שלמדם בהרצאות המחלקה הנ"ל היא לא קונטרה-וריאנטית. תכנות מונחה עצמים
13 שאלה 3 סעיף )6 1 נק'( הפתרון הוא:.c d b e a חלקי ניתן לתשובות שנראו פחות או יותר הגיוניות אך היו שגויות. סעיף )5 0 נק'( do: ablock on: avertex edges at: u ifpresent: [:uedges uedges do: [:v self do: ablock on: v ] ]. ablock value: avertex מלא ניתן גם למעבר pre-order וגם למעבר.post-order מלא ניתן למי שרשם:.aBlock do: avertex הורדו נק' למי שרשם avertex do: ablock מפני שזה מראה חוסר הבנה בסיסי ב- Squeak. לא הורדו נק' על טעויות קטנות באלגוריתם. סעיף )5 3 נק'( קיים משתנה גלובלי בשם Graph אשר מכיל את גרף הירושה. הצמתים בגרף הם המחלקות בשפה. קיימת קשת מכוונת מהבן לאבות שלו. הנחה canunderstand: t1 ablock := [:v ( v includesselector: t1) iftrue: [^true]]. Graph do: ablock on: self. ^false. פיתרון נוסף )ללא שימוש במתודה מסעיף ב'(: canunderstand: t1 (self includesselector t1) iftrue: [^true]. Graph edges at: self ifpresent: [uedges uedges do: [:v (v canunderstand t1) iftrue: [^true]]]. ^false. לא הורדו נק' על טעויות קטנות באלגוריתם. תכנות מונחה עצמים
14 סעיף )4 4 נק'( היה צריך להשתמש למצוא את כל המחלקות המממשות את t1 ולכל זוג מחלקות לבדוק האם יש בינן קשרי ירושה )אחד יורש מהשני(. אם קיים זוג של מחלקות המממשות את t1 ואין בינן קשר ירושה אזי יש דו-משמעות מקרי. inheritsfrom: aclass ablock ablock := [:v v = aclass iftrue: [^true] Graph do: ablock on: self. ^false hasambiguity: t1 implementingclasses ablock implementingclasses := Set new. ablock := [:v ( v includesselector: t1) iftrue: [implementingclasses add: v]]. Graph do: ablock on: self. implementingclasses do: [:v implementingclasses do: [:u ((u inheritsfrom: v) or: (v inheritsfrom: u)) iffalse: [^true]]] ^false. מי שרשם קוד, אך היו בו טעויות חמורות בסינטקס קיבל חלקי. מי שרשם קוד שסופר את מספר המחלקות שבהן t1 מממומשת ועונה כן אם המספר גדול מ- 0 קיבל 2-2 נק' )בכפוף למימוש הספציפי(. מי שרשם אלגוריתם או רשם כי צריך לספור את מספר המחלקות שבהן t1 ממ מו נקודה. קיבל שת מי שרשם את האלגוריתם הנכון קיבל 2 נק'. תכנות מונחה עצמים
15 שאלה 4 סעיף )3 1 נקודות( התקבלו הסברים בסיסיים על ההבדלים בין ההמרות, בדגש על זמן קומפילציה וזמן ריצה. הורדו נקודות בודדות למי שציין עובדות לא נכונות, ולמי שלא התייחס כלל לשאלה מתי צריך להשתמש בכל אחת מההמרות. סעיף )5 0 נקודות( התקבלו וריאציות שונות, שהשתמשו ב- dynamic_cast כדי לבדוק ששני המשתנים מצביעים על אותו אובייקט B. פתרונות שלא השתמשו ב- dynamic_cast לא התקבלו, מכיוון שהם לא תמיד נכונים: אם אובייקט A1 ואובייקט A2 נמצאים בזיכרון באותו מבנה שקיים באובייקט B, אי אפשר להבדיל ביניהם לבין אובייקט B בלי.RTTI שימוש ב- static_cast או באריתמטיקה של מצביעים - הורדה של 4 נקודות היעדר בדיקה של NULL ב- dynamic_casts הורדה של 2 נקודות היעדר טיפול בקבלה של שני NULL הורדה של 0 נקודה בדיקה לא נכונה מבחינת התוצאה הסופית הורדה של 2 נקודות טעויות נפוצות שימוש ב- try ו- catch מסביב ל- dynamic_cast. נדרש רק כשמבצעים המרה ל- reference, ולא כשמבצעים המרה למצביע. הערה הפתרון הפשוט ביותר הוא שימוש ב-<* dynamic_cast<void, כפי שמתואר כאן. אפשרות זו לא נלמדה בקורס, וכמובן גם לא נדרשה במבחן. סעיף )4 3 נקודות( אם נעשה שימוש ב- dynamic_cast, אין צורך לבצע שינויים גם אם הירושה היא וירטואלית. באמצעות RTTI ה, cast- יודע להתמודד גם אם ירושות מהסוג הזה. תשובה שלילית לא זיכתה בנקודות, אלא אם היתה טעות נגררת )בסעיף הקודם נעשה שימוש ב- static_cast, והתשובה כללה התייחסות לבעיה שבשילוב(. תשובה חיובית ללא הסבר הורדה חלקית. סעיף )4 4 נקודות( אחד ה- dynamic_cast צריך להיות מוחלף ב- static_cast. אמנם לא מובטח שה- static_cast הזה )מ- A2 ל- B ( הוא נכון, אבל אם נשווה אותו לתוצאה של ה- dynamic_cast, הן יהיו שוות רק אם מדובר באותו אובייקט B. השארת השימוש ב- dynamic_cast הורדה של 2-4 נקודות תכנות מונחה עצמים
16 שימוש ב- static_cast בשתי ההמרות הורדה של 2-4 נקודות בדיקה לא נכונה מבחינת התוצאה הסופית הורדה של 2 נקודות הסבר שטוען שאי אפשר לשנות את המימוש כך שיעבוד הורדה של 4 נקודות טעויות נפוצות שימוש ב- reinterpret_cast לא הורדו נקודות, אבל זה לא רצוי בכלל. לפי מבנה האובייקט שנלמד בקורס, תת-האובייקט של A1 אכן נמצא בתחילת B. במציאות, זה לא תמיד כך, ולכן היה עדיף להשתמש ב- static_cast. סעיף )4 5 נקודות( פתרון אי אפשר לשנות את הקוד עכשיו כך שיעבוד. אי אפשר להשתמש ב- dynamic_cast, ושימוש ב- static_cast לא יחזיר תוצאות נכונות אם הפרמטרים יהיו אובייקטים שונים, שממוקמים בזיכרון בדומה לאובייקט B. הסבר שטוען שאפשר לשנות את המימוש הורדה של 2-4 נקודות מי שהסביר למה static_cast לא יעבוד אם האובייקטים מסודרים בצורה מסוימת בזיכרון קיבל בונוס של 2 נקודות. טעויות נפוצות שימוש ב- static_cast, מתוך מחשבה שאם הוא עובר קומפילציה, הוא יעשה את הבדיקה בצורה נכונה. תכנות מונחה עצמים
17 שאלה 5 public static int sums(int [] nums) { int result = 0; סעיף )5 1 נק'( Block<Integer> b = new Block<Integer> () { private int sum = 0; public Integer invoke(integer arg) { sum += arg; return sum; ; result = foreach(nums, b); return result; טעויות נפוצות בסעיף התבקשתם להשתמש בסוג הכי מתאים של.inner class מי שלא השתמש במחלקות אנונימיות איבד נקודות. מי שהשתמש ב- result בתוך local class איבד נקודות. סעיף )3 0 נק'( ניתן להוסיף מתודות, שדות ומחלקות מקוננות נוספות. בנוסף ניתן לרשת ממחלקה אחרת. public static int sums2(final int [] nums) { int result = 0; Block2<Integer> b = new Block2<Integer> () { private int count = 0; private int sum = 0; public Integer invoke() { sum += nums[count]; count++; return sum; ; result = foreach(nums.length, b); return result; סעיף )5 3 נק'( טעויות נפוצות.local class בכדי שנוכל לגשת אליו מתוך final חייב להיות nums סעיף )3 4 נק'( שינוי זה מוריד את ההגבלה כי local classes יכולות לגשת רק למשתנים לוקאליים שהם.final תכנות מונחה עצמים
18 סעיף )4 5 נק'( נקודות ניתנו גם לאלו שטענו כי זה לא שימושי וגם לאלה שכן בכפוף לנימוק שניתן. לא שימושי לכל משתנה יכול להיות טיפוס סטטי יחיד, בנוסף כאשר נוצר אובייקט ממחלקה אנונימית הוא יהיה מאוכסן במשתנה. ומכיוון שלמשתנה יש טיפוס סטטי יחיד זה שימושי כי מחלקה אנונימית תממש כמה ממשקים. שימושי ניתן לממש ככה ממשקים ממישקים מורכבים כמו iterable במחלקה אחת ללא צורך בגדרה מחלקה אנונימית בתוכה שמממשת את ה- iterator עצמו. למרות שלכל משתנה יכול להיות טיפוס סטטי יחיד, ה- runtime יכול לדעת כי האובייקט מממש כמה ממשקים ובעזרת המילה השמורה instanceof והמרות של המשתנה ניתן להשתמש בעובדה כי המחלקה האנונימית מממשת כמה מימשקים. תכנות מונחה עצמים
19 שאלת בונוס )5 נק'( סעיף )3 1 נק'( strong typing שפה שהיא strongly typed )בדר"כ( לא מאפשרת המרות לא מפורשות בין טיפוסים שונים. כלומר לא ניתן להציב תו לתוך מספר מבלי לבצע המרה מפורשת. static typing שפה שהיא statically typed היא שפה אשר מבצעת בדיקת טיפוסים בזמן קומפילציה ולא בזמן ריצה. סעיף )1 0 נק'(.Squeak סעיף )1 3 נק'( C++ תכנות מונחה עצמים
יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן
יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן מתרגלים: הנחיות: השאלות. כל על לענות עליכם משקל. שוות
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה
קרא עודלנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי
לנץ קרן מרצה: תכנותמונחהעצמים) 027622 ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחיות:.1.2.3.4.5.6.7 השאלות. כל על לענות עליכם משקל. שוות
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד
אוניברסיטת בן גוריון בנגב תאריך המבחן: 29.01.19 שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות 202.1.9031 מס' הקורס : מיועד לתלמידי : הנדסת תעשיה וניהול שנה תשע"ט א' סמ' א' מועד 3 שעות משך
קרא עודמהוא לתכנות ב- JAVA מעבדה 3
מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ
אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך
קרא עודיום שלישי, 14 ליולי 2015 מבחן סוף סמסטר - תכנות מונחה עצמים )236703( סמסטר אביב 2015, מועד א' מרצה: ערן גלעד מתרגלים: נורית מושקוביץ', הלאל עאסי, אליר
יום שלישי, 14 ליולי 2015 מבחן סוף סמסטר - תכנות מונחה עצמים )236703( סמסטר, מועד א' מרצה: ערן גלעד מתרגלים: נורית מושקוביץ', הלאל עאסי, אלירן וייס הנחיות: 1. במבחן 5 שאלות שוות משקל. עליכם לענות על כל
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד
קרא עודסדנת תכנות ב C/C++
פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:
קרא עודמבוא לתכנות ב- JAVA תרגול 7
מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה
קרא עודMicrosoft PowerPoint - rec3.ppt
תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת
קרא עודSlide 1
1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,
קרא עודמספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי
מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בינסקי הנחיות: יש לענות על כל השאלות. יש לענות על כל
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם
אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג,.6.013 משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם 8 עמודי שאלון )כולל עמוד זה(. עליכם לכתוב את התשובות על
קרא עודPowerPoint Presentation
תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב גרפים 1 תוכן עניינים סיכום ביניים מה היה לנו? מושג האלגוריתם, תכנות פרוצדורלי הכרות עם בעיות במדעי המחשב הכרות עם בעיות ברקורסיה מתקדמת (כולל (memoization תכנות מונחה עצמים (מחלקה, הורשה,
קרא עודמבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב
מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן שלוש שעות (180
קרא עודמבוא לתכנות ב- JAVA תרגול 11
מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה
קרא עודמבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו
מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב הממשקים Iterable,Set ו- Iterator תוכן עניינים מבנה נתונים מבנה נתונים מבנה נתונים הוא container של עצמים שמוגדרות עליו מספר פעולות למשל קבוצה של עצמים (אוסף ללא חזרות) עם הפעולות: הוספת
קרא עודלנץ קרן מרצה: תכנותמונחהעצמים) ( א' מועד 2012, חורף סמסטר סמסטר סוף מבחן קרבי אלעד רביב, אריאל מושקוביץ, אייל מתרגלים: הנחיות: הש
לנץ קרן מרצה: תכנותמונחהעצמים) 236703 ( א' מועד 2012, חורף סמסטר סמסטר סוף מבחן קרבי אלעד רביב, אריאל מושקוביץ, אייל מתרגלים: הנחיות:.1.2.3.4.5.6.7 השאלות. כל על לענות עליכם משקל. שוות שאלות 5 במבחן יוםשני
קרא עודMicrosoft PowerPoint - lec10.ppt
תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand
קרא עודפייתון
שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה
קרא עודSlide 1
מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות
קרא עודתכנות מונחה עצמים א' – תש"ע
1 תכנות מונחה עצמים והנדסת תוכנה תשע"ו 2 בנאי העתקה בניית העתק של אובייקט קיים. בניית העתק בעת העברת אובייקט לפונקציה. בניית העתק בעת החזרת אובייקט מפונקציה. ניתן להגדיר בנאי העתקה. אם לא מגדירים, אז הקומפיילר
קרא עודSlide 1
מבוא למדעי המחשב משפחות של מחלקות ומחלקות מופשטות תזכורת בשיעור הקודם ראינו מחלקה של Student והרחבה שלה למחלקה של Milgae למעשה Student יכול לעמוד בראש היררכיה שלמה של מחלקות שונות של סטודנטים למשל, בנוסף
קרא עודPowerPoint Presentation
מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי
אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך
קרא עודSlide 1
בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1- תרגול הורשה מחלקות אבסטרקטיות חריגים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה )aggregation( במחלקה
קרא עודהטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור
תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגוריתמים לפתרון בעית מסלולים קלים מציאת מסלולים קלים ביותר מצומת ביותר ממקור יחיד. כלומר, V לכל צמתי הגרף. בעיה אחרת הקשורה לבעיה זו היא בעית ה-(
קרא עודאוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי
אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', 6.2.2012 הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה מהכיתה במהלך
קרא עודPowerPoint Presentation
תוכנה 1 3 תרגול מס' מתודות ותיכון לפי חוזים חוזה בין ספק ללקוח חוזה בין ספק ללקוח מגדיר עבור כל שרות: תנאי ללקוח - "תנאי קדם" precondition - - תנאי לספק "תנאי אחר".postcondition לקוח ספק 2 תנאי קדם )preconditions(
קרא עודמבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי
מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5
קרא עודאוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבו
אוניברסיטת חיפה החוג למדעי המחשב.5.6 מבוא למדעי המחשב סמסטר א' תשע"ז בחינה סופית מועד א', 31.1.2017 מרצה: שולי וינטנר מתרגלים: סמאח אידריס, ראמי עילבוני, דולב שרון הנחיות: 1. משך הבחינה: 120 דקות. 2. היציאה
קרא עודSlide 1
מבוא למדעי המחשב תירגול 7: פונקציות 1 מה היה שבוע שעבר? לולאות מערכים מערכים דו-ממדיים 2 תוכנייה )call by value( פונקציות העברת פרמטרים ע"י ערך תחום הגדרה של משתנה מחסנית הקריאות 3 פונקציות 4 הגדרה של
קרא עודהגשה תוך שבוע בשעת התרגול
מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב את
קרא עודעוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ
עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכמה אופנים. בואו ניקח מחלקת צעצוע. אנחנו מעונינים להגדיר
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 9 חזרה על תכנות מונחה עצמים Part II ראינו בהרצאה ממשקים Set Iterable Iterator בתרגול היום חזרה על: ממשקים Iterator Iterable )iterator נראה: )set ממשק )מימוש SetAsLinkedList
קרא עודMicrosoft Word B
מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב
קרא עודMicrosoft Word - ExamA_Final_Solution.docx
סמסטר חורף תשע"א 18 בפבואר 011 הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב מרצה: מתרגלים: רן אל-יניב נועה אלגרבלי, גיא חפץ, נטליה זילברשטיין, דודו ינאי (אחראי) סמסטר חורף תשע" מבחן סופי פתרון (מועד
קרא עודMicrosoft PowerPoint - rec8.ppt
על טיפ ו סי ם וירו שה תרגול אוהד ברזילי אונ יברסיטת תל אביב תנ אי ק ד ם מופ שט תנאי קדם מופשט ראינו שבקבלנות משנה החוזה של המחלקה היורשת חייב לקיים 3 עקרונות: תנאי קדם יכולים להיות חלשים תנאי בתר יכולים
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 9 חזרה על תכנות מונחה עצמים Part II ראינו בהרצאה ממשקים Set Iterable Iterator בתרגול היום חזרה על: ממשקים Iterator Iterable )iterator נראה: )set ממשק )מימוש SetAsLinkedList
קרא עודמבוא למדעי המחשב - חובלים
החוג למדעי המחשב אוניברסיטת חיפה מבוא למדעי המחשב סמסטר א' תשע"ג בחינת סיום, מועד ב', 20.02.2013 מרצה: ריטה אוסדצ'י מתרגלת: נעמה טוויטו מדריך מעבדה: מחמוד שריף משך המבחן: שעתיים חומר עזר: ספר של Kernighan
קרא עודPowerPoint Presentation
תוכנה 1 Generics תרגול - 1 תכנות גנרי תמיכה בתכנות גנרי נוספה בגרסה 5 ניתן להגדיר מחלקות ושירותים גנריים מונע שכפול קוד )מוכללים( ניתן לכתוב תוכניות שאינן תלויות בטיפוסי המשתנים מאפשר בטיחות טיפוסים מנגנון
קרא עודפקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד
פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה 2-7012610-3 תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד ב' שם המרצה: ערן עמרי, ענת פסקין-צ'רניאבסקי חומר עזר:
קרא עודפתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.
פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. הדפסה ראשונה: מתבצעת לולאה שרצה מאפס עד אורך המחרוזת.
קרא עודמספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה
עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות
קרא עודתכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0
22 עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 2: 622, בצהריים,תא מספר 66 בקומת כניסה של בניין 3 מתרגל אחראי: אורי הוראות כלליות: כל עוד לא נאמר אחרת, כאשר הנכם מתבקשים לתאר אלגוריתם יש לספק את הבאות: תיאור
קרא עודתוכן העניינים
הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527
קרא עודמשימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק
משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות 2 הפשטה שאלות כצעד ראשון נפתור בעיה הרבה יותר פשוטה האם כבר
קרא עודMicrosoft PowerPoint - lec9.ppt
ת כנ ות מונ ח ה עצמי ם בשפת + +C ירוש ה אוהד ברזילי אונ יברסיטת תל אביב ירוש ה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand
קרא עודמבוא למדעי המחשב - חובלים
אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב סמסטר ב' תשע"ב בחינת סיום, מועד ב',.02..9.7 מרצה: אורן וימן מתרגלים: נעמה טוויטו ועדו ניסנבוים מדריכי מעבדה: מחמוד שריף ומיקה עמית משך המבחן: שעתיים חומר
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות
קרא עודתוכן העניינים
הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com
קרא עודתאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה
תאריך פרסום: 01.01.15 תאריך הגשה: 15.01.15 מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש להגיש בזוגות. -העבודה חייבת להיות מוקלדת. -הקובץ חייב
קרא עודSlide 1
מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן
קרא עודSlide 1
בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 תרגול מספר 9: הורשה מחלקות אבסטרקטיות ואתחול עצמים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה כאשר
קרא עודMicrosoft PowerPoint - lec9.ppt
תכ נות מונח ה עצמים בשפת ++C ירו שה אוה ד ברזילי אוני ברסיטת תל אביב ירו שה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer
קרא עודתרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש
תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש המתרגם משימה: תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם 2 שאלות האם כבר יש
קרא עודתורת הקומפילציה
תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר
קרא עודMicrosoft PowerPoint - rec1.ppt
תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout
קרא עודתוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1
תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 SWT בנויה על העיקרון של publish/subscribe אלמנטים בסיסיים )Widgets( מייצרים מאזינים )Listener( אירועים )Events(
קרא עודPowerPoint Presentation
1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a
קרא עודPowerPoint Presentation
תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם
קרא עודפתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (
פתרון 000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : num = 3, sif = r האם ספרת האחדות של sif שווה ל- num num 3 sif (1)-() (3) () אמת ) = ( 3 3 יודפס: 3. ב. פתרון שאלה 11 עבור הערכים: עבור סעיף
קרא עודמצגת של PowerPoint
מבוא כללי לתכנות ולמדעי המחשב תרגול מס' 1 דין שמואל dshmuel110@gmail.com 1 1. מנהלות מרצה: אמיר רובינשטיין, amirr@tau.ac.il שעות קבלה: לשאלות קצרות - מייד לאחר השיעור. ניתן לתאם במייל שעות אחרות. מתרגל:
קרא עודמתכונת עיצוב 3013
מדעי המחשב פרק ראשון Java שאלה 1 שאלה 1 נכתב ע"י ראמי ג'באלי C# Java 2 א. שאלה ב. הערה: במבחן כתוב שיש שלשה אחת בלבד של פנסים כאלו. ולמרות זאת נשאיר את המשתנה הבוליאני כך שאם נמצאו הפנסים בתחילת המערך
קרא עודמקביליות
תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה
קרא עודתשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(
תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv
קרא עודPowerPoint Presentation
== vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 12 מחסנית )Stack( memoization ראינו בהרצאה מחסנית Infix/Postfix Notations בתרגול היום מחסנית בדיקת איזון סוגריים בביטוי אריתמטי מימוש תור באמצעות מחסנית memoization דוגמאות
קרא עודתרגול 3 - מערכים
Introduction to Programming in Java תרגול 5 1 היום בתרגול void מה הן פונקציות הגדרת פונקציה, קריאה לפונקציה העברת ארגומנטים, החזרת ערך או דוגמאות 2 מוטיבציה לעיתים,אנו נזקקים לבצע פעולה מסוימת או לעשות
קרא עוד1
מבחן סיכום לקורס " עקרונות תכנות מונחה עצמים " תאריך הבחינה: 23.07.2017 4 שמות המרצים: ד"ר עזאם מרעי שם הקורס: עקרונות תכנות מונחה עצמים מספר הקורס: 202-15181 שנה: 2017 סמסטר: ב' מועד: ב' משך הבחינה: שלוש
קרא עודSlide 1
בעיית התוכנית הגדולה C תוכנית גדולה המבצעת פעולות רבות, יכולה להפוך לקשה מאוד לניהול אם נשתמש רק בכלים שלמדנו עד כה: 1. קשה לכתוב ולנפות את התוכנית,. קשה להבין אותה, 3. קשה לתחזק ולתקן אותה, 4. קשה להוסיף
קרא עודMicrosoft PowerPoint - 10_threads.ppt
נוש אים מתקדמים ב Java תכ נות מ ר ובה חו ט י ם אוהד ברזילי אוניברסיטת תל אביב מק בי ל יות ריבוי מעבדים processors) (multi זמן עיבוד slicing) (time ל עו מת חלוק ת רמת התהליך (multithreading) ההפעלה processes)
קרא עודMicrosoft Word - c_SimA_MoedB2005.doc
מרצה: שולי וינטנר. מתרגל: עזרא דאיה. מבוא למדעי המחשב בחינת מועד ב', סמסטר א' תשס"ה,.2.2005 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות:. ודאו כי בטופס שבידיכם עמודים. יש לכתוב
קרא עודSlide 1
מבוא לשפת C תירגול 8: פונקציות שבוע שעבר... מערכים מיזוג מערכים ממויינים מערכים דו-ממדיים מבוא לשפת סי - תירגול 8 2 תוכנייה פונקציות ברמת התקשורת הבין-אישית חלוקה לתתי בעיות בדומה למפתח של ספר קריאות גבוהה
קרא עודתכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח
תכנות דינמי פרק 6, סעיפים -6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח בסוף את הטוב ביותר. סכום חלקי sum) (subset הקלט: סדרה
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך
קרא עוד1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle ב
1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle בלבד.(http://moodle.tau.ac.il/) יש להגיש קובץ zip יחיד
קרא עודHomework Dry 3
Homework Dry 3 Due date: Sunday, 9/06/2013 12:30 noon Teaching assistant in charge: Anastasia Braginsky Important: this semester the Q&A for the exercise will take place at a public forum only. To register
קרא עודתוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש
תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- mdle בלבד.(http://mdle.tau.ac.il/)
קרא עוד2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק
דיפרנציאביליות של פונקציה סקלרית )המשך( כלל השרשרת S ( z) z + על המשטח מצאו נקודה בה מישור משיק מקביל : f ( ) + הפונקציה מוגדרת וגזירה ברציפות בכל M( ) שאלה נתון פרבולואיד אליפטי P ( z) + 6 + z + 8 למישור
קרא עודמועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו
מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: 26.01.2018 2 סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מורכבת מ- 6 שאלות. כל שאלה מזכה ב- 20 נקודות כך הנקודות
קרא עודSlide 1
מבוא למחשב בשפת C : מערכים חד ודו-ממדיים מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב". עודכן ע"י דן רביב נכתב על-ידי טל כהן, נערך ע"י איתן אביאור.
קרא עודאיטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl
איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodle בלבד.(http://moodle.tau.ac.il/) יש להגיש קובץ zip
קרא עוד1
תאריך הבחינה: 24.7.2016. שמות המרצים: ד"ר עזאם מרעי שם הקורס: עקרונות תכנות מונחה עצמים מספר הקורס: 202-15181 שנה: 2016 סמסטר: ב' מועד: א' משך הבחינה: שלוש שעות חומר עזר: אסור מבחן סיכום לקורס " עקרונות
קרא עודMicrosoft Word - c_SimA_MoedA2006.doc
מבוא למדעי המחשב בחינת מועד א', סמסטר א' תשס"ו,..006 מרצה: מתרגלת: גב' יעל כהן-סיגל. גב' ליאת לוונטל. משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות:. יש לענות על כל השאלות.. קראו
קרא עודMicrosoft Word - דוגמאות ב
הפקולטה למדעי המחשב פרופ' חיים גוטסמן, מר רן רובינשטיין עומר סטרולוביץ, כרמי גרושקו, אלכסנדר ליבוב, מיכאל בלטקסה, ראידה נעאמנה, שי מרקנטי, גיא שקד הטכניון - מכון טכנולוגי לישראל 3.10.2011 מבוא לתכנות מערכות
קרא עוד