Microsoft Word - Presentation.doc
|
|
- ג'ולין וינברג
- לפני5 שנים
- צפיות:
תמליל
1 דף הסברים ריק
2 חלק 9 בפני עצמה המחלקה כּ ישות
3 דף הסברים ריק
4 חיסכון ביצירת עצמים יותר; שאינם נחוצים Version ננסה למחזר עצמים מסוג נחזיר אותו למאגר של מסוים, יותר עצם כאשר לא צריך עצמים חופשיים עצם קיים במאגר אם יש מהמחלקה, כאשר צריך עצם חדש אחרת ניצור עצם חדש בו, נשתמש בשימוש, שאינו זה כמובן דורש שלקוחות שצריכים עצם כזה ימנעו מקריאה לבנאי, כי זה תמיד ייצור עצם חדש class Version { private static Version free_list; private Version() {} public static Version alloc() { } public Version free() { }
5 דף הסברים ריק
6 חיסכון ביצירת עצמים (המשך) class Version { private static Version free_list; private Version () {} public static Version alloc() { } public void free() { } } String value; Version previous; לקוחות לא יכולים לבנות עצמים ישירות הפרוצדורה alloc כן יכולה לבנות עצמים
7 דף הסברים ריק
8 public static Version alloc() { if (free_list == null) return new Version(); else { Version v = free_list; free_list = v.previous; return v; } } public void Version free() { this.value = null; this.previous = free_list; free_list = this; } הקצאה ושחרור
9 דף הסברים ריק
10 השדה free_list משותף לכל העצמים מהמחלקה; שדה מוכרז כשדה מחלקה (להבדיל משדה מופע) בעזרת מילת המפתח static בשירות של המחלקה, השם previous קשור לשדה של העצם שהפעיל את השירות (שדה מופע) אבל השם free_list קשור לשדה משותף לכל העצמים מהמחלקה (שדה מחלקה, (class field ;(class method) היא פרוצדורה או שירות מחלקה alloc היא מופעלת ישירות על ידי Version.alloc() ולא על עצם שהוא מופע של המחלקה; יש לה גישה לשדות המחלקה, והיא יכולה להשתמש במחלקה כלקוח, אבל כלקוח יש לה גישה גם לשדות ושירותים מוגנים private) וכדומה) שדות מחלקה ושירותי מחלקה
11 דף הסברים ריק
12 כי הם מהווים שמות גלובליים (כלומר התייחסות שתמיד אפשר למצוא, לעומת עצמים רגילים שצריך לקבל מאיזשהו עצם אחר התייחסות אליהם) כי הם יחידים (כלומר יש בדיוק Version.free_list אחד בתוכנית) זה בדיוק מה שרצינו: להיות מסוגלים למצוא את מאגר העצמים הפנויים, גם איננו מכירים אף עצם מהמחלקה, ושיהיה רק מאגר פנויים אחד למה שדות מחלקה?
13 דף הסברים ריק
14 בג'אווה הזיכרון מנוהל אוטומטית; כל עוד יש התייחסות לעצם, הזיכרון שלו לא יוקצה למטרה אחרת, ואם אין התייחסות לעצם, הזיכרון שלו יוחזר למערכת (אולי לא מייד) למרות זאת, הדוגמה מראה שאפשר להגדיר מחלקות שמממשות ניהול זיכרון מפורש, ולכן גם אפשר ליצור תוכניות עם פגמים בניהול הזיכרון, כמו בשפות ללא ניהול אוטומטי Version v1 = Version.alloc(); we use the object that v1 refers to v1.free(); Version v2 = Version.alloc(); v1.value = "something"; an error! בדרך כלל הפגם יותר קשה לגילוי מאשר בדוגמה הערות לגבי הקצאת זיכרון
15 דף הסברים ריק
16 דליפת זיכרון leak) (memory הוא פגם אחר בניהול זיכרון מפורש: עצם מוקצה אבל לא משוחרר מפורשות (האם דליפת זיכרון היא פגם בדוגמה שלנו?) java.io.fileinputstream is = new FileInputStream("C:\grades.dat"); we the input stream is.close(); we release the object; shouldn't use it later מערכת ההפעלה מאפשרת לפעמים לפתוח רק מספר מוגבל של קבצים, ולכן קובץ פתוח הוא משאב מוגבל; חשוב לשחרר את המשאב ברגע שלא צריכים אותו אי שחרור בזמן הוא פגם בתוכנית, ושימוש בקובץ ששוחרר גם הוא פגם הקצאת זיכרון (ומשאבים אחרים)
17 דף הסברים ריק
18 עוד שימושים לשדות מחלקה יש עוד תבניות תיכון בשדות מחלקה patterns) (design שמשתמשים תבנית היחיד מבטיחה שיש רק עצם אחד ממחלקה מסוימת (singleton pattern) תבנית משקל נוצה pattern) (flyweight יוצרת מאגר של עצמים מקובעים ודואגת שבכל רגע נתון יהיה לכל היותר עצם אחד עם מצב מופשט נתון; זה חוסך זיכרון ומאפשר לבצע השוואות עם == במקום equals השירות java.lang.string.intern() מתחזק תבנית כזו: הוא מחזיר התייחסות לעותק קנוני של מחרוזת
19 דף הסברים ריק
20 קבועים שדות מחלקה משמשים גם לציון קבועים בתוכנית בדרך כלל שמות שכוללים רק אותיות סגנונית: מוסכמה גדולות class Paragraph { public final static int DIR_LTR =0x01; public final static int DIR_RTL =0x02; public final static int ALIGN_LEFT =0x04; public final static int ALIGN_RIGHT=0x08; public Paragraph (int style) { } }
21 דף הסברים ריק
22 שימוש בקבועים class Paragraph { public final static int DIR_LTR =0x01; public Paragraph (int style) { } } Paragraph p = new Paragraph( Paragraph.DIR_RTL Paragraph.ALIGN_RIGHT );
23 דף הסברים ריק
24 המשתמר של שדות המחלקה (נניח את ההנחה הסבירה ששדות המחלקה מוגנים מגישה בחוזה) מופיעים ישירה על ידי לקוחות של המחלקה ולכן אינם המחלקה? מי משתמש בשדות שירותי מחלקה ושירותי מופע השירותים שלו הם עצמאי; שדות המחלקה מהווים מעין עצם אבל לכל עצם מהמחלקה יש התייחסות המחלקה; שירותי אליו ומותר לשירותי המופע לגשת אליו לשדות המחלקה יהיה משתמר משלהם לכן, כי אותו, שירותי המופע חייבים לכבד גם שירותי המחלקה וגם לשדות המחלקה לכולם יש גישה
25 דף הסברים ריק
26 class Paragraph { public final static int DIR_LTR =0x01; אבל לפעמים זה לא מספיק; לפעמים המשתמר מסובך מדי, ולפעמים האתחול עלול להודיע על חריגים שצריך לטפל בהם לפעמים המשתמר של שדות המחלקה פשוט ואתחול האוטומטי או הידני שלהם מבטיח את קיומו, class Version { private static Version free_list; null is ok אתחול שדות המחלקה
27 דף הסברים ריק
28 אתחול סטאטי class Sentence { private static Set prepositions; static { prepositions = new HashSet(); try { FileReader r = new FileReader("preps.txt"); read the file and fill the set } catch (IOException e) { } }
29 דף הסברים ריק
30 מהמחלקה, האתחול של הבסיס יתבצע לפני האתחול של המרחיבה האתחול הסטאטי יתבצע לפני הפעלת שירות כולל שירותי מחלקה וכולל בנאים (ואולי גם פסוקי אתחול אם יש כמה גושי אתחול סטאטיים עדיף לרכז סגנונית, הופעתם; הם יתבצעו לפי סדר פשוטים) את כל האתחולים הסטאטיים לגוש אחד במחלקה מרחיבה שגם למחלקת הבסיס שלה יש אתחול סטאטי, אחרות, מפעיל שירותים של מחלקות אם האתחול הסטאטי הן יאותחלו קודם סביבת זמן הריצה בוחרת בעצמה את זמן האתחול הסטאטי בהתחשב באילוצים הללו חוקי האתחול
31 דף הסברים ריק
32 במקום (singleton) עדיף אולי להשתמש בתבנית היחיד עצם מצב המחלקה נהפך למצב של מרובים; בשדות מחלקה שמשותף לכל העצמים במחלקה רגיל, class MyClassStatic { instance fields public MyClassStatic () { } instance methods } class MyClass { private final static MyClassStatic mcs = new MyClassStatic(); singleton במקום אתחול סטאטי מסובך
33 דף הסברים ריק
34 השתקפות (reflection) בג'אווה, המבנה של הקוד (מחלקות, שירותים, בזמן ריצה ומאפשר לחקור את מבנה הקוד ושדות) יש מחלקה שהעצמים שלה מייצגים מחלקות, מחלקה שמייצגת חבילות, מחלקה לשירותים, מחלקה לשדות, ומחלקה לבנאים זמין ניתן להפעיל בנאים ושירותים בעזרת העצמים המייצגים java.lang.class java.lang.package java.lang.reflect.constructor java.lang.reflect.method java.lang.reflect.field
35 דף הסברים ריק
36 המחלקה VersionedString vs = Class x = vs.getclass(); an Object method Class y = VersionedString.class; literal Class z = Class.forName("VersionedString"); static lookup העצם שמייצג את המחלקה יכול להחזיר את כל הפרטים לגביה: את שמה, את מי היא מרחיבה ומממשת, את השדות שלה, את השירותים והבנאים שלה למשל, בניית עצם תוך שימוש בבנאי ברירת המחדל: VersionedString a = (VersionedString) z.newinstance();
37 דף הסברים ריק
38 המחלקה java.lang.reflect.proxy מאפשרת לבנות מחלקות באופן דינאמי; אבל בדרך כלל יש דרך יותר פשוטה להשיג את אותה מטרה class VSHandler implements InvocationHandler { public Object invoke(object proxy, Method m, Object[] args) { if (m.getname().equals("add")) { } else if (m.getname().equals("length")) בניית מחלקות באופן דינאמי
39 דף הסברים ריק
40 בנייה דינאמית של עצמים כאלה שימושית כאשר מתקיימים שני תנאים ל מה זה טוב? ראשית, כאשר העצם הדינאמי הוא נציג (proxy) של עצם רגיל שאנו מבקשים להוסיף לו יכולת מסויימת ה- InvocationHandler כאשר קבוצת השירותים של העצם הרגיל לא ידועה מראש את העצם הרגיל נעביר לבנאי של יפעיל את השירות המבוקש על העצם invoke והשירות הרגיל שנית, מגלה אותה ב זמן ה- InvocationHandler אלא, ריצה תוך שימוש בהשתקפות זה מאפשר, למשל, להוסיף שכבה של בדיקת הרשאות מול הגדרות בקובץ עבור אוסף שרירותי של מחלקות
41 דף הסברים ריק
42 סיכום שדות מחלקה והשתקפות שדות מחלקה משותפים לכל העצמים במחלקה לשדות המחלקה יש שמות גלובליים ידועים והם יחידים על כל השירותים של משלהם; יש משתמר לשדות המחלקה לכבד את המשתמר מחלקה, שירותי מופע ושירותי המחלקה, ולא ושירותים, המחלקה היא לא רק אוסף הגדרות של שדות רק מבנה הנתונים של שדות המחלקה עצם שניתן לחקור ריצה, המחלקה היא גם עצם מוחשי בזמן השדות והשירותים אותו ולקבל ממנו עצמים שמייצגים את אפשר להפעיל בנאים ושירותים בצורה כזו אפשר ליצור עצמים באופן דינאמי בעזרת java.lang.reflect.proxy
43 דף הסברים ריק
44 חלק 10 שׁ יוּם (Naming)
45 דף הסברים ריק
46 מרחב השמות בתוכנית ג'אווה, כפי שהצגנו אותו עד כה, הוא מרחב דו שכבתי, כמעט שלם, עם חוקי נראות (visibility) דו מימדיים שלמות: לכל דבר יש שם; ראינו שניתן להעביר לשירות עצם אבל לכל טיפוס היה עד כה שם או מערך אנונימי, vi.add( new Integer (3) ); printprimes( new int[] { 1, 2, 3, 5, 7 } ); שם מחלקות; שבכל אחת יש חבילות, אוסף של דו שכבתיות: אוסף החבילות המחלקה; טיפוס מורכב משם החבילה ושם שטוח שטוח (למרות שהוא נראה היררכי) ואוסף המחלקות בחבילה מרחב השמות בתוכנית ג'אווה דו מימדיות: נראות מוחלטת, בחבילה, או ליורשים
47 דף הסברים ריק
48 בעצם מרחב השמות יותר מורכב יש לו יותר משתי שכבות: אפשר להגדיר מחלקות בתוך מחלקות, ואפילו מחלקות בתוך שירותים ואפשר גם ליצור מחלקות אנונימיות בחלק הזה של הקורס נראה את המנגנונים הללו וגם נגדיר בצורה מדוייקת את חוקי הנראות
49 דף הסברים ריק
50 מחלקות פנימיות סטאטיות הסוג הפשוט ביותר של מחלקה פנימית public class PersistentVersionedString implements VersionedString { public static class PVSFilter implements java.io.filefilter { public boolean accept(java.io.file f) { return f.getname().endswith(".pvs"); } } }
51 דף הסברים ריק
52 דבר, היא מחלקה רגילה לכל מחלקה כזו FileFilter filter = new PersistentVersionedString.PVSFilter(); File dir = new File("/Projects/oopj"); File[] files = dir.listfiles( filter ); אין שום לחלוטין; עצמים מהמחלקה הפנימית הם עצמאיים קשר בינם ובין עצמים מהמחלקה החיצונית שירותים החיצונית, שהפנימית היא מעין שדה של אבל בגלל גם שתיהן, של שתיהן יכולים לגשת לכל שדות המחלקה של ו- protected ) private) לשדות מוגנים שימוש במחלקה פנימית סטאטית
53 דף הסברים ריק
54 אם המחלקה הפנימית אינה ציבורית (אינה מוגדרת,(public הטיפוס שלה מוסתר, אבל עצמים מהמחלקה אינם מוסתרים אם יש התייחסות אליהם public class PersVS { private static class PVSFilter... { } public static FileFilter getfilter() { return new PVSFilter(); } הגנה על מחלקות פנימיות סטאטיות FileFilter f = new PersVS.PVSFilter(); error FileFilter f = PersVS.getFilter(); ok
55 דף הסברים ריק
56 עוד שימוש למחלקה פנימית Version הוא מחלקת עזר במימוש של,LinkedVersionedString עדיף להסתיר אותה public class LinkedVersionedString extends VersionedString { private class Version { } }
57 דף הסברים ריק
58 מבנה מיותר בג'אווה; מעט מאוד שימושים אמיתיים ובכל זאת, מה זה? מחלקה של עצמים שכל אחד מהם "שייך" לעצם של המחלקה המכילה ומכיר את שדות המופע שלו public class Outer { private int o; public class Inner { private int i; public void set() { i = o; } public int get() { return i; } } מחלקות פנימיות לא סטאטיות
59 דף הסברים ריק
60 קשירה של מחלקה פנימית public class Outer { private int o; public class Inner { } public Inner getinner() { return new Inner(); } public void increment() { o++; } } Outer x = new Outer(); Outer.Inner y1 = x.getinner(); Outer.Inner y2 = x.getinner();
61 דף הסברים ריק
62 קשירה של מחלקה פנימית (המשך) Outer x = new Outer(); Outer.Inner y1 = x.getinner(); Outer.Inner y2 = x.getinner(); x.increment(); now x.o == 1 y1.set(); y1.i = x.o == 1 x.increment(); now x.o == 2 y2.set(); y2.i = x.o == 2 y1.get(); returns 1 y2.get(); returns 2
63 דף הסברים ריק
64 אותה תוצאה עם מחלקה פנימית סטאטית public class Outer { public static class SInner { private int i; private Outer outer; an explicit reference public SInner(Outer outer) { this.outer = outer; } public void set() { i = outer.o; } public SInner getinner() { return new SInner(this); }
65 דף הסברים ריק
66 תחביר (מסובך) לשימוש במח' פנימיות בנייה ישירה של עצם פנימי Outer x = new Outer(); Outer.Inner y3 = x.new Outer.Inner(); הרחבה של מחלקה פנימית על ידי מחלקה רגילה class SubInner extends Outer.Inner { public SubInner (Outer outer) { outer.super(); } invoke the super's constructor שימוש בשדה מוסתר של המחלקה החיצונית על ידי הפנימית, ובשדה מוסתר של המחלקה שהחיצונית מרחיבה Outer.this.field Outer.super.field
67 דף הסברים ריק
68 מחלקה מקומית (לא שימושי) public VersionedString somemethod() { final int fi = 3; int mi = 4; class LocalVS implements VersionedString { public void add(string s) { int x = fi; ok int y = mi; compilation error; mi is not final } } return new LocalVS(); }
69 דף הסברים ריק
70 תכונות מחלקה מקומית זו מחלקה פנימית לא סטאטית; אסור להשתמש במילת המפתח static הטיפוס לא מוכר מחוץ לגוש (שירות) שבו היא מוגדרת, אין צורך בהגדרת נראות private) או (protected מותר לה להשתמש במשתנים של הגוש (שירות) שבו היא מוגדרת; זו הסיבה להגדירה מקומית ולא סתם פנימית ולכן העצמים עצמם יכולים לחמוק מהגוש שבו המחלקה מוגדרת, ולכן מותר לה לגשת רק למשתנים שערכם לא ישתנה אחרי סיום פעולת הגוש (משתנים שמוגדרים,(final אחרת היא הייתה עלולה לגשת למשתנים שכבר לא קיימים אין למחלקות כאלה הרבה שימושים
71 דף הסברים ריק
72 מחלקות אנונימיות (מאוד שימושיות) מחלקות אנונימיות הן בעצם הסיבה להגדרה של מחלקות פנימיות ומקומיות משמשות בדרך כלל לאריזה של פרוצדורה שמיועדת להישמר במבנה נתונים להפעלה בעתיד Button b = new Button( ); b.addmouselistener( new MouseListener() { public void mouseclicked(event e) { } }); העברנו לכפתור פרוצדורה שהוא אמור להפעיל כאשר לוחצים על הכפתור; הפרוצדורה הזו תגרום לתוצא הלוואי הרצוי; כדי לגרום לתוצא הלוואי, היא צריכה לשמור התייחסות לעצמים שהיא תשנה את מצבם; פרוצדורה כזו נקראת closure
73 דף הסברים ריק
74 שימוש טיפוסי במחלקה אנונימית interface MouseListener { public void mouseclicked(); } class Button { Set mouse_listners = new TreeSet(); public void addmouselistener( MouseListener ml) { mouse_listeners.add(ml); } } b.addmouselistener( new MouseListener() { public void mouseclicked(event e) { });
75 דף הסברים ריק
76 סיכום ביניים: מחלקות פנימיות הסוג השימושי ביותר הוא מחלקות אנונימיות, משום שהוא מפצה על היעדר התייחסויות לפרוצדורות בג 'אווה מחלקות אנונימיות מאפשרות להעביר לעצם פרוצדורה כזו, שהתנהגותה תלויה בהקשר שבו הוגדרה (כי היא יכולה להשתמש בשדות של העצם ובמשתנים מקובעים של השירות שבו היא מוגדרת) מחלקות אנונימיות שימושיות בתבניות התיכון,observer ו- command,strategy מחלקות פנימיות סטאטיות מאפשרות לעצב את מרחב השמות באופן גמיש ולהסתיר מחלקות עזר השאר (פנימיות לא סטאטיות ומקומיות) פחות שימושיות עדיף להגביל את התלות בין המחלקה החיצונית והפנימית
77 דף הסברים ריק
78 הגנה על שמות ארבע רמות הגנה על שמות:,protected,public,private ו- package (בלי מילת מפתח) רק השמות מוגנים; העצמים עצמם לא ההגנה היא ביחס למבנה הסטאטי של הקוד, לא ביחס למבנה הדינאמי של עצמים בזיכרון: האם שורת קוד נתונה מסוגלת להתייחס לשם מסוים מה מוגן? מחלקות (כולל פנימיות) שדות, שירותים מה לא מוגן? משתנים ומחלקות בתוך שירותים/גושי פסוקים, טיפוסים אנונימיים (אין שם שאפשר להגן עליו)
79 דף הסברים ריק
80 אין הגבלות :public כולל כל מחלקה, שימוש רק על ידי קוד באותה :private (כולל המחלקות פנימיות שמוגדרות באותה מחלקה ראשית אחרות) מחלקות פנימיות גישה למחלקות מתיר אבל private כמו :protected מרחיבות אבל מתיר גישה לכל שירות private כמו חבילה: הגנת באותה חבילה "סגירת" אפשר להגביל את התחום של הגנת חבילה על ידי זה מתבצע מחלקות; חבילה כך שאחרים לא יוכלו להוסיף לה ה- jar בקובץ (sealed) על ידי סימון החבילה כחתומה רמות הגנה
81 דף הסברים ריק
82 מחלקות שוכנות בחבילות כל קובץ מזהה את החבילה שלה הוא שייך, ומיקום הקובץ צריך להתאים להיררכיה של שם החבילה package il.ac.tau.oopj; למרות ששמות החבילות נראים היררכיים, ולמרות שקבצי קוד המקור והקבצים הבינריים.java) ו- class.) מאורגנים במדריכים באופן היררכי שמשקף את שמות החבילות, מבחינת הגנה על שמות אין היררכיה בין חבילות כלומר למחלקה בחבילה il.ac.tau.oopj.ex3 אין גישה לשמות עם הגנת חבילה ב- il.ac.tau.oopj ולא להיפך חבילות ושמות חבילות
83 דף הסברים ריק
84 השם המלא של חבילה כולל את שם החבילה ושם המחלקה, למשל, java.io.inputstream אבל הוא משמעיות, שימוש בשמות כאלה מקנה לקוד חד בייחוד כאשר שמות החבילות ארוכים ולאחר שם מסורבל, כמו למשל שדה, או שם שירות, המחלקה בא שם java.lang.system.println אפשר לייבא שמות מחלקות ספיציפיות או את כל שמות קוד: המחלקות מחבילה לקובץ import java.io.inputstream; import java.lang.*; ומעלה אפשר גם לייבא את שמות הקבועים 1.5 בג'אווה (static import) במחלקה שמוגדרים שמות מלאים ויבוא שמות
85 דף הסברים ריק
86 מחלקות פנימיות מאפשרות להגדיר מרחב שמות היררכי שמשקף את מבנה הקוד (מי משתמש במי, מה שייך למה) מחלקות אנונימיות שימושיות בעיקר על מנת לייצג פרוצדורות קשורות חלקית (closures) במבני נתונים כדאי להימנע מתלויות סבוכות בין מחלקות חיצוניות ופנימיות ומתחביר לא טריוויאלי בחירת רמת ההגנה לשם דורשת בחירה בין יכולת שימוש והרחבה ובין מודולריות protected היא רמת ההגנה הבעייתית ביותר, כי אין לנו מושג מי ירחיב ומתי מחלקות פנימיות מאפשרות תיחום מודולריות יותר מדוייק סיכום מרחב השמות
87 דף הסברים ריק
88 חלק 11 בדיקות (Testing)
89 דף הסברים ריק
90 איך יודעים שמודול או תוכנית נכונים? פורמאלי פורמאלי או לא שמיועד לוודא באופן תהליך אימות: נכונות של מודול או תוכנית ביחס לחוזה (לא אימות פורמאלי אוטומאטי אינו אפשרי במקרה הכללי כריע) פורמאלי ידני יקר מדי לרוב המערכות פרט אולי אימות מוטסות, (רפואיות, למערכות שחיי אדם תלויים בהן ישירות ראוי) אבל גם שם יש פחות אימות ממה שהיה וכולי, ביצוע סדרת הרצות של התוכנה על מנת :(testing) בדיקות ולהגדיל את בטחוננו יש, אם פגמים, שמיועדות למצוא בנכונותה ומועיל מאוד באופן מכלום, אבל יותר טוב נכונות, לא מבטיח מעשי להקטנת מספר הפגמים
91 דף הסברים ריק
92 כאשר המכונית לא עוברת טסט, זה כמובן מעצבן, אבל זה בדרך כלל לא כישלון של מכון הרישוי שביצע את הטסט כישלון והצלחה של בדיקה הם נפרדים לחלוטין מאלה של כי הוא מספק אפשרות לתיקון פגם לפני שהוא גורם עוד נזק הנבדק! הקוד פגם היא מגלה אם מצליחה בדיקה מגלה פגם או מדווחת על פגם לא נכשלת אם היא לא בדיקה קיים הבדיקה, לא עבר את בדיקה מדווחת על פגם נאמר שהקוד אם ולא נאמר שהבדיקה נכשלה חיובי) אבל אולי, (לא משמח דווח על פגם הוא אירוע חיובי מינוח שמשקף גישה בריאה לחיים
93 דף הסברים ריק
94 בדיקות יחידה tests) (unit בודקות מודול בודד מחלקה אחת או מספר מחלקות קשורות) (בדרך כלל בדיקות אינטגרציה בודקות את התוכנית כולה, או קבוצה של מודולים ביחד; מתבצעת תמיד לאחר בדיקות היחידה של המודולים הבודדים (כלומר על מודולים שעברו את בדיקות היחידה שלהם) בדיקות קבלה tests) (acceptance מתבצעות על ידי הלקוח או על ידי צוות שמתפקד בתור לקוח, לא על ידי צוות הפיתוח גם לאחר כניסה לשימוש, התוכנה ממשיכה למעשה להיבדק, אבל אצל משתמשים אמיתיים; רצוי שיהיה מנגנון דיווח לתקלות ופגמים שמתגלים בשלב הזה, ורצוי לתקן את הפגמים הללו שלושה סוגי בדיקות
95 דף הסברים ריק
96 קופסאות שחורות וקופסאות פתוחות על כל מודול תוכנה צריך לבצע שני סוגים של בדיקות יחידה בדיקות קופסה שחורה tests) (black-box בודקים את הקוד מול החוזה שהוא מבטיח לקיים, והן אינן תלויות במימוש בדיקות כיסוי tests) coverage או (glass-box tests דואגות שבזמן הבדיקות, כל פיסת קוד תרוץ, ובמקרים מסוימים, תרוץ יותר בכמה צורות בדיקות קופסה שחורה לא תלויות במימוש ולכן אותו סט בדיקות תקף לכל המימושים של מנשק מסוים, גם העתידיים, ובפרט לשינויים ותיקונים במימוש הנוכחי בדיקות כיסוי צריך לעדכן כאשר מעדכנים את הקוד
97 דף הסברים ריק
98 את החוזה מביאים את תוכנית הבדיקה למצב שבו היא שירות, עבור כל ובודקים שתנאי לשירות, קוראים הקדם, מקיימת את תנאי האחר מתקיים אז צריך הקדם; לפעמים יש יותר מדרך אחת לקיים את תנאי לבדוק דרכים שונות ברור שלפעמים יש מספר עצום של דרכים לקיים את תנאי צריך לבדוק דרכי קיום כולן; הקדם ואי אפשר לבדוק את וצריך לבדוק מקרי קצה "או" שונות של פסוקי מה בודקים בקופסה שחורה?
99 דף הסברים ריק
100 למשל, עבור תנאי הקדם 0<=i<=length() צריך לבדוק את המקרה,i=length()=0,i=0<length(),0<i=length(),0<i<length() וגם מקרה אחד לפחות שבו 2=i מקרי הקצה (0=i ו-() i=length בדוגמה) מסייעים למצוא מקרים שבהם שכחנו לממש טיפול במקרי קצה (למשל שכחנו לטפל באופן נפרד במקרה שבו שדה מכיל null וכו') מקרים נוספים: מחרוזות ריקות וקצרות, מערכים ריקים, שני ארגומנטים או יותר שמתייחסים לאותו עצם או מערך אם השירות יכול לקיים אחד מתוך כמה תנאי אחר (למשל, "יוחזר מספר הגרסאות או שנודיע על חריג קלט/פלט") אז הבדיקה צריכה לגרום לו לקיים כל אחד מהם קופסה שחורה (המשך)
101 דף הסברים ריק
102 אמרנו שהבדיקות בודקות את התנהגות הקוד מול החוזה אבל יתכן גם שהדרישה יתכן שהקוד פגום, נכשלת, אם בדיקה בחוזה חזקה מדי החוזה? יודעים האם לתקן את הקוד או את איך החוזה כמובן שאם עבדנו בצורה מסודרת וחשבנו על לקוחות), ואולי גם השתמשנו בו להוכחת נכונות של הסיכויים שהבעיה היא במימוש אבל ככל שמטפסים ממחלקות בודדות לתתי מערכות שלמות (מבדיקות יחידה לבדיקות ובסוף לתוכנית השלמה מכיוון שמחלקות עולה, הסיכוי שהחוזה פגום אינטגרציה), שקשה יותר ומכיוון סטנדרטיות ברמות נמוכות הן יותר לאפיין נכון את ההתנהגות הנכונה של מערכות מורכבות אבל האם החוזה "נכון"?
103 דף הסברים ריק
104 כי אי אפשר לבדוק באופן ממצה את כל הדרכים לקיים את תנאי הקדם; מספר הדרכים עצום או אינסופי ברוב המקרים public void somemethod(int depth, ) { if (depth == 23478) System.out.println("xxx"); ברור שבדיקת קופסה שחורה לא תמצא את ההתנהגות הזו נראה דמיוני אבל זה לא; תוכניתן השתמש בקטע הקוד הזה כדי לקבוע במנפה (debugger) נקודת עצירה שלא מופעלת בכל הפעלה של השירות דוגמאות אחרות: מימוש מסוים של מיון למערכים קטנים, מימוש אחר לגדולים; פסוק if בתוך השירות בוחר את המימוש למה בדיקות קופסה שחורה לא מספיקות?
105 דף הסברים ריק
106 בדיקות שמיועדות לגרום לכל פיסת קוד לרוץ בדיקות כיסוי בכל פסוק תנאי צריך לקבל את שתי התוצאות האפשריות ( then/else ) לולאות צריך לבצע אף פעם, פעם אחת, ושתי פעמים (אף פעם למקרה שהכנסנו לגוף הלולאה קוד שצריך להתבצע בכל מקרה, שתי פעמים למקרה שהמעבר בין איטרציות פגום) אם יש מספר דרכים לצאת מלולאה, צריך להשתמש בכולן כנ"ל לתנאים בוליאניים עם "או" (לבדוק את כל האפשרויות) רקורסיה דינה כדין לולאה: אף פעם, פעם אחת, שתי פעמים יש כלים אוטומטיים שמודדים כיסוי ומצביעים על קוד לא מכוסה
107 דף הסברים ריק
108 בדיקות הקופסה השחורה צריכות גם לבדוק תוצאי לוואי רצויים שמצוינים בתנאי האחר בדרך כלל בתנאי האחר יש גם פסוק סתום שאיננו מופיע מפורשות: "ופרט לכך אין לשירות תוצאי לוואי" זה לא תמיד פשוט לתחם את תוצאי הלוואי המותרים, כי ככלל אמרנו שמותר לשירות לקיים יותר ממה שהוא מבטיח (יש סגנון לכתיבת חוזים שבו משתמשים בפסוק modifies שמתאר איזה עצמים מותר לשירות לשנות; את השאר אסור לו; זהו תיחום יותר מדויק ויותר מפורש של תוצאי הלוואי) קשה לבדוק שאין לשירות תוצאי לוואי פרט למותרים; היכן לחפש? ובכל זאת, לפעמים רצוי לחשוד ולבדוק תוצאי לוואי רצויים ולא רצויים
109 דף הסברים ריק
110 היכן לחפש דליפה של תוצאי לוואי יש חשודים רגילים: עצמים ומחלקות שיש נטייה לשנות אותם בהמון מקרים, למשל מנגנונים של הקצאת זיכרון ומשאבים אחרים (קבצים פתוחים, חלונות על המסך); ראינו שגם בג'אווה אפשר לבנות מנגנוני הקצאת זיכרון בחקירה: סריקה של הקוד תראה צריך לבדוק שמצבם לא משתנה בדרכים שאסור לו להשתנות ויש חשודים ששמם עולה את מי הוא עשוי לשנות הללו, לגבי החשודים היא חלק זיכרון) (הקצאת הבדיקה של חשודים רגילים מבדיקות הקופסה השחורה הבדיקה של חשודים שנמצאו בחקירה היא כמובן חלק מבדיקות הכיסוי
111 דף הסברים ריק
112 בדיקות של היררכיית טיפוסים לגבי מחלקות שמממשות מנשק: בדיקת קופסה שחורה מול החוזה של המנשק (אם לא חיזקנו אותו) וכיסוי של המימוש לגבי מחלקות שמרחיבות מחלקות: בדיקה מלאה של מחלקת הבסיס, בדיקה של השירותים הנוספים/מחוזקים של המרחיבה, ובדיקת כיסוי של המרחיבה מחלקה מופשטת צריך לבדוק בעזרת מחלקה מוחשית מרחיבה
113 דף הסברים ריק
114 בבדיקות מעורבים שני סוגי קוד: מנועים ורכיבים חלופיים מנוע (driver) הוא קוד שמדמה לקוח של המודול הנבדק וקורא לו רכיב חלופי (stub) מחליף ספק שמשרת את המודול הנבדק למשל מחלקה A משתמשת ב- B שמשתמשת ב- C בדיקת יחידה ל- B תדמה לקוח של B ותספק מחלקה חלופית ל- C, על מנת שניתן יהיה לבדוק את B בנפרד מ- A ו- C רכיב חלופי צריך להיות פשוט ככל האפשר לפעמים הרכיב החלופי לא יכול להיות משמעותית יותר פשוט מהמודול שאותו הוא מחליף, ואז כדאי להשתמש במודול האמיתי לאחר בדיקות יסודיות שלו איך בודקים?
115 למה צריך לבדוק באופן יסודי מודול שמשמש בבדיקה של מודול אחר? כדי לדעת בקלות היכן לחפש את הפגם אם בדיקה מוצאת פגם. אם בודקים ביחד שני מודולים א' ו-ב', שאין לנו ביטחון בנכונות של אף אחד מהם, קשה לדעת האם פגם שנחשף בבדיקה הוא פגם במודול א' או במודול ב', וצריך לחפש בשניהם. לפעמים קשה לממש רכיב חלופי שיכול להחליף מודול אמיתי בכל מצב, אבל לא קשה לממש רכיב חלופי מוגבל מאוד שפועל לפי החוזה במקרים הספיציפים שמתעוררים בבדיקה. זה דורש תיאום בין המנוע ובין הרכיבים החלופיים של תוכנית הבדיקה. מתי הרכיב האמיתי פשוט כמו רכיב חלופי? בשני מקרים. האחד, כאשר הרכיב האמיתי פשוט מאוד, ואז קשה להמציא חלופה יותר פשוטה. והשני, כאשר הרכיב האמיתי מקיים חוזה מורכב או חוזה שקשה לקיים בדרך פשוטה. אבל התנאי השני מתקיים לעיתים רחוקות וכדאי לחשוב היטב האם אפשר בכל זאת לממש רכיב חלופי פשוט.
116 דורש הרבה בדיקות קופסה שחורה ; חוזה מורכב אבל מקרה, אם החוזה מבטיח ששירות יפעל בכל בפרט, (למשל את תנאי האחר במקרים שונים יקיים תנאי אחר שונים הרצוי ללקוח במקרים מסוימים והודעה על חריג במקרים אז צריך לבדוק את כל האפשרויות הללו אחרים), יותר בדיקות קופסה שחורה מחיר: לתכנות דפנסיבי יש בין אם המורכבות כיסוי, מורכב דורש הרבה בדיקות מימוש של חוזה מורכב או של שאיפה ליעילות היא תוצאה לבדוק (כפי שאמרנו קשה אם הקוד עצמו לא בודק את החוזה כדאי אולי לבדוק את תנאי הקדם ברכיבים חלופיים בג'אווה), את הביטחון שהלקוחות מקיימים את תנאי הקדם ; מגביר זה את תנאי האחר בודק המנוע דמי ביטחון
117 דף הסברים ריק
118 רצוי למצוא פגם בתוכנה קרוב ביותר לנקודה שבה נוצר הפגם עיקרון הזריזות זה נכון לגבי זמן הריצה: כדאי שהתוכנה תגלה את הפגם ותדווח עליו (למשל על ידי בדיקת החוזים והמשתמרים) קרוב ביותר לנקודה שבה הקוד הפגום פעל; זה יקל על מציאת הפגם בחיפוש אחורה מנקודת הדיווח על הפגם וזה נכון לזמן הפיתוח: כדאי שנגלה את הפגם מהר ככל האפשר לאחר שיצרנו אותו (פגמים הם תוצרי היצירתיות של מפתחים, לא תכונה מובנית של תוכנית או תוכנה בכלל); זה יקל ויוזיל את תיקונו לכן רצוי לממש בדיקות יחידה מוקדם ככל האפשר; בדיקות קופסה שחורה אפשר ורצוי לממש לפני המימוש של המודול, ובדיקות כיסוי רצוי לממש מייד לאחר המימוש; לא כדאי להתעכב
119 דף הסברים ריק
120 בכל פעם שמגלים פגם בתוכנה, בכל שלב של חיי התוכנה (גם לאחר שנכנסה לשימוש) יש להוסיף בדיקה שחושפת את הפגם, כלומר שנכשלת בגרסה עם הפגם אבל עוברת בגרסה המתוקנת לפעמים הבדיקה תתווסף לבדיקות הקופסה השחורה ולפעמים לבדיקות הכיסוי (אם הפגם קשור באופן הדוק למימוש ולא לחוזה) את סט הבדיקות השלם, כולל כל הבדיקות הללו שנוצרו בעקבות גילוי פגמים, מריצים לאחר כל שינוי במודול הרלוונטי, על מנת לוודא שהשינוי לא גרם לרגרסיה, כלומר להופעה מחודשת של פגמים ישנים סט הבדיקות מייצג, כמו התוכנה המתוקנת, ניסיון מצטבר ויש לו ערך טכני וכלכלי משמעותי בדיקות רגרסיה
121 דף הסברים ריק
122 ככלל לעולם לא כאמור, לסט הבדיקות יש ערך רב ואין טעם, בדרך כלל, להפסיק להשתמש בבדיקה שעשויה לגלות פגמים עם זאת, יש להשתמש בהגיון בריא אין טעם להשתמש בבדיקת רגרסיה שבדקה פגם שהיה קשור באופן הדוק למימוש אם החלפנו לחלוטין את המימוש אין טעם להמשיך להשתמש בסט עצום של בדיקות אם בשלב מסוים עוברים לבדיקות כיסוי מקיפות ) מ חקרים מצאו מקרים שבהם סט עצום של בדיקות לא כיסה א ת כל הקוד, שניתן היה להשתמש בחלקיק מתוכן בלי להוריד בהרבה את הכיסוי, ושניתן היה להשלים את הכיסוי במספר קטן של בדיקות נוספות; וזה לתוכנה עם סט בדיקות טוב!) מתי להפסיק להשתמש בבדיקה
123 דף הסברים ריק
124 נניח שמחלקה מסוימת משתמשת בפונקצית ספריה, בצורה נכונה לחלוטין, כלומר תוך שימוש נכון בחוזה של פונקצית הספרייה לקוח מדווח על פגם בתוכנה, ואחרי בירור מסתבר שהבעיה היא שב גרסה של הספרייה הסטנדרטית שמותקנת אצל הלקוח (נניח (JDK יש פגם בפונצית הספריה ) למשל באג מספר במחלקה java.applet. AudioClip או באגים בספריה שמשפיעים רק על גרסאות מסוימות של מערכת ההפעלה) דוגמה לבדיקה מוזרה אבל מוצדקת נוסיף בדיקה שמדמה את הפגם בספריה הסטנדרטית ונתקן את המחלקה שלנו; למי שלא היה מודע לפגם המדווח הקוד יראה כעת משונה, והבדיקה תיראה מוזרה, אבל שניהם מוצדקים והבדיקה הזו עשויה למנוע חזרת הפגם
125 דף הסברים ריק
126 כי טובה, בדיקה שדורשת התערבות של אדם היא בדיקה לא שינוי בתוכנה קשה ויקר לחזור עליה אחרי כל לכן, אוטומטית בדיקה בדידה צריכה להיות כל שמריץ את כל הבדיקות ומדווח על כל (תוכנה) וצריך מנגנון הפגמים שהתגלו למשל אם ביצענו שינוי חלק, לפעמים צריך להריץ אולי רק אבל אם הבדיקות מהירות כדאי להריץ את כולן בתוכנה; קטן בדיקות צריכות להיות אוטומטיות
127 דף הסברים ריק
128 אם התוכנה מופעלת על ידי מנשק אדם-מכונה (למשל מנשק משתמש גרפי, או על ידי דיבור, וכדומה), כדאי לבנות לה גם מנשק חלופי, לצורך בדיקות בלבד, שיפעיל ויבדוק את החלק הפונקציונאלי ובמקרים כאלה את המנשק למשתמש נבדוק לחוד יש גם כלים מיוחדים לבדיקת מנשקים גרפיים: כלים שאפשר לתכנת בהם תנועה של עכבר, הקשה על המקלדת, וכדומה לפעמים בונים חומרה מיוחדת שתפקידה להפעיל את המנשק למשתמש בזמן בדיקות, כמו זרוע רובוטית שלוחצת על reset במקרה חרום אפשר להסתמך על בודקים אנושיים שיפעילו את המערכת על פי הנחיות כתובות, אבל זה פחות אמין, זה יקר, וזה משעמם איך נמנעים מהתערבות אנושית
129 דף הסברים ריק
130 וקבלת דיווחים מהשטח קבלה, אינטגרציה, יחידה, בדיקות בדיקות קופסה שחורה לעומת בדיקות כיסוי חיפוש ממוקד של תוצאי לוואי אסורים (אפשר לממש בדיקה צריכות להתבצע מוקדם לאחר המימוש ולעיתים המודול) השחורה לפני מימוש הקופסה בדיקות את בקוד) (תכופות לעומת קצב השינויים תכופות בהמשך מיכון הבדיקות מקל על ביצוען התכוף בדיקות מצטברות ושימוש מתמשך בהן מונע רגרסיה של קוד חוזים סבוכים וקוד מורכב מובילים לעלות בדיקה גדולה סיכום נושא הבדיקות
131 דף הסברים ריק
מבוא למדעי המחשב
מבוא למדעי המחשב המחלקה Object תוכן עניינים Object הורשה והמחלקה ערך שם טיפוס DynamicIntArray da data size incrementsize DynamicArray תזכורת - Object[] data; int size; int incrementsize; DynamicArray זה
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,
קרא עודMicrosoft PowerPoint - rec3.ppt
תכנו ת מונח ה עצ מים משתני מחלקה, עצמים מוכלים ועצמים מוצבעים א וה ד ברז יל י א ונ יברס י ט ת תל אביב משתנ י מח ל קה Static Members משתני מחלקה members) (static משתנים סטטיים מוגדרי ם בתוך מח לקה ואולם
קרא עודתכנות מונחה עצמים א' – תש"ע
1 תכנות מונחה עצמים והנדסת תוכנה תשע"ו 2 בנאי העתקה בניית העתק של אובייקט קיים. בניית העתק בעת העברת אובייקט לפונקציה. בניית העתק בעת החזרת אובייקט מפונקציה. ניתן להגדיר בנאי העתקה. אם לא מגדירים, אז הקומפיילר
קרא עודPowerPoint Presentation
תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,
קרא עודSlide 1
1 אובייקטים היום בתרגול: 2.)objects מחלקות )classes( ואובייקטים )מופעים, )fields( שדות המחלקה שיטות הכמסה )methods של מחלקה. ( class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים
קרא עודתרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש
תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש המתרגם משימה: תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם 2 שאלות האם כבר יש
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד
אוניברסיטת בן גוריון בנגב תאריך המבחן: 29.01.19 שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות 202.1.9031 מס' הקורס : מיועד לתלמידי : הנדסת תעשיה וניהול שנה תשע"ט א' סמ' א' מועד 3 שעות משך
קרא עודSlide 1
מבוא למדעי המחשב משפחות של מחלקות ומחלקות מופשטות תזכורת בשיעור הקודם ראינו מחלקה של Student והרחבה שלה למחלקה של Milgae למעשה Student יכול לעמוד בראש היררכיה שלמה של מחלקות שונות של סטודנטים למשל, בנוסף
קרא עודPowerPoint Presentation
תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב שימוש במחסנית - מחשבון תוכן עניינים prefix כתיבת ביטויים ב-,infix ו- postfix postfix prefix,infix ביטויים ב- כתיבת ו- infix נוסח כתיבה ב- (operator אנו רגילים לכתוב ביטויים חשבוניים כדוגמת
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד
קרא עודמהוא לתכנות ב- JAVA מעבדה 3
מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100
קרא עודמשימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק
משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות 2 הפשטה שאלות כצעד ראשון נפתור בעיה הרבה יותר פשוטה האם כבר
קרא עודPowerPoint Presentation
תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד * לא בהכרח בסדר הזה == vs equals Point p = new Point(,2) Point p2 = new Point(,2) p == p2 p.equals(p2) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם
קרא עודאוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ
אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך
קרא עודPowerPoint Presentation
== vs equals תוכנה תרגול 7 :מנשקים, פולימורפיזם ועוד Point p = new Point(,) Point p = new Point(,) p == p p.equals(p) מתי נכון להשתמש בכל אחד מהם? שימו לב, במחלקה שכתבתם בעצמכם יש לכתוב מתודת equals על
קרא עודמבוא לתכנות ב- JAVA תרגול 11
מבוא לתכנות ב- JAVA תרגול 11 רשימה מקושרת אוסף סדור של איברים מאותו טיפוס. קודקוד ברשימה )Node( מכיל את המידע + הצבעה לקודקוד הבא ברשימה data next first רשימה :)List( מיוצגת ע"י מצביע לאיבר הראשון ברשימה
קרא עודתוכן העניינים
הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527
קרא עודתוכן העניינים
הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:
קרא עודתוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת
תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של תוכנה חופשית. דוגמאות מהשטח 1 ליאור קפלן 30/11/05 קצת
קרא עודPowerPoint Presentation
מבוא למדעי המחשב תירגול 6: כתובות ומצביעים 1 תוכנייה מצביעים מצביעים ומערכים, אריתמטיקה של מצביעים 2 3 מצביעים תזכורת- כתובות זיכרון הזיכרון כתובת התא #1000 #1004 #1008 ערך השמור בתא תא 10-4 לא מאותחל
קרא עודPowerPoint Presentation
1 תוכנה 1 תרגול 1: מנהלות, סביבת העבודה ומבוא ל- Java 1 2 מנהלות I מתרגלים: יעל אמסטרדמר )שעת קבלה: חמישי ב- 12, בתיאום מראש( דביר נתנאלי )שעת קבלה: רביעי ב- 17, בתיאום מראש( http://courses.cs.tau.ac.il/software1/1415a
קרא עודייבוא וייצוא של קבצי אקסל וטקסט
ייבוא וייצוא של קבצי אקסל וטקסט (Importing & Exporting MS Excel Files and Text) ייבוא (Import) הפיכת קובץ טקסט, Excel מבסיס נתונים אחר. או סוגים אחרים, לטבלת,Access או העתקת טבלת Access בתחילת התהליך יש
קרא עודמבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי
מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5
קרא עודPowerPoint Presentation
תוכנה 1 3 תרגול מס' מתודות ותיכון לפי חוזים חוזה בין ספק ללקוח חוזה בין ספק ללקוח מגדיר עבור כל שרות: תנאי ללקוח - "תנאי קדם" precondition - - תנאי לספק "תנאי אחר".postcondition לקוח ספק 2 תנאי קדם )preconditions(
קרא עודMicrosoft PowerPoint - lec10.ppt
תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand
קרא עודמבוא לתכנות ב- JAVA תרגול 7
מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות
קרא עודהמשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +
המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + Line Feed( \r\n - יכולות להתעורר בעיות... זרמים, קוראים
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב גרפים 1 תוכן עניינים סיכום ביניים מה היה לנו? מושג האלגוריתם, תכנות פרוצדורלי הכרות עם בעיות במדעי המחשב הכרות עם בעיות ברקורסיה מתקדמת (כולל (memoization תכנות מונחה עצמים (מחלקה, הורשה,
קרא עודSlide 1
בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1- תרגול הורשה מחלקות אבסטרקטיות חריגים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה )aggregation( במחלקה
קרא עודPeople. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי
מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת האופיס מסלול Basic הפלטפורמה
קרא עודמבוא למדעי המחשב
מבוא למדעי המחשב הממשקים Iterable,Set ו- Iterator תוכן עניינים מבנה נתונים מבנה נתונים מבנה נתונים הוא container של עצמים שמוגדרות עליו מספר פעולות למשל קבוצה של עצמים (אוסף ללא חזרות) עם הפעולות: הוספת
קרא עודPeople. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח
שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת
קרא עודPowerPoint Presentation
פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט
קרא עודSlide 1
בית הספר למדעי המחשב אוניברסיטת תל אביב תוכנה 1 תרגול מספר 9: הורשה מחלקות אבסטרקטיות ואתחול עצמים 2 ירושה ממחלקות קיימות ראינו בהרצאה שתי דרכים לשימוש חוזר בקוד של מחלקה קיימת: הכלה + האצלה הכלה כאשר
קרא עודOffice 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office
Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office 365 ProPlus בחינם. ניתן להוריד ולהתקין את הגרסאות הבאות:
קרא עודתורת הקומפילציה
תורת הקומפילציה תרגיל בית 2 הוראות לתרגיל 2 בשפת MINI-PASCAL הפרוייקט המצורף הינו קוד שלד של מהדר לשפת mini-pascal עליכם לממש בסביבת (Eclipse (Java את הפונקציות המתאימות לפי החומר שנלמד בהרצאה ע"מ שהמהדר
קרא עודמקביליות
PROMELA גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון עדכון אחרון: 21:40 15/06/2013 2 שפת מ פ ר ט עם ס מ נ ט יק ה מוגדרת באופן מתמטי "שפת תכנות" למודלים המטרה: לאפשר גם לכאלה שאינם חוקרים בתחום לבנות
קרא עודעוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכ
עוצמת ההורשה מה הופך את ההורשה לכלי כל כך עוצמתי? מעבר לכך שהוא מקל בהגדרת מחלקות חדשות על סמך מחלקות קיימות, יש לנו אפשרות להתייחס לאובייקט מסויים בכמה אופנים. בואו ניקח מחלקת צעצוע. אנחנו מעונינים להגדיר
קרא עודתוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1
תוכנה 1 תרגול מספר 12: GUI כתיבת מחלקות גנריות בית הספר למדעי המחשב אוניברסיטת תל אביב 1 2 SWT בנויה על העיקרון של publish/subscribe אלמנטים בסיסיים )Widgets( מייצרים מאזינים )Listener( אירועים )Events(
קרא עודמקביליות
תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה
קרא עוד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- (כל
קרא עודSlide 1
מבוא לתכנות ב- JAVA תרגול 5 מה בתרגול מחרוזות מערכים דו ממדיים מחרוזות (Strings) מחרוזת היא רצף של תווים. immutable על מנת ליצור ולטפל במחרוזות נשתמש במחלקה String למחלקה String מתודות שונות שמאפשרות פעולות
קרא עודשאלהIgal : מערכים דו מימדיים רקורסיה:
אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך
קרא עודHTML - Hipper Text Makeup Language
תכנות בסביבת האינטרנט 1 תיבת טקסט טופס הטופס הוא הדרך של בעלי האתר לקבל משוב מהגולשים, מאפשר לגולש להתחבר לאתר כחבר, מאפשר לבצע רכישות באתרי קניות וכד'. כשהגולש ממלא את הטופס, מועבר תוכן הטופס לדף מיוחד
קרא עודPowerPoint Presentation
תוכנה 1 Generics תרגול - 1 תכנות גנרי תמיכה בתכנות גנרי נוספה בגרסה 5 ניתן להגדיר מחלקות ושירותים גנריים מונע שכפול קוד )מוכללים( ניתן לכתוב תוכניות שאינן תלויות בטיפוסי המשתנים מאפשר בטיחות טיפוסים מנגנון
קרא עודמקביליות
תכונות בטיחות Safety Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 תזכורת: תכונות זמן ליניארי Linear Time Properties תכונות זמן-ליניארי מתארות קבוצת עקבות שהמערכת צריכה לייצר מכוונים ללוגיקה
קרא עודסדנת תכנות ב C/C++
פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:
קרא עודMicrosoft Word - Ass1Bgu2019b_java docx
ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות
קרא עודMicrosoft PowerPoint - lec2.ppt
מרחב הש מות (namespace) אוהד ברזילי אוניברסיטת תל אביב מה בתו כנית? לקוח וס פק במערכת תוכנה ממשקים הכרת מרחב השמות מניעת תלות פוטנציאלית בין רכיבים במערכת ע"י עיצוב חלופי של מבנה הממשקים 2 א ונ י ב רס
קרא עודמדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי
מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אישית את האזור הזה כדי שהפקודות המועדפות עליך יהיו תמיד
קרא עודיוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן
יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן מתרגלים: הנחיות: השאלות. כל על לענות עליכם משקל. שוות
קרא עודמדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה
מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה לקורס. האשף קובע את סביבת הפיתוח כך שתתאים לצורכי הקורס.
קרא עודWinZIP תוכנה לדחיסת קבצים ספטמבר 2007
WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108
קרא עודפתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.
פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9. הדפסה ראשונה: מתבצעת לולאה שרצה מאפס עד אורך המחרוזת.
קרא עודהטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור
תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגוריתמים לפתרון בעית מסלולים קלים מציאת מסלולים קלים ביותר מצומת ביותר ממקור יחיד. כלומר, V לכל צמתי הגרף. בעיה אחרת הקשורה לבעיה זו היא בעית ה-(
קרא עודמבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו
מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן
קרא עודMicrosoft PowerPoint - Lecture1
Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית
קרא עודמבוא למדעי המחשב
מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק ב - מבוא לקריפטוגרפיה שיעור 5 (offset מונחים בסיסיים צופן קיסר (היסט,.1.2 1 Today
קרא עודPowerPoint Presentation
תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש המתרגם משימה: תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם 2 שאלות האם כבר יש
קרא עודשבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע
שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת
קרא עודPRESENTATION NAME
נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו
קרא עודMicrosoft PowerPoint - 10_threads.ppt
נוש אים מתקדמים ב Java תכ נות מ ר ובה חו ט י ם אוהד ברזילי אוניברסיטת תל אביב מק בי ל יות ריבוי מעבדים processors) (multi זמן עיבוד slicing) (time ל עו מת חלוק ת רמת התהליך (multithreading) ההפעלה processes)
קרא עוד2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ
מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מספיק עמדות לכולם ולכן מומלץ לעבוד ביחידים). במהלך המעבדה יהיה עליכם לבצע משימות. אם תצטרכו עזרה בשלב
קרא עודתוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום
תוכן העניינים: פרק 2 3 צמצומים ומימושים של פונקציות בוליאניות 2 צמצומים של פונקציות באמצעות מפת קרנו: 2 שאלות: 2 תשובות סופיות: 4 צמצום באמצעות שיטת 6:QM שאלות: 6 תשובות סופיות: 7 מימושים בעזרת פונקציות
קרא עודשעור 6
שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום
קרא עודפייתון
שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה
קרא עודMicrosoft PowerPoint - rec1.ppt
תכנות מונחה עצמים בשפת ++C תר גול מ ספר 1 אוהד ב ר זילי אוניברסיטת תל א ביב חדש חדיש ומחודש תוספות של + +C לשפ ת C 1 #include Hello World using namespace std; int main() cout
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 9 חזרה על תכנות מונחה עצמים Part II ראינו בהרצאה ממשקים Set Iterable Iterator בתרגול היום חזרה על: ממשקים Iterator Iterable )iterator נראה: )set ממשק )מימוש SetAsLinkedList
קרא עודתאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה
תאריך פרסום: 01.01.15 תאריך הגשה: 15.01.15 מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש להגיש בזוגות. -העבודה חייבת להיות מוקלדת. -הקובץ חייב
קרא עודהוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ
הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפורים נוספים... 11 1 Moodle חדש במערכת ה- מערכת מודל
קרא עודSlide 1
מבוא למדעי המחשב תירגול 4: משתנים בוליאניים ופונקציות מבוא למדעי המחשב מ' - תירגול 4 1 משתנים בוליאניים מבוא למדעי המחשב מ' - תירגול 4 2 ערכי אמת מבחינים בין שני ערכי אמת: true ו- false לכל מספר שלם ניתן
קרא עודתוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש
תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- mdle בלבד.(http://mdle.tau.ac.il/)
קרא עודמצגת של PowerPoint
מהי סביבת איקס לימוד? סביבת איקס לימוד היא סביבה גמישה לתרגול היכולת לזכור ולהיזכר במושגים ועובדות מתחומי תוכן שונים על ידי התאמה. הסביבה מבוססת על המשחק 'איקס עיגול' והתוכן אותו מתרגלים יכול מסוג טקסט
קרא עודMicrosoft Word B
מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב
קרא עודתרגול 1
מבוא למדעי המחשב 2019 תרגול 9 חזרה על תכנות מונחה עצמים Part II ראינו בהרצאה ממשקים Set Iterable Iterator בתרגול היום חזרה על: ממשקים Iterator Iterable )iterator נראה: )set ממשק )מימוש SetAsLinkedList
קרא עודמספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה
עמוד 1 מתוך 11 תשע"א מועד ב סמסטר א' 14.2.2011 תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי המחשב יש לענות על כל 5 השאלות. בכל השאלות במבחן יש לכתוב פונקציות יעילות
קרא עודמס' סידורי: ת.ז.: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך ה
מס' סידורי: עמוד 1 מתוך 20 בחינה בתוכנה 1 סמסטר ב', מועד א',תשס"ט 5/7/2009 וולף, ליאור ליאור שפירא, נעמה מאיר, מתי שמרת הוראות )נא לקרוא!( משך הבחינה שלוש שעות - חלקו את זמנכם ביעילות. יש לענות על כל השאלות.
קרא עודForMenahelHeshbonot
מנה"ח לכל מומלץ הנהלת החשבונות של בינה מודול הנחיות עבור ריכוז מודול הנהלת החשבונות של בינה שונה בתפיסת עולמו ממודולים דומים בתוכנות הנהלת חשבונות. בתפיסת עולם זו, הנהלת החשבונות היא פועל יוצא של הפעילות
קרא עודPowerPoint Presentation
תרגול מס' 3: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש שלבי הפיתוח - חזרה קצרה ישנם שני שלבים נפרדים: שלב פיתוח התוכנית בשלב זה אנו משתמשים במהדר )קומפיילר( כדי להמיר קבצי.java )קבצי
קרא עודMicrosoft PowerPoint - T-10.ppt [Compatibility Mode]
מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,
קרא עודתורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב
תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב, מילה ושפה לטובת מי ששכח חומר זה, או שלא למדו מעולם,
קרא עודPowerPoint Presentation
מבוא למדעי המחשב תירגול 2: מבוא לתיכנות ב- C 1 תוכנייה משתנים קלט/פלט משפטי תנאי מבוא למדעי המחשב מ' - תירגול 3 2 משתנים 3 משתנים- תמונת הזיכרון הזיכרון כתובת התא #1000 10-4 לא מאותחל 67 לכל תא בזיכרון
קרא עודPowerPoint Presentation
: עדכון ממשקים, פעולות וחובות שימוש הדרכה לסוכנים אפריל 2018 26 אפריל 18 עדכון, עדכון עדכון, ב 29.4.2018 יכנס לתוקף עדכון של חוזר מידע ונתונים בשוק הפנסיוני" ובבקשות שניתן להגיש באמצעות המסלקה. "מבנה אחיד
קרא עודתוכנה 1 בשפת Java שיעור מספר 3: "חתיכת טיפוס"
שיעור מספר 3: מודל הזיכרון ושירותים שחר מעוז בית הספר למדעי המחשב על סדר היום מודל הזיכרון של Java Heap and Stack העברת ארגומנטים מנגנוני שפת Java שרותים הפשטה חוזה של שרותים 2 העברת ארגומנטים כאשר מתבצעת
קרא עודTutorial 11
מבוא לשפת C תרגול 8: מערכים רב-ממדיים תרגילים בנושא מערכים ורקורסיה מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקנשטיין, איתן אביאור וסאהר אסמיר עבור הקורס "מבוא למדעי המחשב" נכתב ע"י טל כהן, עודכן ע"י
קרא עודלנץ קרן מרצה: תכנותמונחהעצמים) ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחי
לנץ קרן מרצה: תכנותמונחהעצמים) 027622 ( יוםשישי 15 אוקטובר 0202 ב מועד 0202, אביב סמסטר סמסטר סוף מבחן גוטמן אייל רביב, אריאל משנה, אלון מתרגלים: הנחיות:.1.2.3.4.5.6.7 השאלות. כל על לענות עליכם משקל. שוות
קרא עודMicrosoft Word - tutorial Dynamic Programming _Jun_-05.doc
הטכניון מכון טכנולוגי לישראל אלגוריתמים (3447) סמסטר חורף 006/007 הפקולטה למדעי המחשב תכנון דינאמי תרגיל תת מחרוזת משותפת ארוכה ביותר תת-מחרוזת z k שקיימת סדרה עולה ממש,... z = z של מחרוזת נתונה x m,...,,
קרא עודיום עיון עורכי בקשות להיתרים
יום עיון לעורכי בקשות להיתרים 13.7.2017 יום עיון לעורכי בקשות להיתרים 13.7.2017 ימים תנאים מקדימים + 45 מידע להיתר ימים מידע 5 בדיקת תנאים מקדימים איסוף מידע הפקת תיק מידע ומסירתו למבקש מירי תמר תמר תנאים
קרא עוד