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

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

Slide 1

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

PowerPoint Presentation

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

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

Microsoft Word - Ass1Bgu2019b_java docx

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

PowerPoint Presentation

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

PowerPoint Presentation

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

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

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

PowerPoint Presentation

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

PowerPoint Presentation

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

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

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

תרגול 1

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

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

PowerPoint Presentation

Tutorial 11

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

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

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

PowerPoint Presentation

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

Slide 1

פייתון

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

Slide 1

PowerPoint Presentation

PowerPoint Presentation

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

Microsoft Word B

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

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

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

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

Slide 1

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

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

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

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

Microsoft PowerPoint - rec3.ppt

Slide 1

ייבוא וייצוא של קבצי אקסל וטקסט

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

Microsoft Word - c_SimA_MoedB2005.doc

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

Slide 1

Microsoft Word - דוגמאות ב

Slide 1

Slide 1

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

PowerPoint Presentation

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

ex1-bash

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

Microsoft PowerPoint - lec10.ppt

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

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

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

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

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

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

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

PowerPoint Presentation

תרגול 1

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

Slide 1

Microsoft PowerPoint - rec8.ppt

Microsoft PowerPoint - lec9.ppt

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

HTML - Hipper Text Makeup Language

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

PowerPoint Presentation

שאלה 2. תכנות ב - CShell

234114

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

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

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

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

Slide 1

1

מצגת של PowerPoint

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

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

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

Microsoft PowerPoint - 06_inheritance_noBackgroung.ppt

מכללת הדסה, הפקולטה למדעי המחשב מבוא לתכנות מונחה עצמים והנדסת תוכנה סמסטר א', תשע"ו תרגיל 2 תאריך אחרון להגשה: קמפוס הנביאים יום א', 29/11/2015 בשעה

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

תמליל:

1 תוכנה 1 תרגיל מספר 7 מנשקים Interfaces הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה- moodle בלבד.(http://moodle.tau.ac.il/) יש להגיש קובץ zip יחיד הנושא את שם המשתמש ומספר התרגיל )לדוגמא, עבור המשתמש aviv יקרא הקובץ.)aviv_hw7.zip קובץ ה- zip יכיל: א. קובץ פרטים אישיים בשם details.txt המכיל את שמכם ומספר ת.ז. ב. קבצי ה- java של התוכניות אותם התבקשתם לממש, כולל תיקיות החבילה. חלק א' )40 נק'( - צורות בחלק זה נתרגל כתיבת מחלקות המממשות מנשק נתון. לאחר מכן, נשתמש בהן בעזרת תכונת הפולימורפיזם של תכנות מונחה עצמים ב- Java. public interface Shape { // Returns the shape's area public float getarea(); // Returns the shape's perimeter public float getperimeter(); נתון המנשק :Shape // Returns a string representation of the shape details. // The returned string would include the shape's name, its fields // and their corresponding values. public String getdetails(); עליכם לכתוב שלוש מחלקות המממשות את המנשק.Shape להלן פירוט חתימת הבנאי של כל אחת מהן )כל בנאי מקבל כפרמטרים את הנתונים הנדרשים להגדרת הצורה אותה הוא יוצר(:.1 // x and y are the coordinates of the upper left corner public Rectangle (int x, int y, int width, int height) // x and y are the coordinates of the canter public Circle (int x, int y, int radius) // x and y are the coordinates of the ellipse center // semimajoraxis is the large radius of the ellipse // semiminoraxis is the small radius of the ellipse public Ellipse(int x, int y, int semimajoraxis, int semiminoraxis)

2 כל המחלקות בחלק זה ימומשו כחלק מחבילה בשם.il.ac.tau.cs.sw1.shapes על כל מחלקה להכיל שדות פרטיים אליהם ניתן לגשת עם מתודות getter ו- setter ציבוריות. כל אחת משלוש המחלקות מממשת את המנשק Shape ועל כן צריכה לממש את המתודות המוגדרות בו. המתודה getdetails תחזיר מחרוזת המייצגת את פרטי הצורה ותכיל את שם הצורה, ואת כל השדות שבה לצד הערכים שלהם. דוגמא למחרוזות שתוחזרנה עבור מלבן, ריבוע ואליפסה בהתאמה: "Rectangle: X=100, Y=150, Width=50, Height=50" "Circle: X=100, Y=150, Radius=50" "Ellipse: X=100, Y=150, SemiMajorAxis=50, SemiMinorAxis=30" המתודות getarea ו- getperimeter יחזירו את שטח והיקף הצורה בהתאמה )שימו לב שלצורך החישוב יש להשתמש בקבוע Math.PI לקבלת הערך פאי(. אליפסה שטח האליפסה יחושב ע"י הנוסחא: S = π SemiMajorAxis SemiMinorAxis היקף האליפסה יחושב ע"י הקירוב הבא: SemiMinorAxis) P = π (SemiMajorAxis + עתה נעבור לכתיבת התוכנית )המחלקה( ShapeDimensionCalculator שתעשה שימוש בטיפוסי הצורות שיצרתם בסעיף הקודם. התוכנית תקבל מהמשתמש )דרך ה- )System.in סדרה של נתוני צורות, תחשב עבור כל צורה את שטחה ואת היקפה, ולבסוף תדפיס דו"ח מסכם לקובץ הפלט..2 נתחיל בכתיבת המתודה getshapesfromuser )בתוך המחלקה )ShapeDimensionCalculator שהינה בעלת החתימה הבאה: public static Shape[] getshapesfromuser() המתודה תדפיס למסך תפריט שיאפשר למשתמש להגדיר צורות, תקלוט את נתוני הצורות דרך המקלדת, ותחזיר לבסוף מערך מטיפוס Shape )שימו לב שמערך מטיפוס של המנשק Shape יכול להכיל מופעים של מחלקות שונות המממשות את המנשק(. עבור כל צורה שנבחרה ע"י המשתמש, תבקש המתודה את הנתונים הנדרשים לבנייתה. בגמר הכנסת הנתונים עבור צורה מסויימת, המתודה תיצור אובייקט מהמחלקה המתאימה )אליפסה,

3 מלבן או עיגול( ותוסיף אותו למערך הצורות. לאחר מכן תדפיס המתודה הודעה שהצורה התווספה )תוך שימוש במתודת ה- getdetails ( של אובייקט הצורה. דוגמא לתוכן חלון ה- Console בגמר הרצת המתודה )קלט המשתמש מופיע בירוק(: Shape Dimension Calculator E Please enter X coordinate: 100 Please enter Y coordinate: 100 Please enter semi-major axis length: 50 Please enter semi-minor axis length: 30 Shape added: [Ellipse: X=100, Y=100, SemiMajorAxis=50, SemiMinorAxis=30] R Please enter X coordinate: 50 Please enter Y coordinate: 50 Please enter width: 50 Please enter height: 30 Shape added: [Rectangle: X=200, Y=200, Width=50, Height=30] C Please enter X coordinate: 300 Please enter Y coordinate: 300 Please enter radius: 50 Shape added: [Circle: X=300, Y=300, radius=50] K Unknown command. Please try again. X

4 עליכם לממש את המתודה על פי דוגמת הפלט המופיע לעיל. בדוגמת הרצה זו, המתודה תחזיר מערך מטיפוס Shape המכיל 3 אובייקטים שנוצרו על פי נתוני המשתמש )המערך יכול להיות גדול יותר ושאר ערכיו יהיו.)Null הערות: המשתמש יכול להכניס 20 צורות לכל היותר. ריצת המתודה תסתיים אם המשתמש בחר באפשרות היציאה בתפריט )הקיש על X (, או אם הוכנסו 20 צורות. ניתן להניח שהמשתמש מכניס קלט חוקי )אותיות או מספרים שלמים כנדרש(, אך אם הוקש תו שאינו כלול בתפריט, יש להדפיס למסך again.","unknown command. Please try ולהדפיס מחדש את התפריט )ראו קבצי הדגמה(. ממשו את המתודה writeshapestofile אשר מקבלת מחרוזת המייצגת שם קובץ-פלט ומערך מטיפוס Shape המחזיק אובייקטים של צורות, וכותבת דו"ח מסכם לקובץ על פי הדוגמא המובאת בהמשך..3 חתימת המתודה: public static void writeshapestofile(string outputfilename, Shape[] shapes) המתודה תכתוב לקובץ את רשימת הצורות ביחד עם ערכי ההיקף והשטח של כל צורה. בסיום הקובץ יודפס סה"כ מספר הצורות הכלולות במערך, כמות הצורות מכל סוג, סכום ההיקפים שלהם וסכום השטחים שלהם. עליכם לממש את המתודה כך שתשמור לקובץ את הפלט הבא עבור הנתונים שהוכנסו בדוגמא של הסעיף הקודם: Shape Dimension Calculator Ellipse: X=100, Y=100, SemiMajorAxis=50, SemiMinorAxis=30 Area: 4712.39, Perimeter: 251.33 Rectangle: X=50, Y=50, Width=50, Height=30 Area: 1500.00, Perimeter: 160.00 Circle: X=300, Y=300, Radius=50 Area: 7853.99, Perimeter: 314.16 Total number of shapes: 3 Number of Circles: 1 Number of Ellipses: 1 Number of Rectangles: 1 Total Area sum: 14066.38 Total Perimeter sum: 725.49 הערות: עבור כל צורה יופיעו 2 שורות בקובץ הפלט: השורה הראשונה היא תוצר של מתודת ה- getdetails של הצורה, והשורה השניה מציגה את ערכי השטח וההיקף כפי שהתקבלו מהפעלת המתודות המתאימות בכל אחד מהצורות.

5 ייתכן והמערך אותו תקבל המתודה יהיה גדול יותר ממספר הצורות אותן הוא מכיל )כלומר החל ממקום מסויים במערך יתכן וערך התאים הוא.)Null ניתן להניח שלפחות במקום הראשון המערך יש צורה אחת שאינה.null יש להדפיס את כל השברים עם רמת דיוק של 2 ספרות לאחר הנקודה. (IP).Internet Protocol דוגמאות לכתובות IP הן: חלק ב' )40 נק'( כתובת IP המנשק IPAddress המופיע למטה מייצג כתובת של 127.0.0.1 192.168.1.10 כתובת,IP כפי שניתן לראות, מורכבת מארבעה חלקים. ערכו של כל אחד מהחלקים הוא מספר שלם בין 0 ל- 255. בסעיף זה נממש את המנשק IPAddress על ידי שלושה ייצוגים שונים: הראשון עושה שימוש במחרוזות, השני במערך של מספרים מסוג short ואילו השלישי משתמש ב- int יחיד )הסבר מפורט בהמשך(. א. כתבו שלוש מחלקות שונות המממשות את המנשק IPAddress המוגדר למטה: 1. מחלקה בשם,IPAddressString המממשת את המנשק בעזרת ייצוג פנימי של.String 2. מחלקה בשם,IPAddressShort המממשת את המנשק בעזרת ייצוג פנימי של מערך בגודל 4 של.short כל תא במערך יחזיק מספר בתחום 255..0. 3. מחלקה בשם,IPAddressInt ה מממשת את המנשק בעזרת int יחיד. לכל אחת מהמחלקות יהיה בנאי המתאים לייצוג הפנימי שלה וכמובן כל אחת מהן מממשת את המנשק. ניתן להניח בחוזה שהבנאים מקבלים קלט תקין ליצירת כתובת IP )בהתאם לייצוג הפנימי של כל מחלקה(. public interface IPAddress { /** * Returns a string representation of the IP address, e.g. * "192.168.0.1" */ public String tostring(); /** * Compares this IPAddress to the specified object * @param other * the IPAddress to compare the current against * @return true if both IPAddress objects represent the same * IP address, false otherwise. */ public boolean equals(ipaddress other); /** * Returns one of the four parts of the IP address. The parts * are indexed from left to right. For example, in the IP * address 192.168.0.1 part 0 is 192, part 1 is 168, * part 2 is 0 and part 3 is 1. * (Each part is called an octet as its representation * requires 8 bits.) * @param index * The index of the IP address part (0, 1, 2 or 3)

6 * @return The value of the specified part. */ public int getoctet(int index); /** * There are four classes of private networks * (http://en.wikipedia.org/wiki/ipv4#private_networks) * 10.0.0.0 10.255.255.255 * 172.16.0.0 172.31.255.255 * 192.168.0.0 192.168.255.255 * 169.254.0.0 169.254.255.255 * * This query returns true if this object is a private network address */ public boolean isprivatenetwork(); להלן פירוט לגבי אופן מימוש הייצוגים השונים: 1. מחרוזת יש להשתמש במחרוזת יחידה לצורך ייצוג כתובת ה. IP כל הפעולות יבוצעו בעזרת מחרוזת זו. 2. מערך כל אחד מחלקי הכתובת )מספר שלם 0-255( יוחזק בתא במערך. 3. int נשים לב שכל אחד מחלקי כתובת ה- IP הוא מספר שלם בתחום 0-255 )כולל(, לפיכך ניתן לייצג אותו בעזרת 8 ביטים. על כן, את ארבעת חלקי הכתובת ניתן לייצג באמצעות 32 ביטים )4 בתים( וזהו בדיוק גודלו של.int לפיכך, נשתמש ב- int לא כמספר, אלא כרצף בינארי של 32 ביטים. לדוגמא, הכתובת 127.0.0.1 תיוצג ע"י רצף הביטים 01111111000000000000000000000001. החלק הראשון ייוצג ע"י הביטים במקומות 0-7 )משמאל לימין(, החלק השני ע"י הביטים 8-15, השלישי ע"י 16-23 והרביעי ע"י ביטים 24-31. >- 127 01111111 )ביטים 0-7 משמאל לימין( >- 0 00000000 )ביטים )8-15 >- 0 00000000 )ביטים )16-23 >- 1 00000001 )ביטים )24-31 הנחיה: על מנת להשתמש בייצוג זה, עליכם לדעת איך לחלץ את ערכו של כל בית )8 ביט( מהרצף הבינארי באורך 4 הבתים )32 ביטים( שמרכיב את ה- int. נציע 2 דרכים אפשריות: 1. שימוש באופרטורים על ביטים )<<,>>,~,&, ( להזזה או למיסוך של הביטים ברצף הבינארי כך שיאופסו כל הביטים מלבד אלו השייכים לבית הרצוי. 2. שימוש במחלקה ByteBuffer ByteBuffer.allocate(4) צרו אובייקט בגודל 4 בתים ע"י i. להצבה ולחילוץ של בית במיקום put(i)/get(i) היעזרו במתודות שימו לב שהמתודה get(i) תחזיר את הבית באינדקס i באובייקט ה- ByteBuffer שיצרתם כמשתנה מטיפוס byte עם טווח ערכים של.(-128..+127)

7 כדי לבצע המרה של בית b מטיפוס byte למשתנה מטיפוס int עם הערכים 255..0 לו אנו זקוקים, ניתן להשתמש בטריק הבא: int i = (int) )b & 0xFF(; טווח הערה חשובה: עליכם לממש את המתודות באופן שונה בכל מחלקה בהתאם לייצוג הפנימי. אין להמיר את הייצוג הפנימי לייצוג אחר לצורך מימוש פעולה )רק לצורך פלט(. המחלקות השונות לא "ייעזרו" זו בזו )למשל, אסור להשתמש ב- IPAddressString על מנת לממש את.)IPAddressInt בנוסף, ממשו את המחלקה IPAddressFactory המגדירה את המתודות הבאות: public class IPAddressFactory { public static IPAddress createaddress(string ip) {... public static IPAddress createaddress(short[] ip) {... public static IPAddress createaddress(int ip) {... כל אחת מהמתודות הסטטיות יוצרת אובייקט מטיפוס,IPAddress כשהאובייקט הקונקרטי נקבע על סמך טיפוס הקלט. הערה: מחלקה שתפקידה היחיד הוא יצור אובייקטים של מחלקות אחרות נקראת.factory class מחלקות אלו מסתירות את פרטי יצור האובייקטים מלקוחות של אובייקטים אלו. השימוש בטכניקה זו נועד להסתיר את המחלקות הקונקרטיות שמממשות מנשק. מצורפת תכנית בשם ובמנשק. IPAddressFactory המדגימה את השימוש במחלקה TestIPAddress בחלק זה עליכם להגיש את כל הקבצים המצורפים בתיקייה,ip מלבד הקובץ,TestIPAddress שנועד לבדיקה עצמית בלבד, אותו אתם יכולים להרחיב ולשנות. חלק ג' )20 נק'( חידות ג'אווה תיקון מחלקות קיימות בכל סעיף של חלק זה תקבלו חבילה ובה מספר מחלקות. חבילות אלה מצורפות לתרגיל באתר הקורס. עליכם לשנות את הקוד בהתאם להנחיות, כדי לקבל את התוצאה הנדרשת. יש להגיש את כל המחלקות )כולל אלה שלא שיניתם בהם דבר, וכמובן, הקוד המתוקן(. 1. החבילה il.ac.tau.cs.sw1.riddle.c מכילה שתי מחלקות, A ו- B.

8 B היא תכנית. עליכם לשנות את חתימות המתודות והשדות ב- A כך ש-)א'( הקוד יתקמפל ללא שגיאות, ו- )ב'( B תדפיס, כשורה אחרונה,.success! ייתכן שיודפסו שורות נוספות לפני שורה זו, המשמשות לבקרה בלבד )כל עוד מודפס success! הפתרון נכון(. מותר: לשנות את חתימות המתודות ואת השדות, כולל: שינוי נראות public( ל- private ולהפך(, הוספת והורדת,static שינוי טיפוס ההחזרה של מתודה, ושינוי הארגומנטים למתודה. אסור: לשנות את B, לשנות קוד בתוך מתודות A, לשנות את שמות המתודות ב- A ולשנות את ערך השדה k. 2. החבילה il.ac.tau.cs.sw1.riddle.d מכילה שתי מחלקות, A ו- B. A היא תכנית המדפיסה מס' שלם. בתוך קוד A מופיעות 4 קריאות לפונקציה seti של מחלקה B, עם הארגומנטים j,,b.i k, ו- l בהתאמה. עליכם לשנות את הארגומנטים של seti כך שהקוד יתקמפל ללא שגיאות, ובסופו של דבר יודפס המס' 210. עדיין, הארגומנט של כל קריאה חייב להיות k j, I, או.l מותר: לשנות את הארגומנטים של,setI למשל במקום בו הופיע seti(j) אפשר לשנות ל-.this.l או B.I אם יש צורך ניתן להוסיף שם מחלקה או מופע לפני שדה, למשל.setI(k) אסור: להשתמש במשתנים\שדות מלבד הארבעה הנ"ל, או במס' טבעיים. אין לשנות את B או כל קוד ב- A מלבד הארגומנטים המועברים ל-.setI בהצלחה!