Microsoft Word - Presentation.doc

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

Download "Microsoft Word - Presentation.doc"

תמליל

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

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

קרא עוד

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,

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

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

מבוא לתכנות ב- 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 : מערכים דו מימדיים רקורסיה:

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

קרא עוד

תרגול 1

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

קרא עוד

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

תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של תוכנה חופשית. דוגמאות מהשטח 1 ליאור קפלן 30/11/05 קצת

קרא עוד

PowerPoint Presentation

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

Microsoft PowerPoint - lec10.ppt

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

קרא עוד

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

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

קרא עוד

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

שאלה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 + המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + Line Feed( \r\n - יכולות להתעורר בעיות... זרמים, קוראים

קרא עוד

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

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

קרא עוד

Slide 1

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

קרא עוד

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנבס ולסי מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת האופיס מסלול Basic הפלטפורמה

קרא עוד

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

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

קרא עוד

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת קהילה לומדת מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת

קרא עוד

PowerPoint Presentation

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

קרא עוד

Slide 1

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

קרא עוד

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

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

קרא עוד

מקביליות

מקביליות תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה

קרא עוד

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- (כל

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

HTML - Hipper Text Makeup Language

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

מקביליות

מקביליות תכונות בטיחות Safety Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 תזכורת: תכונות זמן ליניארי Linear Time Properties תכונות זמן-ליניארי מתארות קבוצת עקבות שהמערכת צריכה לייצר מכוונים ללוגיקה

קרא עוד

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

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

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

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

קרא עוד

Microsoft PowerPoint - lec2.ppt

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

קרא עוד

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אישית את האזור הזה כדי שהפקודות המועדפות עליך יהיו תמיד

קרא עוד

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

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

קרא עוד

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס מבוא למחשב שפת C. בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה לקורס. האשף קובע את סביבת הפיתוח כך שתתאים לצורכי הקורס.

קרא עוד

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

Microsoft PowerPoint - Lecture1

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

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

קרא עוד

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

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

קרא עוד

PRESENTATION NAME

PRESENTATION  NAME נכתב ע"י כרמי גרושקו. כל הזכויות שמורות 2010 הטכניון, מכון טכנולוגי לישראל הקצאה דינמית )malloc( מערכים דו-מימדיים סיבוכיות: ניתוח כזכור, כדי לאחסן מידע עלינו לבקש זכרון ממערכת ההפעלה. 2 עד עכשיו: הגדרנו

קרא עוד

Microsoft PowerPoint - 10_threads.ppt

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

קרא עוד

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

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

קרא עוד

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום תוכן העניינים: פרק 2 3 צמצומים ומימושים של פונקציות בוליאניות 2 צמצומים של פונקציות באמצעות מפת קרנו: 2 שאלות: 2 תשובות סופיות: 4 צמצום באמצעות שיטת 6:QM שאלות: 6 תשובות סופיות: 7 מימושים בעזרת פונקציות

קרא עוד

שעור 6

שעור 6 שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום

קרא עוד

פייתון

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

קרא עוד

Microsoft PowerPoint - rec1.ppt

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

קרא עוד

תרגול 1

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

קרא עוד

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

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

קרא עוד

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפורים נוספים... 11 1 Moodle חדש במערכת ה- מערכת מודל

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

מצגת של PowerPoint

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

קרא עוד

Microsoft Word B

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

קרא עוד

תרגול 1

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

קרא עוד

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

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

קרא עוד

ForMenahelHeshbonot

ForMenahelHeshbonot מנה"ח לכל מומלץ הנהלת החשבונות של בינה מודול הנחיות עבור ריכוז מודול הנהלת החשבונות של בינה שונה בתפיסת עולמו ממודולים דומים בתוכנות הנהלת חשבונות. בתפיסת עולם זו, הנהלת החשבונות היא פועל יוצא של הפעילות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תרגול מס' 3: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש שלבי הפיתוח - חזרה קצרה ישנם שני שלבים נפרדים: שלב פיתוח התוכנית בשלב זה אנו משתמשים במהדר )קומפיילר( כדי להמיר קבצי.java )קבצי

קרא עוד

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

Microsoft PowerPoint - T-10.ppt [Compatibility Mode] מבוא למחשב בשפת Matlab לולאות בלוקי try-catch :10 תרגול מבוסס על השקפים שחוברו ע"י שי ארצי, גיתית רוקשטיין, איתן אביאור, סאהר אסמיר וטל כהן עבור הקורס "מבוא למדעי המחשב" נכתב על-ידי רמי כהן,אולג רוכלנקו,

קרא עוד

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

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

קרא עוד

PowerPoint Presentation

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

קרא עוד

PowerPoint Presentation

PowerPoint Presentation : עדכון ממשקים, פעולות וחובות שימוש הדרכה לסוכנים אפריל 2018 26 אפריל 18 עדכון, עדכון עדכון, ב 29.4.2018 יכנס לתוקף עדכון של חוזר מידע ונתונים בשוק הפנסיוני" ובבקשות שניתן להגיש באמצעות המסלקה. "מבנה אחיד

קרא עוד

תוכנה 1 בשפת Java שיעור מספר 3: "חתיכת טיפוס"

תוכנה 1 בשפת Java  שיעור מספר 3: חתיכת טיפוס שיעור מספר 3: מודל הזיכרון ושירותים שחר מעוז בית הספר למדעי המחשב על סדר היום מודל הזיכרון של Java Heap and Stack העברת ארגומנטים מנגנוני שפת Java שרותים הפשטה חוזה של שרותים 2 העברת ארגומנטים כאשר מתבצעת

קרא עוד

Tutorial 11

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

קרא עוד

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

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

קרא עוד

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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 בדיקת תנאים מקדימים איסוף מידע הפקת תיק מידע ומסירתו למבקש מירי תמר תמר תנאים

קרא עוד

מיכפל

מיכפל מיכפל 0222 הוראות התקנה למהדורה 9.78 במהדורה 78.9 בוצעו מספר שינויים טכנולוגיים: שדרוג התוכנה ליצירת דוחות בפורמט PDF שינויים בטכנולוגיית השידור של טופס 102 לביטוח הלאומי במהלך עדכון גרסה זו תתקבלנה מספר

קרא עוד