Slide 1

מסמכים קשורים
מבוא למדעי המחשב

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

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

PowerPoint Presentation

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

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

PowerPoint Presentation

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

PowerPoint Presentation

תרגול 1

PowerPoint Presentation

Slide 1

Slide 1

Microsoft PowerPoint - rec3.ppt

PowerPoint Presentation

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

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

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

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

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

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

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

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

Microsoft PowerPoint - rec1.ppt

Microsoft PowerPoint - lec10.ppt

Slide 1

Slide 1

Slide 1

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

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

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

PowerPoint Presentation

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

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

Microsoft Word - c_SimA_MoedB2005.doc

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

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

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

Slide 1

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

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

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

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

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

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

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

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

Slide 1

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

Microsoft Word - pitaron222Java_2007.doc

1

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

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

Tutorial 11

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

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

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

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

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

PRESENTATION NAME

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

PowerPoint Presentation

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

Microsoft Word B

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

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

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

Microsoft Word - Ass1Bgu2019b_java docx

Slide 1

תרגול 1

Homework Dry 3

PowerPoint Presentation

PowerPoint Presentation

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

תרגול 1

Slide 1

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

Microsoft PowerPoint - 07_tdd.ppt

234114

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

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

Slide 1

1

Microsoft PowerPoint - 10_threads.ppt

úåëðä 1 - çæøä

תרגיל בית מספר 1#

שקופית 1

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

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

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

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

Microsoft Word - דוגמאות ב

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

תמליל:

1 אובייקטים

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

class מחלקה - עד עכשיו השתמשנו בעיקר בטיפוסים מובנים ופונקציות המבצעות חישובים או פעולות מסוימות על ערכים מטיפוסים אילו. לעיתים טיפוסים פרימיטיביים אינם מספיקים לכתיבה נוחה המתכנת יכול להגדיר טיפוסים חדשים )מחלקות( לפי הצורך, ליצור ערכים )אובייקטים( ולהגדיר משתנים מטיפוסים אלה. כל טיפוס יציין אילו נתונים נשמרים בו )ע"י שדות( ויהיה אחראי לספק שירותים כלפי חוץ שנוגעים לנתונים השמורים בו )ע"י שיטות( 3

4

איך זה נראה? 5 מחלקות )classes( - טיפוסים חדשים מוגדרים ע"י מתכנת אובייקטים )objects( או מופעים )instances( - ערכי המשתנים הנוצרים מטיפוסים אלו. int i; Student s; משתנים משתני ם טיפוס מובנה משתנה מטיפוס Student מחלקה )טיפוס המוגדר ע"י המתכנת(

ת" ת" ת" אז מה חדש כאן? 6.1.2 למופע,instance( אובייקט( של מחלקה יש "מצב" ) state (,שהוא ערכי המשתנים הפנימיים של האובייקט, הנקראים "שדות".)fields( למופע של מחלקות יש גם "ההתנהגות",)behavior( שהיא אוסף ה"שיטות" )methods( של המחלקה שהאובייקט יכול להפעיל.... הדפס ממוצע הרשם לקורס הדפס שם סטודנט: "שם"=?.ז"=? "ממוצע"=?... הדפס ממוצע הרשם לקורס הדפס ממוצע הרשם לקורס סטודנט: "שם"= Alice.ז"= 2111 "ממוצע"= 99...... סטודנט: "שם"= Bob.ז"= 3121 "ממוצע"= 9 3... הדפס שם... הדפס שם

ראינו כבר משהו דומה... 7 אובייקט String str = new String("abcd"); System.out.println(str.charAt(2)); charat(int index) ".String str

הגדרת מחלקה = הגדרת טיפוס חדש דוגמה: מספרים מרוכבים a real part b imaginary part מספר מרוכב הוא מספר מהצורה a + b i נגדיר מחלקה לייצוג מספרים מרוכבים: public class Complex{ public double real; public double im; 8

צ ם :new Complex c; c = new Complex(); /* memory allocation */ c.real = 17.2; c.im = 1.3333; : ).( גישה לשדות של אובייקטים אופרטור השייכות 9

איך זה נראה בזכרון? Complex c1, c2, c3; //#1 c2.real = 2; c2.im = 2.5; //#3 c1 = new Complex(); c1.real = 1; c2 = c1; //#4 c1.im = 1.5; c1.im = 2.2; c2= new Complex(); c3 = new Complex(); c2.real = 1; c3.real=0.12; c2.im = 1.5; //#2 c3.im = c2.im; //#5 c1 #1 #2 #3 #4 #5 1 1.5 1 1.5 1 1.5 1 2.2 c2 1 1.5 2 2.5 c3 0.12 2.2

שיטות ניתן להוסיף למחלקה גם פונקציות המבצעות חישוב על שדות האובייקט. פונקציות של המחלקה נקראות שיטות. בנאים בנאים הם שיטות מיוחדות הנקראות בכל פעם שנוצר אובייקט חדש. משתמשים בבנאי כדי לתת ערכים התחלתיים לאובייקט. שיטות 11 Complex: double real; double im;

בנאי שיטה מיוחדת עבור מחלקה שתפקידה לייצר אובייקט ולאתחל את שדותיו 12 public class Complex{ public double real; public double im; public Complex(){ this.real = 0; this.im = 0; השם זהה לשם המחלקה ואין ערך החזרה Complex: double real; double im; Complex()

ניתן להוסיף בנאים אחרים: 13 public Complex(double realpart, double impart){ this.real = realpart; this.im = impart; - Copy constructor יצירת אובייקט חדש על בסיס אובייקט קיים מאותו טיפוס public Complex(Complex other){ this.im = other.im; this.real = other.real; {

14 אם לא הגדרנו בנאי כלשהו, Java מספקת לנו בנאי ברירת מחדל constructor( )default אשר מבצע השמה של ערכי ברירת המחדל לכל השדות: public Complex(){ this.im = 0; this.real = 0; בדרך כלל נספק בנאי משלנו

במידה והגדרנו בנאי כלשהו במחלקה, Java כבר לא תספק לנו ה-.default constructor אם נרצה שלמחלקה יהיה בנאי ללא פרמטרים בכל זאת, נצטרך להגדיר אותו בעצמנו : public class Complex{ public double real; public double im; public Complex(double realpart, double impart){ this.real = realpart; this.im = impart; c1 = new Complex(); : שגיאת קומפילציה אם ננסה ליצור אובייקט בצורה הבאה

שיטות Methods 16 על מנת שנוכל להדפיס מספרים מרוכבים בצורה נוחה, נוסיף שיטה אשר מחזירה מחרוזת הכוללת את הייצוג של המספר המרוכב. public class Complex{ נוסיף למחלקה Complex את השיטה :tostring Complex() public String tostring() { String ans = real+" + "+ im + " i"; return ans; tostring() Complex: double real; double im; Complex( double rp, double ip) ניתן להשתמש בשיטה באופן הבא: Complex c1 = new Complex(5,2); System.out.println(c1.toString()); מודפס: 5.0 + 2.0 i

מה תדפיס התכנית הבאה? 17 Complex c1 = new Complex(10.4, 20); Complex c2 = new Complex(15, 1); System.out.println(c1.toString()); System.out.println(c2.toString()); Output: 10.4 + 20.0 i 15.0 + 1.0 i שימו לב: מודפסים שני ערכים שונים אין שיתוף שדות בין האובייקטים השיטות משותפות לכל האובייקטים מהמחלקה ערכי השדות לא משותפים

ניתן לבצע פעולות על מספרים מרוכבים, - מוחלט. הפעולה מוגדרת באופן הבא: ערך למשל a + bi = a*a + b*b 18

ף צ. גד. Complex ז public class Complex{ public double real; public double im; public double abs(){ return Math.sqrt(real*real + im*im); 19

. ף ד ד Complex public class Complex{ public double real; public double im; public void update(double otherreal, double otherim){ this.real = otherreal; this.im = otherim; 20

21 שיטה יכולה לשנות את השדות של האובייקט! שימו לב: השיטה update ניגשת למשתנים של האובייקט ומשנה אותם. כלומר, השיטה משנה את מצב האובייקט. Complex c1 = new Complex(1, 0.5); c1.update(11.1, 9.5); System.out.println(c1.toString()); // 11.1 + 9.5 i

הכמסה )encapsulation( 22 עקרון המאפשר לאובייקט להכיל את המצב שלו ואת השיטות הקשורות לו. הרעיון: הצגת היכולות של אובייקט ע"י השיטות שמוגדרות כ-,public וללא הצגת המבנה הפנימי של האובייקט )כיצד הוא בנוי( המשתמש לא צריך לדעת כיצד האובייקט עובד, רק מה הוא עושה אלא רעיון זה דומה לרעיון שפונקציה מבצעת פעולות מסוימות, ומי שמשתמש בפונקציה, לא צריך לדעת כיצד היא ממומשת

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

Setters ו- Getters 24 אחת מהטכניקות שתעזור לשמור על עקרון ההכמסה היא שימוש בשיטות על מנת לחשוף את המצב של האובייקט getter שיטה אשר מחזירה ערך של שדה מסוים setter שיטה אשר קובעת ערך של שדה מסוים בעזרת השיטות האלו נוכל לשנות את מצב האובייקט, תוך כדי שמירה על עקרון ההכמסה

Setters ו- Getters 25 public class Complex{ public double real; public double im; דוגמה public double getreal() { return this.real; public void setreal(double newvalue) { this.real = newvalue; getter setter

Visibility Modifiers 26 public class Complex{ public double real; מה הבעיה בדוגמה הקודמת? public השדה real מוגדר כ- לכן עדיין ניתן לשנות את ערכו מחוץ למחלקה, לדוגמה: Complex c = new Complex(); c.real = 13.0;

Visibility Modifiers 27,Java ניתן להגביל גישה לשדה בעזרת שינוי visibility modifier של השדה ב- ה- כבר ראינו שימוש ב-,public :visibility modifier אשר מאפשר גישה לשדה לכולם )גם מחוץ למחלקה( ישנו visibility modifier נוסף: private אשר מגביל את הגישה לשדות, כך שרק שיטות של המחלקה יוכלו לגשת אליו

Visibility Modifiers 28 public class Complex { private double real; מה יקרה בדוגמה הבאה: כאשר ננסה לגשת לשדה ממחלקה אחרת? Complex c = new Complex(); c.real = 13.0; נקבל שגיאת קומפילציה היות ואנחנו מנסים לגשת לשדה פרטי. נוכל לתקן את זה על ידי שימוש בsetter.

29 Visibility Modifiers ראינו כי ניתן להגביל גישה לשדה, אך ניתן להגביל גישה גם עבור שיטות של המחלקה ניתן לקבוע חלק מהשיטות כ- private )public )במקום שיטה שמוגדרת כ- private משמשת כשיטת עזר לביצוע פעולות פנימיות של המחלקה

this 30 ראינו כי ניתן להגדיר מספר בנאים למחלקה בעזרת העמסה )Overloading( ניתן לקרוא מבנאי אחד לבנאי אחר בעזרת המילה this השמורה: לדוגמה: מה היתרון בשימוש בדרך זו? public MyString(MyString other){ this(other.elements); ( ) הקריאה חייבת להתבצע בשורה הראשונה של הבנאי

this 31 דוגמה נוספת: מה עושה הבנאי השני? public class MyString{ private char[] elements; private int length; public MyString(String s) { public MyString() { this("");

this 32 ניתן להשתמש ב - this על מנת להבדיל בין שדה לבין פרמטר או משתנה לוקאלי בעלי אותו שם. לדוגמה: public class MyString{ private char[] elements; private int length; בעזרת האופרטור ).( public MyString(char[] elements, int length) { this.length = length; this.elements = new char[this.length]; for (int i = 0; i < this.length; i=i+1) this.elements[i] = elements[i];

Dynamic Array 33 Design class DynamicArray, representing a growing array. The underlying array has some initial capacity, and logical size 0. Once logical size is over capacity, underlying array doubles in size. Create a dynamic array of capacity 10, and add 100 numbers to it, where each number is previous number + 2. Multiply each number in the array by 3. Print the array using its String conversion method

34 Dynamic Array

35 Dynamic Array - Impl

36 Dynamic Array - Impl

37 Dynamic Array - Impl

38 Dynamic Array - Usage