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

גודל: px
התחל להופיע מהדף:

Download "1 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה חוברת הדרכה ותרגילים מלווה ליחידה תמ"ע פותח על ידי: אביטל גרינוולד ענת שלוס משה שטיינר מי"

תמליל

1 1 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה חוברת הדרכה ותרגילים מלווה ליחידה תמ"ע פותח על ידי: אביטל גרינוולד ענת שלוס משה שטיינר מיכל מלכה לצורך נוחיות, הדוגמאות וההסברים עבור #C ו- Java מופיעים ביחד. במקומות בהם יש הבדלים, הם יצוינו במפורש. הבדלים שלא יצוינו במפורש הם: שמות פעולות המתחילות באות גדולה או קטנה בהתאם למקובל בשפה, והטיפוס בוליאן בו נשתמש לחלופין ב- bool או.boolean 1- ירושה - 2 הרשאות גישה ]משה[ - 3 פעולה בונה - 4 הגדרה מחדש של פעולות 7 ]EVI - 5 מידול [ פולימורפיזם והמרות [ ]EVI - 7 מעקב תרשים עצמים [ ]EVI - 7 מעקב אחרי זימון פעולות )הגדרה מחדש של פעולות ופולימורפיזם( ]משה[ - 8 ממשקים 9- מחלקות מופשטות - 10 מילון מושגים )כולל מילים נרדפות ושמות המושגים באנגלית( ]מיכל + ]Evi )#C בלבד( ]משה[ - 11 נספח - תמ"ע באנדרואיד - 12 נספח - WinForm - שימוש בירושה נספח - תרגיל מסכם ]משה[

2 2 ירושה 1. ירושה מגדירה יחס היררכי בין מחלקות. תהליך הירושה בשפות מונחות עצמים מאפשר ליצור מחלקות חדשות על בסיס מחלקות קיימות. המחלקה החדשה יורשת את כל התכונות והפעולות של המחלקה המורישה, וניתן להוסיף לה תכונות ופעולות המייחדות אותה. ירושה היא אם כן סוג של הרחבה. מחלקה היורשת ממחלקה אחרת נקראת תת מחלקה.( subclass ) המחלקה המורישה נקראת מחלקת-על.( class (super הורשה מתקיימת בין מחלקות ולא בין אובייקטים. אנחנו מגדירים יחס ירושה כאשר מצהירים על המחלקה. עצמים של תת-המחלקה הם גם עצמים מטיפוס מחלקות-העל שלה. בשפות C# ו- Java ניתן לרשת רק ממחלקה אחת. שאלה מתגלגלת ]ענת[ חברת Ishimoto מייצרת רכבים פרטיים, משאיות ואוטובוסים. לפניכם כותרת המחלקה Vehicle public class Vehicle יצרן "Ishimoto";// protected static string MANUF = הוסיפו למחלקת הבסיס Vehicle עם התכונות הבאות: דגם, שנת ייצור ונפח מנוע. הגדירו תת מחלקה Truckולה התכונות הבאות: דגם, שנת ייצור, נפח מנוע, משקל מטען מקסימלי. הגדירו תת מחלקה Busולה התכונות הבאות: דגם, שנת ייצור, נפח מנוע, מספר נוסעים מקסימלי.

3 הרשאות גישה 3 ]משה[.2 קיימות 3 רמות של הרשאות גישה למשתנים ומתודות: פרטי,,private הרשאת גישה אך ורק מתוך המחלקה בה המשתנה מוגדר. זוהי גם ברירת המחדל. ציבורי,,public יש גישה כללית מכל מקום ברחבי הקוד, כולל לשינויים. יורש/חסוי,,protected מחלקות היורשות מהמחלקה בה מוגדר משתנה מסוג,proteced ניגשות אליו כאילו הוגדר בתוך המחלקה. עבור כל יתר המחלקות, המשתנה בחזקת פרטי. בנוסף, כאשר אובייקט ניגש למשתנה פרטי באובייקט אחר מאותו הסוג )אותה המחלקה(, אין חסימת פרטיות. הערה: בג'אוה הרחבת המחלקה נעשית על ידי החלפת נקודותיים ):( ב- extends. לדוגמה: class B extends A private: public: protected: private in the same class:

4 4.3 פעולה בונה פעולה בונה אינה עוברת בירושה. כדי לאתחל עצם מטיפוס תת-מחלקה צריך לאתחל את כל התכונות שלו. הן של מחלקת-העל והן את התכונות הנוספות של תת המחלקה. לשם כך נרצה לעשות שימוש בפעולה הבונה של מחלקת העל, באמצעות המילה השמורה. base שאלה מתגלגלת ]ענת[ הוסיפו פעולות בונות בשלושת המחלקות: Truck, Vehicle ו- Bus נקודה למחשבה איזו הרשאת גישה נתתם לתכונות במחלקה?Vehicle האם ניתן להגדירם כ?private

5 5 שאלת אתגר/העשרה ]ענת[ לפניך המחלקה WhoAmI public class WhoAmI private static WhoAmI me = null; private WhoAmI() public static WhoAmI GetMe() if (me == null) me = new WhoAmI(); return me; ( 1 )לפניך מספר הוראות שנכתבו הפעולה הראשית במחלקה.Program עבור כל הוראה ציין האם היא חוקית או לא. במידה וכן שרטט את תרשים העצמים המתקבל. במידה ולא נמק. (i) WhoAmI i1 = new WhoAmI(); ( 2 )כמה אובייקטים מסוג WhoAmI ניתן לבנות? נמק את תשובתך. (ii) WhoAmI i2 = WhoAmI.GetMe(); (iii) WhoAmI i3 = WhoAmI.me; -Singleton תבנית אשר נועדה למקרים בהם מעוניינים להגביל את יצירת המופעים של מחלקה. נעשה בה שימוש במקרים בהם נהיה מעוניינים להגביל את יצירת המופעים של מחלקה מסוימת למופע יחיד. מימוש התבנית חייב לעמוד בשני עקרונות: מופע יחיד של המחלקה, וגישה גלובלית האפשרות לגשת למופע מבלי ליצור מופע נוסף של המחלקה

6 6 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה הגדרה מחדש של פעולות דריסת פעולות ]משה[ לעיתים ההתנהגות שמתאימה למחלקת-העל אינה מתאימה לתת-המחלקה שלה. כדי לשנות פעולות שעברו בירושה, ניתן להגדירן מחדש בתת-המחלקה..4 כאשר אנו מגדירים בתת-מחלקה פעולה שחתימתה זהה לזו של פעולה המוגדרת במחלקת-העל שלה אנו מבצעים הגדרה מחדש Overriding לאחר שהגדרנו פעולה מחדש, הפעולה היא מחליפה את הפעולה המקורית. הגדרה מחדש של פעולה בתת-מחלקה גורמת "להסתרת" הגדרתה המקורית. כל זימון של הפעולה בתת- המחלקה יביא להפעלת מימוש הפעולה לפי ההגדרה החדשה בתת-המחלקה, ולא לפי הגדרתה במחלקת- העל. לעתים נרצה לגשת אל פעולה "מוסתרת", לשם כך נעשה שימוש במילה השמורה,base ובג'אווה super באמצעות base/super ניתן לפנות אך ורק לאיבר במחלקת העל הישירה של מחלקה, כלומר: רק רמה אחת למעלה. מכיוון שמחלקת העל כבר דרסה את הפעולה שלפניה, או השתמשה בפעולה בצורתה המורשת, לא נוכל לגשת אל אבות קדמונים, כלומר: השימוש ב- base.base או super.super אינו אפשרי. שאלה מתגלגלת במחלקות Bus, Truck שהוזכרו למעלה נרצה להוסיף פעולה מתארת, הפעולה ToString)( המחזירה מחרוזת המתארת את האובייקט. על המחרוזת להכיל את גם את שם היצרן, הנמצא במחלקת.Vehicle 1. כיתבו את ToString במחלקות היורשות המציגה את כל תכונות האובייקט בפורמט הבא: Vehicle: <Manuf>, model: <model>, year: <year>, engine: <volume>, weight: <weight> את שם היצרן יש לשלוף ממחלקת העל. 2. חיזרו על סעיף 1, ועכשיו השתמשו ב- ToString של מחלקת העל לשליפת שם היצרן.

7 7.5 מידול ] EVI [ שאלה פתוחה בה התלמידים יחליטו בעצמם על המידול הנכון, יבנו תרשים UML ויכתבו את כותרות המחלקות שאלה 1: מתאימה לשאלה במבחן מתכונת. ניתן להרחיב למשימה מורכבת יותר במעבדה. כתבה EVI מרעיון של שאלה של מרה, כמו בגרות 2012/19 בבית מלון "מנוחה לכל כיס" ישנם 50 חדרים משלושה סוגים: חדר רגיל, חדר אכסניה וחדר משודרג. במלון 5 קומות כאשר קומה 5 היא קומת VIP והיא ניתנת רק לחדר רגיל או לחדר משודרג. מחיר חדר בקומה 5 הוא בתוספת של 10% על מחיר הבסיס. המאפיינים של כל חדר: חדר-רגיל: מספר חדר, מספר קומה, מחיר בסיס, כמות מיטות, האם-פנוי?, האם-נקי? יחיד או זוג? חדר-אכסניה: מספר חדר, מחיר בסיס, כמות מיטות, האם-פנוי?, האם-נקי? מספר מתארחים חדר-משודרג: מספר חדר, מספר קומה, מחיר בסיס, כמות מיטות, האם-פנוי?, האם-נקי? יחיד או זוג? מספר-תוספות הפעולות שניתן לבצע על חדר: הזמנת חדר מתאפשרת במידה וכמות המוזמנים לחדר לא עוברת על כמות המקומות לאכלוס. במידה וניתן לבצע הזמנה לחדר הוא הופך להיות תפוס ולא נקי. חישוב מחיר מתבצע עבור חדר מאוכלס על פי הסוג שלו וכמות המתארחים בו. ניקוי חדר מתאפשר עבור חדר רגיל ומשודרג בלבד. מה קיים בכל סוג של חדר? חדר-רגיל מכיל 2 מיטות ומחירו משתנה בהתאם למספר האנשים בו- זוג או יחיד. ליחיד מחיר בסיס. עבור זוג יש לשלם תוספת של 50% על מחיר בסיס. חדר-אכסניה הינו חדר המכיל מיטות קומתיים ומחיר למיטה. כל מיטה מאכלסת שני מתארחים. חדר זה אין המלון דואג לניקיון. המחיר לתשלום הוא מחיר בסיס x מספר המיטות התפוסות. כלומר, מספר המיטות שיש בהם מתארחים. חדר-משודרג הוא חדר רגיל עם תוספות. מחירו מחושב על פי מחיר בסיסי ומספר התוספות. על כל תוספת יש להוסיף 2% למחיר הבסיס. בית המלון שומר מידע על כל החדרים במלון. פעולות הניתנות לביצוע: הזמנת חדר במידה ופנוי ומספר המתארחים אינו גדול ממספר המיטות בחדר. - ניקוי חדר על ידי צוות המלון. - יצירת חשבון עבור הזמנת חדר ליום על פי סוגו וכמות המוזמנים. - בדיקה אם יש חדר פנוי. - בדיקה אם המלון בתפוסה מלאה. - לקוחות יכולים לבצע הזמנה לחדר במידה ופנוי. בהזמנה יש לציין את פרטי החדר. לפניך תרשים היררכית המחלקות הנחוצות למחשוב הזמנת חדרים במלון. Room Hotel RegularRoom InnRoom מקרא: הכלה ירושה ImprovedRoom נוסף על המחלקות המתוארות בתרשים, נתונים 3 ממשקים

8 חוברת תמ"ע, 8 אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה הזמנת חדר // numpersons); interface IOrder boolean order(int interface IPrice double calcprice(); חישוב מחיר // interface IClean void clean(); ניקוי חדר // העתק לדף הבחינה את תרשים היררכיית המחלקות והוסף אליו את הממשקים במקומות המתאימים ביותר על פי העקרונות של תכנות מונחה עצמים. לציון מימוש ממשק. השתמש בסימון לכל מחלקה כתוב את: הכותרת שלה בשפת ג'אווה. התכונות שלה. לכל תכונה רשום את ההגדרה ב java כולל הרשאת גישה ותיעוד התכונה. הפעולות שלה. לכל פעולה רשום את הכותרת ב java כולל תנאי קדם ובתר של הפעולה. אין צורך לממש את הפעולות. אין צורך לכתוב פעולות בונות, פעולות קובעות ( set ) פעולות מאחזרות ( get ) ממש בג'אווה את הפעולה לחישוב המחיר עבור החדר בכל אחת מהמחלקות בהן היא מופיעה

9 9 Hotel פתרון שאלה 1 א- היררכית המחלקות והממשקים לפתרון הבעיה Room IOrder (interface) RegularRoom InnRoom ImprovedRoom IPrice (interface) public class RegularRoom extends Room implements IClean, IPrice protected int floornumber protected boolean couple; public boolean order(int numpersons) public void clean() public double calcprice() public class ImprovedRoom extends RegularRoom private int numextras; public double calcprice() public class InnRoom extends Room implements IPrice public double calcprice() public class Hotel private Room[] rooms; public void orderroom (int roomnumber, int numofpersons) public double calcprice(int roomnumber).. ב- מספר קומה 'אמת' אם זוג בחדר, 'שקר'-אחרת תנאי קדם: מספר אנשים תנאי בתר: הזמנת חדר אם אפשר ומחזיר 'אמת', 'שקר' אחרת ללא הזמנת חדר. תנאי קדם: אין תנאי בתר: מנקה חדר ומשנה מצב נקי ל- 'אמת' תנאי קדם: אין תנאי בתר: מחזיר חישוב תשלום עבור החדר מספר תוספות תנאי קדם: אין תנאי בתר: מחזיר חישוב תשלום עבור החדר תנאי קדם: אין תנאי בתר: מחזיר חישוב תשלום עבור החדר מערך חדרים IClean (interface) תנאי קדם: מספר חדר ומספר אנשים תנאי בתר: הזמנת חדר על פי הפרמטרים תנאי קדם: מספר חדר תנאי בתר: החזרת מחיר על החדר במידה וניתן לחדש מחיר חדר אחרת יחזיר 0

10 10 public void clean(int roomnumber) public boolean isfull() תנאי קדם: מספר חדר תנאי בתר: ניקוי חדר במידה וניתן תנאי קדם: אין תנאי בתר: אמת אם מלון בתפוסה מלאה, שקר אחרת. ג- פעולה לחישוב המחיר עבור החדר בכל אחת מהמחלקות בהן היא מופיעה. public double calcprice() double price = this.baseprice; if ( this.floornumber == 5 ) price *= 1.1; if ( this.couple ) price = price *1.5; return price; public double calcprice() double price = super.calcprice(); price = price + this.baseprice * this.numextras * 0.02; return price; public double calcprice() int numbads = this.numpersons/2; if (numbads%2==1) numbads++; return this.baseprice * numbads; מחלקתRegularRoom מחלקתImprovedRoom מחלקתInnRoom

11 11 שאלה : 2 ]ירושה, ממשקים, הכמסה,,פולימורפיזם, כתבה EVI מבוסס על , ו 20[ 2014, מתאימה לשאלה במבחן מתכונת ברשת חנויות מחשבים "פיסיטון" יש 20 חנויות. הרשת מוכרת ציוד היקפי למחשבים. מנהל הרשת מעוניין בתכנה שבעזרתה הוא יוכל לנהל טוב יותר את המלאי בחנויות הרשת. במיוחד הוא מתעניין במלאי של מדפסות, סורקים, פקסים ומדפסות משולבות. להלן המאפיינים של פריטים אלו: קוד מוצר, דגם, מחיר, כמות במלאי, לייזר או דיו, מהירות הדפסה מדפסת: קוד מוצר, דגם, מחיר, כמות במלאי, מהירות סריקה סורק: קוד מוצר, דגם, מחיר, כמות במלאי, מספר טלפון פקס: קוד מוצר, דגם, מחיר, כמות במלאי, לייזר או דיו, מהירות הדפסה או סריקה מדפסת משולבת: להלן הפעולות שיכולים לבצע כל אחד מהפריטים: מדפיסה מסמכים מדפסת: סורק מסמכים סורק: שולח ומקבל פקסים פקס: מבצעת על כל הפעולות הנ"ל מדפסת משולבת: קוד מוצר נקבע אופן אוטומטי על ידי המערכת. מספר הקוד המינימלי הוא 100. כל אחד מהמוצרים נמצא בכל אחת מחנויות הרשת ומכל מוצר יש דגמים שונים בכמויות שונות. הדרישות מהתוכנה ברמת החנות הן: limit מי הפריטים בחנות שהכמות שלהם קטנה ממספר מסוים מה השווי הכספי של כל המלאי בחנות הדרישות מהתוכנה ברמת הרשת הן: מי הפריטים שהכמות שלהם קטנה ממספר מסוים limit בכל הרשת. מה השווי הכספי של כל המלאי מכל חנויות הרשת עליך לתכנן את המחלקות והממשקים עבור כתיבת התוכנה לניהול מלאי החנות בנושא מדפסות, סורקים, פקסים ומדפסות משולבות באופן המתאים ביותר לעקרונות של תכנות מונחה עצמים: הכמסה, ירושה ופולימורפיזם. א- ב- סרטט את היררכית המחלקות והממשקים. סמן את הקשרים בין המחלקות ואת הקשרים בין המחלקות והממשקים. אין צורך לכלול בסרטוט את התכונות והפעולות. בעבור כל מחלקה שכללת בסרטוט רשום בג'אווה את כותרת המחלקה, התכונות והפעולות שלה. בעבור כל ממשק שכללת בסרטוט רשום בג'אווה את הכותרת וכותרות לפעולות. יש לכלול אך ורק את הפעולות הנחוצות כדי לענות על הדרישות מהתוכנה כפי שתוארו לעיל. יש לתעד כל תכונה וכל פעולה. אין צורך לממש את הפעולות במחלקות. אין צורך לרשום פעולות בונות, מאחזרות get וקובעות set ו. tostring

12 12 פתרון שאלה 2 א- היררכית המחלקות הנדרשות. Item Store NetStore interface IScan Scan Printer Fax interface IFax Interface IDo ComposedPrinter publicב abstract class Item - protected static int code=99; protected String model; protected double price; protected int amount; public class Fax extends Item implements IFax private String phone; public void sendfax(sting phone) public void recievefax(string phone) public class Scan extends Item implements ISan protected double velocity; public void scan() public class Printer extends Item private double velocity; private char layzerinc; public void print() public class ComposedPrinter extends Printer implements IFax, ISan public void sendfax(sting phone) public void recievefax(string phone) public void scan() public class Store implements IDo private Vector<Item> items; public class NetStore implements IDo private Store[] stores;

13 הממשקים- כותרת ופעולות: 13 public interface IFax לטלפון פקס שליחת // phone); public void sendfax(string מטךפון ממספר פקס קבלת // phone); public void recievefax(string public interface ISan מסמך סריקת scan();// public void public interface IDo מ פחות שהכמות בחנות פריטים מדפיס public void printamountlesslimit(int limit); // limit המוצרים של הכולל השווי את מחזיר // totalprice(); public double

14 14 תכונות ופעולות המחלקות: המחלקה התכונה קוד מוצר מודל Item מחיר כמות במלאי הפעולה תיעוד התכונה protected static int code=99; protected String mode; protected double price; protected int amount; תיעוד הפעולה המחלקה התכונה מהירות סריקה הפעולה מבצע סריקה תיעוד התכונה private double velocity; תיעוד הפעולה public void scan() Scan המחלקה התכונה האם לייזר או דיו. l עבור לייזר, i עבור דיו מהירות הדפסה הפעולה מבצע הדפסה תיעוד התכונה private char layzerinc; private double velocity; תיעוד הפעולה public void print() Printer המחלקה התכונה מספר טלפון הפעולה שליחת פקס לטלפון phone קבלת פקס מטלפון phone תיעוד התכונה private String phone תיעוד הפעולה public void sendfax(string phone) public void recievefax(string phone) Fax המחלקה התכונה מהירות הדפסה או סריקה 'אמת' אם לייזר, 'שקר'- אם דיו הפעולה שליחת פקס קבלת פקס סריקה הדפסה תיעוד התכונה private double velocity; private boolean layzerinc; תיעוד הפעולה public void sendfax(string phone) public void recievefax(string phone) public void scan() public void print() Composed Printyer המחלקה התכונה וקטור של פריטים הפעולה הפעולה מקבלת מספר שלם שמהווה כמות limit הפעולה מדפיסה את כל המוצרים שהכמות שלהם קטנה מ limit בחנות הפעולה מחזירה את השווי הכללי של כל הפריטים בחנות תיעוד התכונה private Vector<Item> items; תיעוד הפעולה public void printamountlesslimit (int limit) public double totalprice() private Store[] stores; public void printamountlesslimit (int limit) public double totalprice() מערך חנויות הפעולה מקבלת מספר שלם שמהווה כמות limit הפעולה מדפיסה את כל המוצרים שהכמות שלהם קטנה מ limit בכל הרשת הפעולה מחזירה את השווי הכללי של כל הפריטים ברשת Store NetStore

15 15 public class T protected String name; public T(String name) this.name = name; public String tostring() return "T:"+this.name; פולימורפיזם והמרות זיהוי שגיאות ] [EVI שאלה 1: [EVI], ירושה, מעקב, זיהוי עקרונות מונחה עצמים, מבוסס על שאלה 19 א בגרות 2013[ חלק א: לפניך המחלקות הבאות: public class RunTG public static void main(string[] args) T a1 = new T("dog"); T a2 = new G("cat"); G a3 = new G("me"); System.out.println(a1); System.out.println(a2); System.out.println(a3); System.out.println((T)a3); System.out.println(a3.getFather()); public class G extends T public G(String name) super(name); public String tostring() return "G:"+ super.tostring(); public T getfather() return new T(this.name); ) I ( עקוב אחר הפעולה הראשית בעזרת תרשים עצמים ורשום את הפלט. לפניך רשימה של מושגים הקשורים לתכנות למונחה עצמים: העמסת פעולות overloading דריסת פעולות overriding פולימורפיזם המרות. המרה כלפי מעלה והמרה כלפי מטה ירושה הרשאות גישה ( ii ) לגבי כל מחלקה מבין המחלקות:,T,G RunTG בחר מושג או מושגים הבאים לידי ביטוי במחלקה. הסבר את קביעתך.

16 16 חלק ב ( אין קשר לסעיף א( interfaces[, דומה לבגרות 2013, שאלה 18, סעיף א ] לפניך ההגדרות הבאות: public class Car public class Hybrid extends Car public class Engine extends Car implements IGazUsage public class FordMustang extends Engine implements IFordable 1. שרטט היררכית המחלקות. 2. לפניך 6 שורות קוד, עבור כל אחת מהן קבע אם היא תקינה או לא. נמק קביעתך. במידה ואינה תקינה ציין אם זו שגיאת הידור או ריצה. אם יש המרה ציין מאיזה סוג ומאיזו מחלקה לאיזו. a) Car c1 = new FordMustang(); b) IGazUsage e1 = new Engine(); c) IGazUsage e2 = new Hybrid(); d) FordMustang f1 = (FordMustang)e1; e) e2 = (Engine)c1; f) f1 = e1;

17 17 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה פתרון שאלה 1 חלק א ) I )מעקב ופלט public class RunTG public static void main(string[] args) T a1 = new T("dog"); T a2 = new G("cat"); G a3 = new G("me"); System.out.println(a1); System.out.println(a2); System.out.println(a3); System.out.println((T)a3); System.out.println(a3.getFather()); <T> a1 <T> a2 <G> a3 T:dog G:T:cat G:T:me G:T:me T:me T name: dog G name: cat G name: me ) ii ( זיהוי עקרונות מונחה עצמים במחלקה :T הרשאות גישה במחלקה G: ירושה, דריסת פעולות, במחלקה : Main פולימורפיזם והמרות כלפי מעלה פתרון שאלה 1 חלק ב לפניך ההגדרות הבאות: public class Car public class Hybrid extends Car public class Engine extends Car implements IGazUsage public class FordMustang extends Engine implements IFordable Car 1. שרטט היררכית המחלקות. Hybrid Engine FordMustang Interface IGazUsage Interface IFordable

18 18 2. לפניך 6 שורות קוד, עבור כל אחת מהן קבע אם היא תקינה או לא. נמק קביעתך. במידה ואינה תקינה ציין אם זו שגיאת הידור או ריצה. אם יש המרה ציין מאיזה סוג ומאיזו מחלקה לאיזו. a) Car c1 = new FordMustang(); b) IGazUsage e1 = new Engine(); c) IGazUsage e2 = new Hybrid(); d) FordMustang f1 = (FordMustang)e1; e) e2 = (Engine)c1; f) f1 = e1; תקיןFordMustang. הוא סוג של. Car ניתן ליצור עצם מתת-מחלקה והציבו במשתנה מטיפוס מחלקת העל. זו המרה כלפי מעלה מ FordMustang ל. Car תקיןEngine. מממש את הממשק. IGazUsage ניתן ליצור עצם ממחלקה והציבו במשתנה מטיפוס הממשק אותו הוא מממש. המרה כלפי מעלה מטיפוס Engine לטיפוס הממשק IGazUsage. שגיאת תחבירHybrid. אינו ממש את הממשק IGazUsage ולכן אי אפשר לבצע השמה זו. אין התאמה בטיפוסים. שגיאת ריצהe.1 נוצר כ. Engine יש כאן נסיון לבצע המרה מטיפוס מחלקת העל לטיפוס מחלקת הבת. ForMustang בזמן ריצה התכנית תגלה שאי אפשר לבצע המרה זו. תקיןc.1 נוצר כ FordMustang שהוא יורד מ Engine ולכן ניתן להמיר אותו למחלקת על. Engine מממשת הממשק IGazUsage ולכדן ניתן לבצע המרה למטיפוס המחלקה של טיפוס הממשק אותו היא מממשת. יש כאן שתי המרות: האחת מ FordMustang ל Engine השנייה: מ Engine ל. IGazUsage שתי ההמרות הן המרות כלפי מעלה. שגיאת תחביר. חוסר התאמה בטיפוסים. 1e נוצר כ Engine ואילו 1f הוא עצם מטיפוס FordMustang. Engine לא מכיר את הטיפוס. FordMystang הערה: השמה הפוכה היא נכונה. 1e1 = f שאלה ] 2 Evi, איתור שגיאות, ירושה, העמסת פעולות ודריסה פעולות, פולימורפיזם, מעקב ] בעמוד הבא קוד המחלקות Position, Position2, Position3, TestPosition א- ב- שרטט תרשים היררכית המחלקות קבע לגבי כל אחת מהשורות הבאות: 15 14, 13, 11, 9, 7, 5, 3, אם הן תקינות או לא. נמק תשובתך בכל מקרה! במידה וההוראה שגוייה. רשום האם שגיאת תחביר או ושגיאת ריצה. הצע דרך לתקן הוראות שגויות אם ניתן. ג- עקוב אחר הפעולה הראשית במחלקה TestPosition עבור שורות 1-12 מבחן שורות אלו. חובה ללוות את המעקב בתרשים עצמים. לאחר שתיקנת את כל השגיאות שגילית בסעיף ב'

19 19 public class Position מתאר מיקום בממד אחד // protected int x; public Position(int x) this.x = x; public void moveabsolute(int x) this.x = x; public void moverelative(int dx) this.x = this.x + dx; public String tostring() return "("+this.x+")"; public void decribe() System.out.println("Position in (x) axis"); public class Position3 extends Position2 מתאר מיקום בשלושה ממדים // private int z; public Position3(int x, int y, int z) super(x, y); this.z = z; public void moveabsolute(int x, int y, int z) super.moveabsolute(x, y); this.z = z; public void moverelative(int dx, int dy, int dz) super.moverelative(dx, dy); this.z = this.z + dz; public String tostring() return super.tostring()+","+this.z+")"; public void decribe() System.out.println("Position in (x,y,z) axis"); public class Position2 extends Position מתאר מיקום בשני ממדים // protected int y; public Position2(int x, int y) super(x); this.y = y; public void moveabsolute(int x, int y) super.moveabsolute(x); this.y = y; public void moverelative(int dx, int dy) super.moverelative(dx); this.y = this.y + dy; public String tostring() return "("+super.tostring()+","+this.y+")"; public void decribe() System.out.println("Position in (x,y) axis"); public class TestPosition public static void main(string[] args) 1) Position pos1 = new Position(3); 2) System.out.println(pos1); 3) pos1.moverelative(2); 4) System.out.println(pos1); 5) Position pos2 = new Position2(-1, 4); 6) System.out.println(pos2); 7) pos2.moveabsolute(3,0); 8) System.out.println(pos2); 9) Position3 pos3 = new Position3(2, 0, -3); 10) System.out.println(pos3); 11) pos3.moverelative(0, -2); 12) System.out.println(pos3); 13) Position3 posc =(Position3)pos2; 14) pos2 = pos3; 15) pos3 = pos1; המשך שאלה 2

20 20 חוברת תמ"ע, פתרון שאלה אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה Position TestPosition 1- שרטט תרשים היררכית המחלקות Position2 Position3 ב- קבע לגבי כל אחת מהשורות הבאות: 15 14, 13, 11, 9, 7, 5, 3, אם הן תקינות או לא. נמק תשובתך בכל מקרה! במידה וההוראה שגוייה. רשום האם שגיאת תחביר או ושגיאת ריצה. הצע דרך לתקן הוראות שגויות אם ניתן. שורה 3 שורה 5 שורה 7 שורה 9 שורה 11 שורה 13 שורה 14 שורה 15 שורה תקינה pos1.נוצר כעצם מטיפוס Position ול Position יש פעולה כזו עם חתימה כזו. שורה תקינה.ל Position2 יש פעולה בונה כזו, Position2 יורש מ Position ולכן אפשר להציג אותו במשתנה מטיפוס זה. הוראה שגוייה.מסתכלים על pos2 מנקודת מבט של. Position למחלקה Position אין פעולה כזו. אמנם יש פעולה עם שם כזה אבל חתימה שונה, לכן זו שגיאת הידור. תיקון ((Position2)pos2).moveAbsolute(3,0) :המרה לטיפוס Position2 ואז הפעלת הפעולה. שורה תקינה.לעצם מטיפוס Position3 יש פעולה בונה כזו וניתן להציג אותה במשתנה מטיפוס Position3 שורה תקינה.יורש מ Position2 ולכם יורש את כל הפעולות שלו. ל Position2 יש פעולה כזו עם חתימה כזו ולכן ניתן להפעיל אותה על pos3 שנוצר ומסתכלים עליו כ Position3 שגיאת ריצה.נוצר כ Position2. Position3 יורש מ Position2 ולכן ניתן לכתוב הוראת המרה כלפי מטה למחלקת הבת, כלומר מבחינה תחבירית אין בעיה. בזמן ריצה הקומפיילר יגלה שהעצם נוצר מטיפוס Position2 ולא יוכל להמירו לטיפוס. Position3 המרות מתבצעות בזמן ריצה שורה תקינה Position3.יורש מ position2 ולכן ניתן להמיר המרה מפורשת כלפי מעלה ממחלקת הבת למחלקת העל. הוראה שגוייה.שגיאת הידור pos1.נוצר כ, Position אי אפשר להציב אותו במשתנה מטיפוס Position3. אין התאמה בטיפוסים. ג- עקוב אחר הפעולה הראשית במחלקה TestPosition עבור שורות 1-12 לאחר שתיקנת את כל השגיאות שגילית בסעיף ב' מבחן שורות אלו. חובה ללוות את המעקב בתרשים עצמים. פלט (3) 2) <Position> pos1 Position 1) x: 3 3) <Position> pos1 Position x: 3 5 פלט (5) 4) 5) <Position> pos2 Position2 x: -1 y: 4 פלט ((-1),4) 6) Correction: ((Position2)pos2).moveAbsolute(3,0) 7) <Position2> pos2 Position2 x: 3 y: 0 פלט ((3),0) 8) <Position3> pos3 9) Position3 פלט ((2),0),-3) 10) x: 2 y: 0 z: -3 11) <Position3> pos3 Position3-3 z: x: 2 y: -2 פלט ((2),-2),-3) 12)

21 21 [ EVI 7. מעקב תרשים עצמים כולל דריסת פעולות [ EVI + Moshe ] שאלה [ 1 מעקב עם תרשים עצמים+ממשקים, מבוסס על בגרות 2008, שאלה, 20 שינוי של לפניך פרויקט ובו המחלקות הבאות: public class Base protected int x; public Base(int x) this.x = x; protected void dosomething() System.out.println("x is: "+this.x); public class Derived1 extends Base private int y; public Derived1(int x, int y) super(x); this.y = y; protected void dosomething() super.dosomething(); this.multiplication(); public void multiplication() System.out.println("y is: "+this.y); System.out.println("x*y is: "+this.x*this.y); public class MainBase public static void main(string[] args) Base[] arr = new Base[5]; arr[0] = new Derived1(3,11); arr[1] = new Derived2(15,0); arr[2] = new Derived3(-15, 5); arr[3] = new Base(120); arr[4] = new Derived2(13,3); for (int index=0; index<arr.length; index++) System.out.println("index is: "+index); arr[index].dosomething(); public class Derived2 extends Base private int z; public Derived2(int x, int z) super(x); this.z = z; protected void dosomething() super.dosomething(); if (this.z!= 0) this.division(); public void division() System.out.println("z is: "+this.z); System.out.println("x/z is: "+this.x/this.z); public class Derived3 extends Base private int w; public Derived3(int x, int w) super(x); this.w = w; protected void dosomething() super.dosomething(); System.out.println("w is : "+this.w); this.multiplication(); if (this.w!=0) this.division(); public void multiplication() System.out.println("x*w is: "+ this.x*this.w); public void division() System.out.println("x/w is: "+this.x/this.w);

22 22 public interface Inter1 public void multiplication(); א- ב- ג- שרטט תרשים היררכית המחלקות בצע מעקב אחר הפעולה main במחלקה MainBase וכתוב את הפלט. במעקב חובה להראות תרשים עצמים. הוסיפו למחלקות שני מימשקים : 1Inter ו. 2Inter להלן קוד הממשקים: public interface Inter2 public void division(); שנה את היררכיות המחלקות כך שיממשו את הממשקים 2Inter1, Inter עבור מחלקות שעברו שינוי, רשום את השינוי והסבר אותו. - שרטט את היררכיות המחלקות בהתאם לשינוי. - כתוב את כותרות המחלקות שעברו שינוי. -

23 23 פתרון שאלה [ 1 מעקב עם תרשים עצמים+ממשקים, מבוסס על בגרות 2008, שאלה, 20 שינוי של ]EVI א- שרטט תרשים היררכית המחלקות r MainBase Base Derived1 Derived2 Derived3 1) <Base> arr null ב- מעקב אחר הפעולה main במחלקה MainBase וכתוב את הפלט. )14=4+10( null null null null 2) <Base> arr Derived1 x= 3 y=13 Derived2 x= 15 z= 0 Derived3 x= -15 z= 5 Base x= 120 Derived2 x= 13 y= 3 3) index index<arr.length output 0 true index is: 0 x is: 3 y is: 11 x*y is: 33 1 true index is: 1 x is: 15 2 true index is: 2 x is: -15 w is : 5 x*w is: -75 x/w is: -3 3 true index is: 3 x is: true index is: 4 x is: 13 z is: 3 x/z is: 4 Inter1, Inter2 ג- היררכיות המחלקות כולל הממשקים MainBase Base Derived1 Derived2 Derived3 Interface Inter1 Interface Inter2 public class Derived1 extends Base implements Inter1 public class Derived2 extends Base implements Inter2 public class Derived3 extends Base implements Inter1, Inter2

24 24 שאלה 2 ]משה[ פולימורפיזם, או רב צורתיות, היא היכולת לראות אובייקט במספר צורות בו זמנית. כל מחלקה יורשת ממחלקת,Object ואין צורך לכתוב זאת במפורש. כלומר כל אובייקט הוא סוג של.Object בדוגמה שלפנינו, כלי תחבורה יכול להיות רכב, או סירה או מטוס. רכב יכול להיות משאית או אוטובוס. סירה יכולה להיות יאכטה או סירת מפרש. ומטוס יכול להיות מטוס סילון או מטוס בוכנה. כלומר, אם נגדיר משאית, נוכל להסתכל עליה באופנים הבאים: Truck truck = new Truck(); Car car = truck; Vehicle vehicle = truck; Object obj = truck; יצרנו עצם מסוג משאית, ואנחנו יכולים להשתמש בו ברמות שונות של הפשטה. בכל רמה יכולות להיות מוגדרות פעולות/שיטות שונות הזמינות לנו. למשל, אם המתודה GetCost)( מוגדרת ב- Truck בלבד, אזי השורות הבאות שגויות: int cost = car.getcost(); int cost = vehicle.getcost(); הגדרה מחדש של פעולות )דריסת פעולות( אם נגדיר פעולה במחלקה Vehicle ונגדיר אותה מחדש במחלקות היורשות, אזי הפעולה המוגדרת מחדש "דורסת" את קודמתה, והיא הקובעת בכל הרמות. הפעולה של מחלקת העל מוסתרת. public class Vehicle public virtual string GetMyClass() return I am a Vehicle ; public class Car : Vehichle public override string GetMyClass() return base.tostring() + : Car ; public class Truck : Car public override string GetMyClass() return base.tostring() + [Truck] ; הערה: מילות המפתח,virtual ו- override אינן קיימות ואינן נחוצות ב- Java בדוגמה שלמעלה, כל המשתנים: vehicle, car, truck בהפעילם את GetMyClass יקבלו אותה תשובה.

25 25 בהגדרת פעולה דורסת, ניתן לזמן את הפעולה אותה דרסנו/הסתרנו, על ידי הזימון:,base.GetMyClass)( ובג'אווה:.super.GetMyClass)( מה זימון זה יעשה? תרגלו את עצמכם: נתונות המחלקות.Vehicle, Car, Truck להלן תיאור חלקי שלהן: public class Vehicle private Date manufdate; public Vehicle(Date date) this.manufdate = date; public override string ToString() return "production day: " + manufdate; public class Car : Vehicle protected string brand; base(date) this.brand = brand; public class Truck : Car private string model; public Truck(string brand, string model, Date date) : base(brand, date) this.model = model; public override string ToString() return "Truck: " + brand + " " + model + "\n" + base.tostring(); Truck truck = new Truck("Volvo", "V5000", new Date(25,1,2010)); Console.WriteLine (truck); // (1) Console.WriteLine ((Car)truck); // (2) Console.WriteLine ((Vehicle)truck); // (3) Car c = new Car("Mercedes", new Date(17,7,2011)); Console.WriteLine (c); // (4) Console.WriteLine ((Object)c); // (5) Console.WriteLine ((Truck)c); // (6) מה יודפס בביצוע הקוד הבא, בשורות הממוספרות 1 עד 6. פתרון שאלה 2: (1) Truck: Volvo V5000 production day: 25/1/2010 (2) Truck: Volvo V5000 production day: 25/1/2010 (3) Truck: Volvo V5000 production day: 25/1/2010 (4) production day: 17/7/2011 (5) production day: 17/7/2011 שגיאת זמן ריצה. המרה שגויה (6)

26 26 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה שאלה 3: [ :EVI ירושה, דריסה, זיהוי שגיאות, מעקב, על בסיס ] 14/ /2013, לפניך המחלקות. FF, SS שני הסעיפים הבאים א ו ב מתייחסים למחלקות אלו, אך אינם קשורים זה לזה. ענה על שניהם. public class FF protected int num; public FF() this(10); System.out.println("FF(0)"); public FF(int num) this.num = num; System.out.print("FF(1): "); public void setnum(int num) this.num = num; public void add( int num) this.num += num; public String tostring() return "FF: num = " + this.num; public class Program public static void main(string[] args) (1) FF f1 = new FF(4); (2) Object o1 = f1; (3) o1.setnum(7); (4) SS s1 = new SS(13); (5) FF f2 = s1; (6) if (f2 instanceof SS) f2.setsupnum(7); (7) f2 = o1; (8) SS s2 = (SS)f1; public class SS extends FF private int num; public SS() this(5); System.out.println("SS(0)"); public SS(int num) super(num*2); this.num = num; System.out.print("SS(1): "); public SS(int num1, int num2) super(num1); this.num = num2; System.out.print("SS(2): "); public void setnum(int num) this.num = num; public void setsupnum(int num) super.num = num; public void add(int num) this.num += num; public String tostring() String str = "SS: num = " + this.num; str += ", " + super.tostring(); return str; סעיף א במחלקה Program בפעולה הראשית כתבו את ההוראות הבאות. קבע לגבי כל אחת מהשורות )1( )8( אם היא תקינה או לא.

27 27 אם היא תקינה, רשום את הפלט שמתקבל, אם אינה תקינה, ציין אם זו שגיאת הידור )קומפילציה( או שגיאת זמן ריצה. חובה לנמק תשובתך. במידה ושגיאת הידור, הצע דרך לתיקון. סעיף ב לפניך סדרה הוראות בפעולה הראשית, עקוב אחר ההוראות בעזרת תרשים עצמים ורשום את הפלט. (1) FF a = new FF(); (2) FF b = new SS(); (3) System.out.println("a:"+a); (4) System.out.println("b:"+b); (5) a.setnum(-2); (6) b.setnum(12); (7) System.out.println("a:"+a); (8) System.out.println("b:"+b); (9) b.add(2); (10) System.out.println("b:"+b); (11) ( (SS)b ).setsupnum(12); (12) System.out.println("b:"+b); (13) SS c = new SS(1, 2); (14) System.out.println("c:"+c);

28 28 ] Evi [ פתרון שאלה :3 איתור שגיאות והצעה לתיקון 1.5x8=12 סעיף א: תקין/לא תקין ההוראה FF תקין. יש פעולה בונה כזו, הצבת עצם מטיפוס FF f1 = new FF(4); במשתנה מאותו טיפוס. פלט :)1(FF תקין. כל המחלקות יורשות ממחלקה Object ולכן ניתן ;f1 Object o1 = להציב במשתנה זה. יש המרה בלתי מפורשת כלפי מעלה.. setnum אין פעולה כזו Object שגיאת הידור. ל o1.setnum(7); תקין. יש פעולה בונה כזו ומציבים במשתנה מאותו SS(13) SS s1 = new )1(FF(1):SS פלט הטיפוס. תקיןSS. יורשת מ. FF ניתן להציב משתנה ממחלקה ;s1 FF f2 = יורשת במחלקה העל. המרה בלתי מפורשת כלפי מעלה שגיאת הידור. נקודת המבט של 2f היא מטיפוס SS) if f2) instanceof המחלקה. FF למחלקה זו אין פעולה setsupnum f2.setsupnum(7); הצעת תיקון ( (FF) o1).setnum(7); if (f2 instanceof SS) ((SS)f2).setSupNum(7); שגיאת הידור. אין התאמה בטיפוסים. 2F מטיפוס, FF יש לבצע המרה מפורשת כלפי מטה אי אפשר להציב אליו עצם f2 = (FF) o1; מטיפוס Object שגיאת זמן ריצהf.1 נוצר כ. FF המרות מתבצעות בזמן ריצה. (1) FF a = new FF(); (2) FF b = new SS(); (3) System.out.println("a:"+a); (4) System.out.println("b:"+b); (5) a.setnum(-2); (6) b.setnum(12); (7) System.out.println("a:"+a); (8) System.out.println("b:"+b); (9) b.add(2); (10) System.out.println("b:"+b); (11) ( (SS)b ).setsupnum(12); (12) System.out.println("b:"+b); (13) SS c = new SS(1, 2); (14) System.out.println("c:"+c); 1) <FF> a f2 = o1; SS s2 = (SS)f1; סעיף ב מעקב עם תרשים עצמים output: FF(1): FF(0) 2) <FF> b SS output: FF(1): SS(1): SS(0) <FF>num = 10 <SS>num = 5 3) output: a:ff: num = 10 4) output; b:ss: num = 5, FF: num = 10 5) <FF> a 6) <FF> b FF num = 10 FF num = -2 SS <FF>num = 10 <SS>num = 12 7) output: a:ff: num = -2 8) output; b:ss: num = 12, FF: num = 10 9) <FF> b 10) output; b:ss: num = 14, FF: num = 10 SS <FF>num = 10 <SS>num = SS 11) <FF> b <FF>num = 12 12) output: b:ss: num = 14, FF: num = 12 <SS>num = 14 13) <SS> c output: FF(1): SS(2): 14) output: c:ss: num = 2, FF: num = 1 SS <FF>num = 1 <SS>num = 2

29 29 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה FF(1): FF(0) FF(1): SS(1): SS(0) a:ff: num = 10 b:ss: num = 5, FF: num = 10 a:ff: num = -2 b:ss: num = 12, FF: num = 10 b:ss: num = 14, FF: num = 10 b:ss: num = 14, FF: num = 12 FF(1): SS(2): c:ss: num = 2, FF: num = 1 פלט הקוד

30 30 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה Item ShoppingLis t 8. ממשקים [ EVI, לקוח מספר תכנות מבנה נתונים של הוראת המדעים ובגרויות ] שאלה [ 1 יחסים בין ממשקים למחלקות, המרות כלפי טיפוס הממשק, הגדרת מחלקה המממשת ממשק ] השאלה לקוחה ממבחני חזרה, צוות מדעי המחשב, האוניברסיטה העברית בירושלים, הוראת המדעים. א- התבונן בתרשים הבא המתאר יחסים בין מחלקות וממשקים Comparable(interfac e) Countable(interface) Family כתוב אילו מחלקות מתוארות בתרשים, ואילו מימשקים ממשת כל מחלקה. ב- נתונות שלוש פעולות בונות למחלקות Family, Item, ShoppingList public Family (int numofparents, int numofchildren) public Item(String name, double price) public ShoppingList(Item[] itemlist) בונה משפחה על פי הפרמטרים הנתונים בונה מוצר על פי הפרמטרים הנתונים בונה רשימת קניות על פי מערך נתון של מוצרים כמו כן, נתונים שני המימשקים Comparable בר-השוואה ו Countable בר-מנייה public interface Comparable public boolean isequal(object other); public boolean islessthan( Object other); public interface Countable public int count(); Family myfamily = new Family(2,3); Item item1 = new Item("butter",4.5); Item item2 = new Item("bread", 7.5); Item[] itemlist = item1,item2; ShoppingList slist = new ShoppingList(itemList); Comparable comp1; Countable count1; comp1 = slist; // count1 = item1; // count1 = slist; Item myitem = (Item)count1; // count1 = (ShoppingList)comp1; // int c1 = slist.count(); // int c2 = comp1.count(); // ג- בהינתן ההוראות הבאות והיחסים שהוגדרו בסעיף א', קבע עבור כל אחת מ 6 השורות הממוספרות האם היא: )1( תגרום לשגיאה )2( לא תגרום לשגיאה. הנח כי כל יתר השורות תקינות לחלוטין. בכל מקרה בו יש שגיאה, הסבר בקצרה מהי השגיאה. לא יתקבל ניקוד ללא מתן הסבר! ממש את המחלקה Family במלואה. על המחלקה לקיים את היחס המתואר בסעיף א' ולהכיל את הפעולה הבונה שמוגדרת בסעיף ב'. הוסף פעולות או תכונות הנראות לך הכרחיות למימוש המחלקה. הנח שפעולת המנייה מחזירה את מספר הנפשות במשפחה )הורים + ילדים )

31 31 פתרון שאלה [ 1 נכתב על ידי ] Evi א- המחלקה Item ShoppingList Family ממשת מימשק ממשת מימשק Comparable ממשת את המימשקים Comparable, Countable ממשת מימשק Countable ב- שורה 1: תקינה. slist הוא עצם מטיפוס המחלקה ShoppingList אשר ממשת את המימשק. Comaprable comp1 הוא עצם מטיפוס המימשק Comparable לכן ההמרה לעצם מטיפוס המימשק תקינה שורה 2: לא תקינה ותהייה שגיאת הידור. Item1 הוא עצם מטיפוס המחלקה Item אשר איננה ממשת את המימשק Count1.Countable הוא עצם מטיפוס המימשק. Countable המרה כזו אינה חוקית. שורה 3: לא תקינה ותגרור שגיאת ריצה. count1 הוא עצם מטיפוס המימשק Countable והוא מכיל הפנייה לעצם מטיפוס ShoppingList. ShoppingList מממשת את המימשק Countable ולכן הפעולה תעבור הידור אבל בזמן ריצה כאשר יש נסיון לעשות המרה לטיפוס מהמחלקה Item תופיע שגיאת ריצה. אי אפשר להמיר עצם מטיפוס ShoppingList לעצם מטיפוס. Item שורה 4: תקינה. comp1 מכיל את העצם slist שהוא עצם מטיפוס ShoppingList ולכן ניתן לבצע המרה חזרה כלפי מטה אל הטיפוס שממנו נוצר. שורה 5: תקינה. slist הוא עצם מטיפוס המחלקה ShoppingList אשר מממשת את המימשק Countable ולכן היא מכירה את הפעולה count ויכולה להפעיל אותה. שורה 6: לא תקינה ותהיה שגיאת הידור. Comp1 הוא עצם מטיפוס המימשק. Comparable מימשק זה אינו מכיל את הפעולה count לכן לא יכיר אותה ולא יכול לזמן אותה. public class Family implements Countable מספר ההורים // numofparents; private int מספר הילדים // numofchildren; private int public Family(int numofparents, int numofchildren) פעולה בונה על פי מספר הורים ומספר ילדים // this.numofparents = numofparents; this.numofchildren = numofchildren; ג- מימוש המחלקה Family public int count() מחזיר את מספר הנפשות במשפחה // return this.numofparents+this.numofchildren;

32 32 public interface Inter11 public boolean onea(object o); public int oneb(int num); public interface Inter2 public void two(); public interface Inter3 public void three(); public class Program public static void main(string[] args) [,EVI בהשראת בגרות 381_15_ _2017, ]. Program ו A, B, C, D והמחלקות Inter1, Inter2, Inter3 public class A implements Inter1. שאלה 2 לפניך הממשקים public class B implements Inter2. public class C extends B implements Inter3 public class D implements Inter3. א- ב- ג- צייר היררכית המחלקות והממשקים. כתוב את שמות הפעולות שחייבים לממש בכל אחת מהמחלקות.,A B, C, D נמק תשובתך. עבור כל אחד מהקטעים הבאים (d) (a) שלפניך, אם נכתוב אותם בפעולה הראשית במחלקה Program האם הקוד a Inter1 i1 = new Inter1(); b Inter2 i2 = new C(); c B b = new C(); d D d = b; e Inter3 i3 = (C)b; f D d = i3; g i3.three(); תקין או לא. נמק תשובתך בכל מקרה! במידה וההוראה שגוייה, ציין אם זו שגיאת תחביר )הידור( או ריצה. ד- הוסיפו לפעולה הראשית במחלקה Program את ההוראות הבאות: Inter2[] arr = new Inter2[2]; arr[0] = new B(); arr[1] = new C(); for (int k = 0; k < arr.length; k++) arr[k].two(); I am two of B I am two of C בצע שינויים מתאימים במחלקות הנדרשות בפרויקט כדי שיתקבל הפלט הבא בעקבות הרצת הפעולה הראשית במחלקה. Program כתוב את השינוי וציין באיזו מחלקה בצעת אותו.

33 33 פתרון שאלה [ 2 פתרון של ] EVI א- היררכית המחלקות והממשקים. A B D Inter1 (interface) C Inter2 (interface) Inter3 (interface) כתוב את שמות הפעולות שחייבים לממש בכל אחת מהמחלקות.,A B, C, D נמק תשובתך. ב- נימוק הפעולות המחלקה מממשת את הממשק Inter1 public boolean onea(object o) A public int oneb(int num) מממשת את הממשק Inter2 public void two B אין צורך לממש את הפעולה two כי יורשת אותה three() public void C אבל יש צורך לממש את הפעולות B מהמחלקה מהממשק, Inter3 אותו היא מממשת מממשת את הממשק Inter3 public void three() D ג- עבור כל אחד מהקטעים הבאים (d) (a) שלפניך, אם נכתוב אותם בפעולה הראשית במחלקה Program האם הקוד תקין או לא. במידה וההוראה שגוייה, ציין אם זו שגיאת תחביר )הידור( או ריצה. a Inter1 i1 = new שגיאת תחביר. אין ליצור עצם מטיפוס הממשק Inter1(); b ;()C Inter2 i2 = new תקין. המחלקה C מממשת את הממשק Inter2 ולכן ניתן לבצע המרה לא מפורשת כלפי מעלה מטיפוס המחלקה לטיפוס הממשק אותו היא מממשת. c ;()C B b = new ולכן ניתן ליצור עצם ממחלקת הבת ולהמיר אותו המרה לא תקין. C יורש מ B מפורשת כלפי מעלה למחלקה אותה מרחיב. d ;b D d = שגיאת תחביר. אין קשר בין המחלקות. חוסר התאמה בטיפוסים. e (C)b; Inter3 i3 = תקין. b נוצר מטיפוס המחלקה C ולכן ניתן לבצע המרה מפורשת ממחלקת העל B אל מחלקת הבת אשר ממנה נוצר. בנוסף C מממש את הממשק Inter3 ולכן ניתן לבצע עליו המרה מהמחלקה לטיפוס הממשק אותו הוא מממש. f ;i3 D d = שגיאת תחביר. אמנם גם מחלקה D מממשת את הממשק Inter3 אבל i3 נוצר מטיפוס C. אין קשר בין הטיפוסים. g i3.three(); תקין. לממשק inter3 יש פעולה כזו three() ולכן יכול לבצע אותה. ד- הוסיפו לפעולה הראשית במחלקה Program את ההוראות הבאות: בצע שינויים מתאימים במחלקות הנדרשות בפרויקט כדי שיתקבל הפלט הבא I am two of B I am two of C בעקבות הרצת הפעולה הראשית במחלקה. Program כתוב את השינוי וציין באיזו מחלקה בצעת אותו. Inter2[] arr = new Inter2[2]; arr[0] = new B(); arr[1] = new C(); for (int k = 0; k < arr.length; k++) arr[k].two(); השינוי public void two() System.out.println("I am two of B"); public void two() System.out.println("I am two of C"); המחלקה B C

34 34 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה 9. מחלקות מופשטות [ לא חובה, אבל מומלץ אם יש זמן ללמד ]

35 35 ]מיכל + ]EVI 10. מילון מושגים )כולל מילים נרדפות ושמות המושגים באנגלית( מושג באנגלית משמעות דוגמא הכמסה Encapsulation מימוש עקרון הסתרת המידע. חסימת גישה למשתני המחלקה מבחוץ. ישנן מספר הרשאות גישה: public ציבורי, כל אחד יכול לגשת protected מאפשר גישה למחלקות היורשות private פרטי, גישה רק בתוך המחלקה עצמה נפוץ בפרק זה: מחלקת מכונית יורשת מכלי תחבורה, אם נרצה שלמחלקת מכונית תוכל לעשות שימוש בתכונות של מחלקת כלי תחבורה- נגדיר את התכונות של מחלקת כלי תחבורה כ- protected. Inheritance ירושה היכולת להרחיב )extends( מחלקה קיימת. המחלקה החדשה מקבלת בירושה את כל התכונות והפעולות של מחלקת הבסיס. בין המחלקה היורשת למחלקת הבסיס מתקיים יחס "סוג של". מחלקת "מכונית" יורשת ממחלקת "כלי תחבורה" ולכן מקבלת את כל התכונות והפעולות שלה. מקיים בין המחלקות היחס: מכונית היא סוג של כלי תחבורה רב צורתיות- Polymorphism פולימורפיזם היכולת להסתכל על אותו אובייקט בצורות שונות. הסתכלות אחידה על אובייקטים שונים ויחד עם זאת להתאים לכל אחד את ההתנהגות שמתאימה לו. אובייקט מטיפוס יאכטה, ניתן להסתכל עליו כעל "סירה" או כעל "כלי תחבורה" אוטובוס, יאכטה ומטוס- ניתן להסתכל עליהם כעל כלי תחבורה ולהפעיל את פונקציית tostring שתחזיר מחרוזות שונות המתאימות לכל אחד מהכלי תחבורה. Interface ממשקים הגדרת התנהגות ללא מימוש. בממשק נגדיר פעולות ללא מימוש וקבועים. מחלקה יכולה לבחור לממש את הממשק אך היא מתחייבת לממש את כל הפעולות שהוגדרו בו. "מתפקד כ" הפשטה Abstraction הגדרת מחלקה מופשטת מייצגת מושג או רעיון מופשט, שימושי כאשר יש מכנה משותף בין מחלקות שונות. כולן ירשו מהמחלקה המופשטת ולכל אחת מהן מימוש ייחודי משלו לפעולות השונות. לא ניתן ליצור עצם ממחלקה מופשטת. לדוגמה נגדיר מושג "צורה" בעלת שם, מיקום על המסך וצבע. ממנה ירשו צורות שונות, למשל: מלבן, משולש וכדומה. לגבי כל צורה יורשת ניתן לצייר אותה על המסך, לחשב את השטח שלה ועוד. העמסה Overloading העמסת פעולות. היכולת להגדיר מספר פעולות בעלות אותו שם הנבדלות ביניהן בפרמטרים המועברים לפעולה במספר או בטפוס. הגדרה של מספר בנאים במחלקה: בנאי שלא מקבל פרמטרים, בנאי שמקבל פרמטר מסוג שלם, בנאי שמקבל פרמטר מסוג מחרוזת, בנאי שמקבל שני פרמטרים וכו' דריסה דריסת פעולות. מימוש מחדש של פעולה במחלקת הבת שירשה ממחלקת העל. הפעולה זהה בחתימתה לפעולה המקורית., כלומר אותו השם ואותן הפרמטרים המעברים לפעולה. במחלקת מכונית הוגדרה הפעולה tostring המחזירה מחרוזת המתארת את המכונית )יצרן ושנת ייצור(. מחלקת אוטובוס היורשת ממחלקת מכונית קיבלה את פעולה זו אך היא לא מתאימה לה. כתיבה מחדש של פעולת tostring במחלקת אוטובוס נקראת דריסה. Overriding

36 36 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה 1. דוגמא ל- upcasting : Car b1 = new Bus(); אוטובוס הוא סוג של מכונית וניתן להסתכל עליו מנקודת מבט של מכונית. Casting המרה ישנן שתי סוגי המרות: 1. -upcasting המרה כלפי מעלה. השמה של עצם מסוג תת- מחלקה בתוך עצם ממחלקת האב. נחשבת להמרה בטוחה. 2. -downcasting המרה כלפי מטה ממחלקת האב אל מחלקת אל מחלקת הבן. המרה לא בטוחה. נעשה זאת בצורה מפורשת )כתיבת שם המחלקה בסוגריים לפני העצם( ורק כשאנחנו יודעים בוודאות שאכן העצם נוצר כעצם ממחלקת הבן. יש לבדוק שאכן ניתן לבצע המרה זו בגאווה, בעזרת instanceof בסי שארפ, בעזרת typeof 2. דוגמא ל- :downcasting Car c1 = (Bus) b1; b1 נוצר מטיפוס Bus אבל נקודת המבט שלו היה של. Car בוצעה המרה מפורשת כלפי מטה מטיפוס.Car אל טיפוס מחלקת הבת Car if (c1 instanceof Bus) if (c1 typeof(bus) ) תכונת מחלקה תכונת מופע של עצם תכונה השייכת למחלקה עצמה תכונה השייכת למופע של מסוים של העצם שנוצר. נוצרת כבר בעת הצהרה של שם המחלקה נוצר רק כאשר נוצר העצם גישה אליה מחוץ למחלקה תהייה על ידי שם המחלקה גישה אליה מחוץ למחלקה תהייה על ידי שם העצם בתוך המחלקה גישה אליה בעזרת המילה שם המחלקה בתוך המחלקה גישה אליה בעזרת המילה this דוגמה private static int capacity=5; private double currentamount ; הערות: אין עדיין מופע של Bucket Bucket b1 ; Bucket(); b1=new מופע נוצר b1.fill(3); System.out.println(b1.getCurrentAmount( )); גישה אל תכונה ופעולה של עצם )(פעולה.שם העצם b1.getcurrentamount() תכונה של מחלקה נוצרת עוד לפני יצירת המופע הראשון. היא שייכת למחלקה ולא לעצם ספציפי פנייה למשתנה מחלקה: שייכת למחלקה ולא לעצם ספציפי *static- שם המשתנה. שם מחלקה Bucket. capacity; public int getcapacity return Bucket.capacity; תכונה של ** capacity- Bucket <Bucket> b1 Bucket currentamount = 0 3 Bucket.capacity 5 דוגמה לתרשים עצמים: תכונה משותפת לכל העצמים מטיפוס Bucket תכונת מופע שלהעצם b1

37 37 חוברת תמ"ע, אביטל גרינולד, ענת שלוס, משה שטיינר, מיכל מלכה 11. נספח - תמ"ע באנדרואיד ]ענת[ כל מסך באפליקציה מוגדר ע"י המחלקה.Activity בבואנו ליצור מסך חדש עלינו לבנות מחלקה חדשה המרחיבה )יורשת( את מהמחלקה Activity. כאשר נפתח מסך באפליקציה מערכת ההפעלה מזמנת את הפעולה oncreate המוגדרת במחלקה.Activity ועלינו להגדיר אותה מחדש )override( בתת המחלקה שנבנה. 2 1 כל רכיב גרפי שנרצה למקם על המסך יהיה מסוג.View כלומר כל הכפתורים, תיבות הטקסט, תמונות וכו' הם כולם View. 3 סוג של.View כל המחלקות הללו יורשות מהמחלקה כאשר אנו מקבלים הפניה לאותם רכיבים באמצעות הפעולה findviewbyid אנו מקבלים חזרה הפניה מהטיפוס.View במידה ונרצה לגשת לתכונות של אותו רכיב שמוגדרות בתת המחלקה ולא במחלקת העל View עלינו לבצע המרה כלפי מטה ( downcasting). 4 כאשר נרצה להגיב ללחיצה על כפתור יהיה עלינו להגדיר מאזין.)Listener( לשם כך נממש את הממשק onclick. 6 OnClickListener. 5 מה שיחייב אותנו לממש את פעולת הממשק public class MainActivity extends Activity implements View.OnClickListener 1 5 private TextView tvname; private Button btnsave; 3 protected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); tvname = (TextView)findViewById(R.id.tvName); btnsave = (Button) findviewbyid(r.id.btnsave); 4 btnsave.setonclicklistener(this); public void onclick(view view) Toast.makeText(this, "click", Toast.LENGTH_LONG).show();

38 38 ]משה[.12 נספח - WinForm - שימוש בירושה, #C בלבד הנחת עבודה: המורה והתלמידים מכירים את סביבת,Windows Forms Applications ברמה בסיסית. משחק הזכרון: התרגיל אינו מכיל את כל ההנחיות למימוש המשחק עח ידי התלמידים, אלא מתמקד בהיבט של ירושה הרלוונטי לחוברת תרגילים זו. במשחק הזכרון מחולקים זוגות קלפים באופן אקראי עם פניהם כלפי מטה, ומסודרים במטריצה, מערך דו-מימדי. בדוגמה שלפנינו יש 10 זוגות, ובסה"כ 20 קלפים: על השחקן לחשוף שני קלפים על ידי העכבר. אם זהו זוג תואם, הקלפים ישארו גלויים, אחרת יוסתרו שנית: נוכל לממש את המשחק בכמה אופנים, נתמקד בשניים: נגדיר מערך דו-מימדי של כפתורים, ובמקביל אליו מערך דו-מימדי של שלמים: Button [,] board = new Button[4,5]; int [,] cards = new int [4,5]; שני המערכים ביחד מספקים לנו פתרון מלא: מצד אחד כל התמיכה הגרפית במיקום, צבע, פונטים, לחיצה על עכבר ועוד. ומצד שני מערך השלמים מספק לנו את ערך הקלף במקום מסוים במערך..1

39 39 public class Card : Button public int cardvalue; public bool exposed; Card [,] board = new Card[4,5]; 2. נגדיר מחלקה חדשה קלף,,Card היורשת מ- Button : כעת נוכל להגדיר מערך דו-מימדי של קלפים: עכשיו בתכנית שלנו אנו מטפלים במערך אחד המכיל את כל היכולות של,Button עם כל התוספות שלנו: ערך הקלף, האם נחשף? ועוד נסו בעצמכם.

40 נספח - תרגיל מסכם ]משה[ דוגמה למבנה אפשרי שיכול לשמש להרכבת שאלה פתוחה על כל הרמות בתמ"ע התבוננו בתרשים ה- UML למעלה, ובתרשים במצורף לפרק 8, וענו על השאלות הבאות: ממשו את המחלקה תאריך,.Date יש להוסיף: a. פעולה בונה המקבלת את כל התכונות: יום, חודש ושנה. b. פעולה בונה מעתיקה. המקבלת תאריך אחר, ובונה תאריך זהה. c. הפעולה CompareTo מקבלת תאריך אחר ומחזירה 0 אם שני התאריכים זהים, מספר חיובי אם התאריך שהתקבל מאוחר יותר )צעיר יותר( מהתאריך הנוכחי. אחרת תחזיר מספר שלילי. הגדירו את הממשקים ICar, IEngine בנו את המחלקות.Vehicle, Car, Boat, Airplane דאגו להוסיף את כל הפעולות הנחוצות, התכונות, והזימונים לפעולות הבונות. הוסיפו את תת המחלקות המתוארות בתרשים בפרק 8. כיתבו תכנית ראשית המציגה למשתמש את תפריט הפעולות הבא: זו דוגמה בלבד! ניתן ורצוי להרחיב את מיגוון האפשרויות בתפריט. הרעיון המרכזי: בנו מחלקה חברה,,Company אשר לה מספר תכונות: שם החברה, שנת הקמה, שם המנהל, ורשימה של כלי תחבורה מסוג.Vehichle

41 41 הפעולות השונות יוסיפו, ימחקו, ישנו אובייקטים הנמצאים ברשימה. האובייקטים יהיו כולם כלי תחבורה, אבל מסוגים שונים. יש פעולות שתעבודנה על כל כלי תחבורה, למשל גיל כלי התחבורה. ויש פעולות המתאימות רק לתת מחלקות. public class Vehicle מנוע נפח// enginevol; protected int דגם // model; protected string שנת יצור // year; protected int יצרן. MANUF="Ishimoto";// protected static string public Vehicle(int vol, string model, int year) this.enginevol = vol; this.model = model; this.year = year; פתרון ] Moshe [ public class Truck : Vehicle משקל מקסימלי // maxload; private int public Truck(int vol, string model, int year, int load) : base(vol, model, year) this.maxload = load; public class Bus : Vehicle מספר נוסעים // maxpassengers; private int public Bus(int vol, string model, int year, int pass) : base(vol, model, year) this.maxpassengers = pass;

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

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

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב משפחות של מחלקות ומחלקות מופשטות תזכורת בשיעור הקודם ראינו מחלקה של Student והרחבה שלה למחלקה של Milgae למעשה Student יכול לעמוד בראש היררכיה שלמה של מחלקות שונות של סטודנטים למשל, בנוסף

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד

קרא עוד

Slide 1

Slide 1 1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים

קרא עוד

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

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

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

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

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(

קרא עוד

Slide 1

Slide 1 בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1- תרגול הורשה מחלקות אבסטרקטיות חריגים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה )aggregation( במחלקה

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

Microsoft PowerPoint - rec3.ppt

Microsoft PowerPoint - rec3.ppt תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,

קרא עוד

PowerPoint Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל

קרא עוד

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

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

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות

קרא עוד

Slide 1

Slide 1 בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 תרגול מספר 9: הורשה מחלקות אבסטרקטיות ואתחול עצמים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה כאשר

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 11 מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה

קרא עוד

Slide 1

Slide 1 מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת

קרא עוד

Microsoft PowerPoint - rec8.ppt

Microsoft PowerPoint - rec8.ppt על טיפ ו סי ם וירו שה תרגול אוהד ברזילי אונ יברסיטת תל אביב תנ אי ק ד ם מופ שט תנאי קדם מופשט ראינו שבקבלנות משנה החוזה של המחלקה היורשת חייב לקיים 3 עקרונות: תנאי קדם יכולים להיות חלשים תנאי בתר יכולים

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב הממשקים Iterable,Set ו- Iterator תוכן עניינים מבנה נתונים מבנה נתונים מבנה נתונים הוא container של עצמים שמוגדרות עליו מספר פעולות למשל קבוצה של עצמים (אוסף ללא חזרות) עם הפעולות: הוספת

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם

קרא עוד

PowerPoint Presentation

PowerPoint Presentation == vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1 תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 SWT בנויה על העיקרון של publish/subscribe אלמנטים בסיסיים )Widgets( מייצרים מאזינים )Listener( אירועים )Events(

קרא עוד

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

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

קרא עוד

מתכונת עיצוב 3013

מתכונת עיצוב 3013 מדעי המחשב פרק ראשון Java שאלה 1 שאלה 1 נכתב ע"י ראמי ג'באלי C# Java 2 א. שאלה ב. הערה: במבחן כתוב שיש שלשה אחת בלבד של פנסים כאלו. ולמרות זאת נשאיר את המשתנה הבוליאני כך שאם נמצאו הפנסים בתחילת המערך

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 3 תרגול מס' מתודות ותיכון לפי חוזים חוזה בין ספק ללקוח חוזה בין ספק ללקוח מגדיר עבור כל שרות: תנאי ללקוח - "תנאי קדם" precondition - - תנאי לספק "תנאי אחר".postcondition לקוח ספק 2 תנאי קדם )preconditions(

קרא עוד

Microsoft Word - pitaron222Java_2007.doc

Microsoft Word - pitaron222Java_2007.doc 1 מדעי המחשב 2 יחידות לימוד פתרון בחינת הבגרות פרק א a mul k k a פלט b זוגי? b :1 Ï 3 1 5 1 5 F קלט: 3, 5, 8, 4 20 2 8 40 40 3 4 4 F :2 Ï m x x 0 פלט 70 x 50 0 א. 10 F 1 64 2 2 51 30 F -4 F ב. ג. 1- (כל

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

PowerPoint Presentation

PowerPoint Presentation 1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a

קרא עוד

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

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

קרא עוד

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt מרחב הש מות (namespace) אוהד ברזילי אוניברסיטת תל אביב מה בתו כנית? לקוח וס פק במערכת תוכנה ממשקים הכרת מרחב השמות מניעת תלות פוטנציאלית בין רכיבים במערכת ע"י עיצוב חלופי של מבנה הממשקים 2 א ונ י ב רס

קרא עוד

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

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

קרא עוד

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - rec1.ppt תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך

קרא עוד

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

מבחן בפיתוח מערכות תוכנה בשפת Java ( ) עמוד 1 מתוך 10 )0368-3056( מבחן בפיתוח מערכות תוכנה בשפת Java בית הספר למדעי המחשב אוניברסיטת תל אביב סמסטר ב' תשס"ח, מועד ב' תאריך הבחינה: 24.09.2008 מרצה: אוהד ברזילי חומר עזר מותר בשימוש: אין משך הבחינה:

קרא עוד

פייתון

פייתון שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה

קרא עוד

Slide 1

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

קרא עוד

Slide 1

Slide 1 שיעור מספר 7: "אמא יש רק אחת" )הורשה I( שחר מעוז בית הספר למדעי המחשב על סדר היום יחסים בין מחלקות ירושה כיחס is-a טיפוס סטטי וטיפוס דינמי המחלקה Object מחלקות מופשטות 2 מלבן צבעוני נרצה לבנות מחלקה המייצגת

קרא עוד

מבוא למדעי המחשב, סמסטר א', תשס"ח תרגול מס' 2

מבוא למדעי המחשב, סמסטר א', תשסח תרגול מס' 2 מבוא למדעי המחשב תרגול מס' 2 נושאים משתנים טיפוסים אופרטורים פונקציות מתמטיות מהמחלקה Math המרת טיפוסים תנאים ולולאות 1 2 תזכורת משיעור קודם תזכורת... תכנית מחשב נכתבת כטקסט בקובץ. הטקסט כתוב בשפת תכנות

קרא עוד

Tutorial 11

Tutorial 11 מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י

קרא עוד

Microsoft PowerPoint - 10_threads.ppt

Microsoft PowerPoint - 10_threads.ppt נוש אים מתקדמים ב Java תכ נות מ ר ובה חו ט י ם אוהד ברזילי אוניברסיטת תל אביב מק בי ל יות ריבוי מעבדים processors) (multi זמן עיבוד slicing) (time ל עו מת חלוק ת רמת התהליך (multithreading) ההפעלה processes)

קרא עוד

1

1 מבחן סיכום לקורס " עקרונות תכנות מונחה עצמים " תאריך הבחינה: 23.07.2017 4 שמות המרצים: ד"ר עזאם מרעי שם הקורס: עקרונות תכנות מונחה עצמים מספר הקורס: 202-15181 שנה: 2017 סמסטר: ב' מועד: ב' משך הבחינה: שלוש

קרא עוד

Microsoft PowerPoint - Lecture1

Microsoft PowerPoint - Lecture1 Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית

קרא עוד

ex1-bash

ex1-bash ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב 202-1-1011 תאריך הבחינה: שמות המרצים: 16.3.2011 מר שי זקוב ד"ר פז כרמי פרופ' מייק קודיש ד"ר חן קיסר ד"ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס: שנה: 202-1-1011 2011 משך הבחינה:

קרא עוד

מצגת של PowerPoint

מצגת של PowerPoint מהי סביבת איקס לימוד? סביבת איקס לימוד היא סביבה גמישה לתרגול היכולת לזכור ולהיזכר במושגים ועובדות מתחומי תוכן שונים על ידי התאמה. הסביבה מבוססת על המשחק 'איקס עיגול' והתוכן אותו מתרגלים יכול מסוג טקסט

קרא עוד

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

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

קרא עוד

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

פתרון 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 Presentation

PowerPoint Presentation מבוא למדעי המחשב תירגול 2: מבוא לתיכנות ב- C 1 תוכנייה משתנים קלט/פלט משפטי תנאי מבוא למדעי המחשב מ' - תירגול 3 2 משתנים 3 משתנים- תמונת הזיכרון הזיכרון כתובת התא #1000 10-4 לא מאותחל 67 לכל תא בזיכרון

קרא עוד

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

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

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 9 חזרה על תכנות מונחה עצמים Part II ראינו בהרצאה ממשקים Set Iterable Iterator בתרגול היום חזרה על: ממשקים Iterator Iterable )iterator נראה: )set ממשק )מימוש SetAsLinkedList

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 Generics תרגול - 1 תכנות גנרי תמיכה בתכנות גנרי נוספה בגרסה 5 ניתן להגדיר מחלקות ושירותים גנריים מונע שכפול קוד )מוכללים( ניתן לכתוב תוכניות שאינן תלויות בטיפוסי המשתנים מאפשר בטיחות טיפוסים מנגנון

קרא עוד

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

תוכנה 1 1 אביב תשעג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- mdle בלבד.(http://mdle.tau.ac.il/)

קרא עוד

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

תרגול 3 - מערכים Introduction to Programming in Java תרגול 5 1 היום בתרגול void מה הן פונקציות הגדרת פונקציה, קריאה לפונקציה העברת ארגומנטים, החזרת ערך או דוגמאות 2 מוטיבציה לעיתים,אנו נזקקים לבצע פעולה מסוימת או לעשות

קרא עוד

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

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

קרא עוד

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

חינוך לשוני הוראת קריאה:  נקודת מבט של הערכה: מהן הסוגיות שבהן ידע מחקרי עשוי לסייע בעיצוב מדיניות ועשייה? חינוך לשוני שפה ערבית סוגיות שבהן ידע מחקרי עשוי לסייע בעיצוב מדיניות ועשייה - נקודת מבט של הערכה מפגש לימודי 7.7.2011 אימאן עואדיה מנהלת תחום מבחנים בערבית - הרשות הארצית 2011# 1 מהי? היא הגוף המוביל

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 אוניברסיטת תל אביב INTERFACES תרגול מס' 7: מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה מנשקים )Interfaces( 2 מנשקים מנשק )interface( הוא מבנה תחבירי ב- Java המאפשר לחסוך בקוד לקוח. מנשק מכיל כותרות

קרא עוד

Microsoft PowerPoint - lec9.ppt

Microsoft PowerPoint - lec9.ppt ת כנ ות מונ ח ה עצמי ם בשפת + +C ירוש ה אוהד ברזילי אונ יברסיטת תל אביב ירוש ה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand

קרא עוד

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

תשעדד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..( תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv

קרא עוד

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

מבוא למדעי המחשב - חובלים אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב סמסטר ב' תשע"ב בחינת סיום, מועד ב',.02..9.7 מרצה: אורן וימן מתרגלים: נעמה טוויטו ועדו ניסנבוים מדריכי מעבדה: מחמוד שריף ומיקה עמית משך המבחן: שעתיים חומר

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - Ass1Bgu2019b_java docx ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 3: טיפוסים והמרות 1 מה היה שבוע שעבר? משתנים קלט/פלט scanf( ו- printf ( Redirection The Input Buffer 2 תוכנייה טיפוסי משתנים קלט/פלט מעוצב המרה בין טיפוסים קבועים 3 חישוב ממוצע בין שני

קרא עוד

Slide 1

Slide 1 מבוא לשפת C תירגול 10: מצביעים, מערכים ומחרוזות שבוע שעבר... מצביעים Call by reference 2 תוכנייה קשר מצביע-מערך )אריתמטיקה של מצביעים( העברת מערכים לפונקציה מחרוזות דוגמה 3 קשר מצביע-מערך 4 תזכורת: תמונת

קרא עוד

Microsoft PowerPoint - lec9.ppt

Microsoft PowerPoint - lec9.ppt תכ נות מונח ה עצמים בשפת ++C ירו שה אוה ד ברזילי אוני ברסיטת תל אביב ירו שה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand Meyer

קרא עוד

1

1 תאריך הבחינה: 24.7.2016. שמות המרצים: ד"ר עזאם מרעי שם הקורס: עקרונות תכנות מונחה עצמים מספר הקורס: 202-15181 שנה: 2016 סמסטר: ב' מועד: א' משך הבחינה: שלוש שעות חומר עזר: אסור מבחן סיכום לקורס " עקרונות

קרא עוד

HTML - Hipper Text Makeup Language

HTML - Hipper Text Makeup Language תכנות בסביבת האינטרנט 1 תיבת טקסט טופס הטופס הוא הדרך של בעלי האתר לקבל משוב מהגולשים, מאפשר לגולש להתחבר לאתר כחבר, מאפשר לבצע רכישות באתרי קניות וכד'. כשהגולש ממלא את הטופס, מועבר תוכן הטופס לדף מיוחד

קרא עוד

234114

234114 )234117 )234114 \ סמסטר חורף תשע"ז 2017 מבחן מסכם מועד א', 21 לפברואר 2 3 4 1 1 מספר סטודנט: רשום/ה לקורס: משך המבחן: 3 שעות. חומר עזר: אין להשתמש בכל חומר עזר. הנחיות כלליות: מלאו את הפרטים בראש דף זה

קרא עוד

Slide 1

Slide 1 Introduction to Programming in C תרגול 8 1 1 רקורסיה תזכורת הגדרה: המונח רקורסיה (recursion) מתאר מצב שבו פונקציה קוראת לעצמה באופן ישיר או באופן עקיף. שימוש: נוח להשתמש בפונקציות רקורסיביות על מנת לפתור

קרא עוד

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

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

קרא עוד

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

מספר נבחן / תשסג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: דר אבי אללוף חומר עזר מספר נבחן 2002 2003 / תשס"ג סמסטר א' מועד א' תאריך: 29.1.03 שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר: אין שימוש במחשבון: מותר בבחינה 10 עמודים כולל עמוד

קרא עוד

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

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

קרא עוד

Titre du document en police Sodexo

Titre du document  en police Sodexo BENEFITS AND REWARDS SERVICES כיצד משתמשים באתר: mysodexo.co.il יוני 2017 ה- תודה שבחרתם Sodexo Benefits & Rewards לקוחות יקרים, לפניכם מדריך קצר המסביר את אופן השימוש באתר שירות הלקוחות שלנו ישמח לעמוד

קרא עוד

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

תורת הקומפילציה תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר

קרא עוד

Microsoft Word - two_variables3.doc

Microsoft Word - two_variables3.doc משימה שני תלמידים פתרו את מערכת המשוואות הבאה y 7 2y 2. שי פתר בשיטת השוואת מקדמים: I. 2x y 7 II. 2x 2y 2 דנה פתרה בשיטת הצבה: I. 2x y 7 II. 2x 2y 2 I. y = 7 2x II. 2x 2(7 2x) = 2 2x 4 + 4x = 2 6x 4 =

קרא עוד