___תאריך הבחינה _______________ 28

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

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

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

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

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

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

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

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

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

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

PowerPoint Presentation

תרגול 1

Slide 1

PowerPoint Presentation

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

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

Microsoft PowerPoint - 07_tdd.ppt

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

PowerPoint Presentation

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

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

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

PowerPoint Presentation

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

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

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

PowerPoint Presentation

Overview of new Office 365 plans for SMBs

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

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

פייתון

תרגול 1

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

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

Microsoft Word - Ass1Bgu2019b_java docx

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

Microsoft Word - pitaron222Java_2007.doc

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

Microsoft PowerPoint - 07_tdd.ppt

Slide 1

אתגר קוביות מחייכות תכולה: 12 קוביות חוברת הוראות ופתרונות ספרון הכולל 60 חידות חידות בדרגות קושי שונות תפיסה חזותית וחשיבה לוגית הקדמה המשחק פרצופים

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

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

Microsoft PowerPoint - rec3.ppt

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

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

Slide 1

תרגול 1

תרגול מס' 1

PowerPoint Presentation

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

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

Slide 1

Microsoft Word - c_SimA_MoedB2005.doc

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

מצגת של PowerPoint

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

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

Microsoft PowerPoint - lec10.ppt

Microsoft Word - c_SimA_MoedA2006.doc

תרגול 1

Microsoft Word B

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

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

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

Tutorial 11

סיכום הוראות Touch touchend יקרא לפונקציה כשיסתיים המגע עם הסמארטפון. - touchmove יקרא לפונקציה במהלך תזוזת המגע עם הסמארטפון. touchstart יקרא לפונקצי

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

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

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

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

Microsoft PowerPoint - 10_threads.ppt

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

מצגת של PowerPoint

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

ex1-bash

Slide 1

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

Homework Dry 3

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

PowerPoint Presentation

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

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

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

1

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

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

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

MethodAgile

תמליל:

21.02.2018 ד"ר עזאם מרעי. יסודות הנדסת תוכנה.. מועד: ב'. 202-1-3051 תאריך הבחינה: שם המרצה: שם הקורס: מספר הקורס: שנה: 2018 משך הבחינה: סמסטר: א' 3 שעות הנחיות כלליות: נא לוודא כי בשאלון זה 17 עמודים + 17 עמודים שבנספח. יש לענות על כל השאלות בגוף המבחן בלבד. אין לחרוג מהמקום המוקצה )במקרים חריגים יש לבקש אישור ממרצה / מתרגל(. מומלץ להשתמש במחברת הבחינה כטיוטה. סך הניקוד במבחן הוא 100 כדלהלן: 25 נק' = שאלה 1: בדיקות, מבחני קבלה, TDD ו- XP 25 נק' = שאלה 2: תבניות עיצוב 25 נק' = שאלה :3 Refactoring 25 נק' = שאלה :4 Contract Design by אם אינך יודעים את התשובה, ניתן לכתוב "לא יודע" ולקבל 20% מהניקוד על הסעיף / השאלה. אין לכתוב בעיפרון. )1 )2 )3 )4 )5 1

שאלה [ 1 25 ] בדיקות,(T) מבחני קבלה,(AT) TDD ו- XP א. [ 4 ] )T( מיינו יתרון אחד וחסרון אחד לשימוש ב- Methods.Formal Verification [ 4 ] )T( בחינת קוד inspection( )code היא שיטה אחת מרבות לבדיקת קוד בזמן הפיתוח. שגיאות מחפשים בבדיקות הללו? תנו דוגמא. ב. אילו ציינו שני יתרונות לשיטה והסבירו כל אחד בקצרה. ג. [ 3 ] (AT) ציינו שלוש מהמטרות של פעילות הבודק. 2

[ 4 ] (AT) הסבירו את התהליך שבבסיסו הרעיון של זיהוי הנחות סמויות באמצעות ניתוח סיפור המשתמש מנקודת מבט של משתמש, לקוח ומפתח. ד. א. [ 2 ] (XP) איזה מהבאים אינו עקרון של?XP מטפורה (Metaphor) עיצוב פשוט Design( )Simple תקן קידוד Standard) (Coding פתוח רזה Development( )Lean בעלות קיבוצית Ownership( )Collective.1.2.3.4.5 [ 5 ] (XP) בתכנון גרסת release פועלים לפי התחייבות לפי סיפורים. תארו בקצרה כל שיטה. ב. משתי אחת שיטות: התחייבות או תאריך לפי ג. [ 3 ] (TDD) מהם הצעדים בפתוח מונחה טסטים?TDD 3

שאלה.2 [ 25 ] תבניות עיצוב [ 8 ] חברה שמפתחת מערכת מידע לארגון גדול התבקשה לאפשר גישה למערכת מידע על פי הרשאות גישה. המשתמשים יכולים להשתמש בתכונות שונות של המערכת על פי הרשאות הגישה שלהם. למשל, לחלק מהמשתמשים יש גישה לדוחות המופקים על ידי המערכת, ולחלקם לא. חלקם יכולים לשנות את הדוחות, בעוד כמה אחרים יכולים רק לקרוא אותם. למשתמשים מסוימים יש גם זכויות ניהול, המאפשרים להוסיף או להסיר משתמשים אחרים. לכל אובייקט משתמש יש אובייקט בקרת גישה, המשמש לסיפוק או הגבלת גישה למערכת. אובייקט בקרת גישה הוא אובייקט כבד וגדול, ויצירתו יקרה מאוד מכיוון שהוא מחייב איסוף נתונים ממשאבים חיצוניים מסוימים, כגון בסיסי נותנים או קבצים המתארים מצב של רכוש וכד'. א. מפתחי המערכת בחרו להשתמש בתבנית העיצוב,Prototype על מנת לתת מענה לדרישה. הסבירו, מה הבעיה שעוסקת בה התבנית? הסבירו מדוע השימוש בתבנית מתאים לדרישה המתוארת לעיל. הדגימו את הפתרון בעזרת תרשים מחלקות. לכל מחלקה שציירתם, תנו שם משמעותי בהקשר של המערכת הנ"ל, כתבו בתוכה שדות חשובים ושיטות רלוונטיות לפתרון וציינו מעליה את שם התפקיד בו היא משמשת בתבנית. 4

[ 5 ] מפתח הציע שהתבנית תאפשר שיתוף אותו אובייקט בקרת גישה עם משתמשים באותה רמה. איזה תבנית לדעתכם מספקת דרישה זו? ב. למה לדעתכם פתרון זה לא פותר את הבעיה של השאלה? ג. [ 6 ] נתון הקוד הבא: public interface ItemElement { public int calculateprice(paymentmethod paymentmethod); public interface PaymentMethod { int applypaymentmethod(book book); int applypaymentmethod(fruit fruit); public class Book implements ItemElement { private int price; private String isbnnumber; public Book(int cost, String isbn){ this.price=cost; this.isbnnumber=isbn; public int getprice() { return price; public String getisbnnumber() { return isbnnumber; @Override public int calculateprice(paymentmethod paymentmethod) { return paymentmethod.applypaymentmethod(this); 5

public class Fruit implements ItemElement { private int priceperkg; private int weight; private String name; public Fruit(int pricekg, int wt, String nm){ this.priceperkg=pricekg; this.weight=wt; this.name = nm; public int getpriceperkg() { return priceperkg; public int getweight() { return weight; public String getname(){ return this.name; @Override public int calculateprice(paymentmethod paymentmethod) { return paymentmethod.applypaymentmethod(this); public class PaymentMethodImpl implements PaymentMethod { @Override public int applypaymentmethod(book book) { int cost=0; //apply 5$ discount if book price is greater than 50 if(book.getprice() > 50){ cost = book.getprice()-5; else cost = book.getprice(); System.out.println("Book ISBN="+book.getIsbnNumber() + ", cost= " + cost); return cost; @Override public int applypaymentmethod(fruit fruit) { int cost = fruit.getpriceperkg()*fruit.getweight(); System.out.println(fruit.getName() + " cost = "+cost); return cost; public class ShoppingCartClient { public static void main(string[] args) { ItemElement[] items = new ItemElement[]{new Book(20, "1234"), new Book(100, "5678"), new Fruit(10, 2, "Banana"), new Fruit(5, 5, "Apple"); int total = calculateprice(items); System.out.println("Total Cost = "+total); private static int calculateprice(itemelement[] items) { PaymentMethod paymentmethod = new PaymentMethodImpl(); int sum=0; for(itemelement item : items){ sum = sum + item.calculateprice(paymentmethod); return sum; 6

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

[ 6 ] במערכת מבחני הקבלה שמימשתם במהלך הקורס השתמשנו בשלוש תבניות עיצוב. ציינו מה הן שלוש התבניות והסבירו איזה צורך במבחני הקבלה פותרת כל אחת מהן. ד. ציירו את תרשים המחלקות של מערכת מבחני הקבלה ועבור כל מחלקה בתרשים ציינו את שמה בתוך הריבוע ומעליה את התפקיד/ים אותם היא ממלאה בתבנית. 8

שאלה [ 3 25 ] כללי שכתוב קוד (Refactoring) [ 8 ] נתון ה- refactoring הבא:.1 Form Template Method You have two methods in subclasses that perform similar steps in the same order, yet the steps are different. Get the steps into methods with the same signature, so that the original methods become the same. Then you can pull them up איזה ריח רע עשוי להוביל אותנו להפעלת Refactoring זה? נמקו את תשובתכם. נסחו צעדים לביצוע ה- refactoring )מכניקה( )כלליים(. הקפידו על צעדים זהירים. _.1.2.3 _ 9

.4.5 את ה- Refactoring שלמדנו לקבוצות. שלוש הגדירו קבוצות כל ועל כאלה [ 6 ] אפשר לחלק אחת ספקו דוגמה..2.1 _.2 _.3 [ 5 ] מה ה- refactoring ההופכי ל- Class?Extract הסבירו מה המוטיבציה ל- refactoring ההופכי. א. ב. ספקו שני ריחות רעים שמובלים ל- refactoring זה. 10

[ 6 ] נתון הקוד הבא:.3 String[] row = new String[3]; row [0] = "Liverpool"; row [1] = "15"; על הקוד והתקבל הקוד הבא: Performance row = new Performance(); row.setname("liverpool"); row.setwins("15") המפתח ביצע refactoring נסחו את ה- refactoring הנ"ל על פי המבנה הבא: שם: מטרה: צעדים לביצוע )מכניקה(:.1.2.3.4.5.6 11

Design by Contract שאלה [ 4 25 ].1 [ 10 ] במחלקה Customer ישנה השיטה movetoroom(room newroom, int,numberofnights) המאפשרת ללקוח להחליף חדר לחדר אחר newroom ל- NumberofNights לילות. בנוסף קיימות השיטות הבאות: Customer מחזירה את מספר הלילות הנותרים getremainnights():int getplan(): Plan A Plan is an enumerated type with values {Free, Limited מחזירה את התכנית של הלקוח.,Free שמאפשרת מעבר או ביטול.,Limited שמסמנת תכנית קשיחה שלא גמישה לשינויים. מחזירה את החדר של הלקוח getcurrentroom():room מחזירה את סך החיוב של הלקוח בחדר שהוא גר בו כרגע getcharger():int Room isavailable(): Boolean מחזירה את המחיר של החדר getprice(): int עליכם להשלים את החוזה של השיטה.movetoRoom השיטה מאפשרת את המעבר רק אם החדר המבוקש ריק, מספר הלילות המבוקש קטן או שווה למספר הלילות שנותרו והלקוח בעל תוכנית.Free השיטה משנה את הסטטוס של החדרים. התשלום עבור החדר החדש הוא מספר שנע בין ההפרש של התשלום לחדר החדש לחדר הנוכחי כפול מספר הימים, לבין מחיר מלא שזה מחיר החדר החדש כפול מספר הימים. לדוגמה אם מחיר החדר הנוכחי 100$ ללילה, מחיר החדר החדש 120$ ללילה, מספר הלילות המבוקש הוא 3 אז המחיר שהלקוח ישלם נמצא בין 3*20 לבין 3*120. חיוב שלילי משמעותו שהלקוח יקבל החזר. Class Customer movetoroom(room newroom, int NumberofDays):void require:.1 ensure: 12

המחלקה ConferenceCustomer מרחיבה את המחלקה.Customer המחלקה מייצגת לקוחות שמשתתפים בכנס שמתקיים בבית המלון. לקוחות אלה יכולים לעבור חדר גם אם בחרו בתכנית Limited אך בתנאי שמספר הלילות שבחרו גדול מ- 2 ומחיר החדר הוא לפחות כמחיר החדר הנוכחי. האם ניתן לכתוב חוזה שיאפשר את ההרחבה הנדרשת מבלי לשנות את החוזה של מחלקת האב? אם כן, רשמו חוזה לתת המחלקה שיאפשר הרחבה כזאת. אם לא הסבירו מדוע..2 _ המחלקה VIPCustomer מאפשרת ללקוחות VIP של בית המלון לעבור חדר בכל תכנית. אם מחיר החדר החדש גדול בכל היותר ב- 20% אחוז ממחיר החדר הנוכחי, הלקוח לא מחויב על החדר. אם המחיר גדול מ- 20% הלקוח משלם את המחיר של מחלקת העל עם הנחה נוספת של 10%. האם ניתן לכתוב חוזה שיאפשר את ההרחבה? אם כן, כתבו את החוזה. אם לא, הסבירו למה. מותר לשנות את החוזה של מחלקת העל..3 13

[ 15 ] כתיבת חוזה..2 השאלה מתמקדת בגרסת המבחן של משחק לוח "פנטגו", המהווה פיתוח של משחק ידוע "איקס מיקס דריקס". זה משחק לוח של 6X6 תאים, אשר מחולק לארבעה רובעים זהים.(Quadrants) המשחק מיועד לשני שחקנים, אחד עם כלים שלבנים ואחר עם שחורים. בתחילת המשחק הלוח ריק. לכל אחד משני השחקנים המשתתפים יש 18 כלים "בכיס", בצבע שלו. כאשר השחקן עם "הלבן" מקליק על משבצת ריקה, מופיעה בה אבן לבנה המיוצגת על ידי שינוי הצבע של התא ללבן, וכשהשחקן "השחור" מקליק על משבצת ריקה, מופיעה בה אבן שחורה המיוצגת על ידי שינוי הצבע של התא לשחור. מטרת המשחק: מטרתו של כל שחקן ליצור רצף של חמישה אבנים שלו )חמשה תאים מאותו צבע, לבן או שחור( על הלוח, אופקית, אנכית, או באלכסון. מהלך המשחק: המשחק מתנהל בתורות. השחקן הראשון נקבע באקראי. לכל שחקן בתורו יש שני צעדים אפשריים, והוא בוחר אחד מהם. האפשרות הראשונה היא להקליק על אחד התאים הריקים על הלוח ואז הצבע של התא משתנה לצבע של השחקן ומספר האבנים שלו קטן באחד. האפשרות השנייה היא לסובב את אחד הרובעים 90 מעלות, כאשר הכוונה בסיבוב בגרסה זו הזזה של האבנים בריבוע )לא התאים( 90 מעלות. למשל, במהלך סיבוב ימינה של רובע שמאלי עליון, כל אבן שהייתה בקואורדינטות (y,x) יעבור לתא (x,y-4). כל שחקן רשאי לעשות 18 סיבובים לכל היותר, כפי שמופיע באיור. המשחק נגמר, אם לאחד השחקנים נגמרו הכלים והוא עשה את כל הסיבובים המותרים. לחילופין, המשחק נגמר בניצחון, אם השחקן הצליח ליצור רצף של חמישה כלים שלו על הלוח, אופקית, אנכית, או באלכסון. y x 1 2 3 4 5 6 1 2 3 4 5 6 הערה: ניתן להניח קיום שלוש מחלקות :enumeration טיפוס Color עם 3 הערכים: Black, White, None 14 טיפוס Direction עם שני ערכים Left, Right rotatequadrant (UpLeft, Right) טיפוס Quadrant עם ארבעה ערכים: UpLeft, UpRight, DownLeft, DownRight

על המחלקה Pentago לספק את השירותים (features) הבאים: 1. initialize():pentago Purpose: creates a new Pentago object with two players and a board with 6*6 cells. 2. getcurrentplayer():color Purpose: returns the color of current player: Black or White 3. isgameover():boolean Purpose: returns true if game is over 4. clickmarble(int x, int y):int Purpose: sets the cell (x, y) to the color of the current player and returns the number of remained marbles of the current player. 5. rotatequadrant (Quadrant quadr, Direction dir):void Purpose: rotates the quadrant quadr to direction dir. 6. iswin(player Color):boolean Purpose: returns true if the given player won. False, otherwise 7. nextplayer():color Purpose: returns the next player. 8. getcell(int x, int y):cell Purpose: returns the cell in coordinates (x, y). 9. numberofrotations(player Color):int Purpose: returns the remained possible rotations number of the player player. על המחלקה Cell לספק את השירותים (features) הבאים: 10. getcolor():color Purpose: returns the color of cell: Black or White or None 11. setcolor(color Color):void Purpose: sets the cell color to Color 12. maxneighbors():int Purpose: returns the maximal number of neighbors of this cell of the same color, to any direction פיתוח חוזה עבור המחלקה :Pentago ] 12 [ עבור השיטות 1, 3, 4, 5, 6, 7 של המחלקה Pentago פתחו חוזה לפי הכללים לפיתוח חוזה שנלמדו בכיתה. ניתן להוסיף פעולות נחוצות חדשות אולם יש להצדיק כל הוספה ולכתוב חוזה עבורה אם יש צורך. אפשר כמובן להשתמש בשאר השאילתות שלא כתבתם עבורן חוזה. א. 15

הערה: בכתיבה של החוזה, עבור פונקציה מסוימת, כאשר יש יותר ממקרה אחד, מותר לכם לכתוב פירוט עבור מקרה מייצג ולכתוב הערה ששאר המקרים דומים עם שינויים קטנים. הערה: בכתיבת החוזה לפרוצדורה rotatequadrant ניתן לבחור בתור רובע מייצג רק את.DownLeft או את UpRight 16

] 3 [ במנשק )interface( שהתקבל הבחינו בין סוגי השאילתות והפעולות. יש להציג ארבע קבוצות: פעולות רגילות ו- initialization, ושני סוגי שאילתות. ב. בהצלחה! 17