פרק ראשון - מדעי המחשב

Transcription

פרק ראשון - מדעי המחשב
‫סוג בחינה‪ :‬בחינת מתכונת‬
‫מועד הבחינה‪ :‬קיץ תשע"ב ‪1021‬‬
‫מספר שאלון‪522108 :‬‬
‫ביה"ס נזירות המושיע‬
‫נצרת‬
‫מדעי המחשב‬
‫‪ 1‬יחידות לימוד (השלמה ל‪ 8 -‬יח"ל)‬
‫הוראות לנבחן‬
‫א‪.‬‬
‫משך הבחינה‪ :‬שלוש שעות‬
‫ב‪.‬‬
‫מבנה השאלון ומפתח הערכה‪ :‬בשאלון זה שני פרקים‪.‬‬
‫בפרק זה יש ארבע שאלות ‪,‬‬
‫פרק ראשון –‬
‫(‪)18 X 1‬‬
‫מהן יש לענות על שתיים‪- .‬‬
‫פרק שני‬
‫ג‪.‬‬
‫–‬
‫בפרק זה יש ארבע שאלות‪,‬‬
‫מהן יש לענות על שתיים‪- .‬‬
‫(‪)18 X 1‬‬
‫‬‫‪-‬‬
‫‪ 80‬נקודות‪.‬‬
‫‪ 80‬נקודות‪.‬‬
‫חומר עזר מותר בשימוש‪ :‬כל חומר עזר‪ ,‬חוץ ממחשב הניתן לתכנות‪.‬‬
‫כתוב במחברת הבחינה בלבד‪ ,‬בעמודים נפרדים‪ ,‬כל מה שברצונך לכתוב כטיוטה (ראשי‬
‫פרקים‪ ,‬חישובים וכדומה)‪ .‬רשום טיוטה בראש כל עמוד טיוטה‪ .‬רישום טיוטות‬
‫כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!‬
‫ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנים ולנבחנות כאחד‪.‬‬
‫בהצלחה!‬
‫בחינת מתכונת‬
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫פרק ראשון (‪ 80‬נקודות)‬
‫ענה על שתיים מהשאלות ‪( 4 - 1‬לכל שאלה – ‪ 52‬נקודות)‬
‫שאלה ‪1‬‬
‫נתון עץ בינארי שהצמתים שלו מורכבים ממחסניות של מספרים שלמים‪.‬‬
‫כתבו פעולה רקורסיבית אשר מקבלת כפרמטר עץ בינרי של שלמים ‪ bt‬ומספר שלם ‪ .y‬הפעולה‬
‫מחזירה אמת ‪ true‬אם קיים מסלול בעץ שסכום האיברים של כל צומת (שהינו מחסנית) של‬
‫מסלול זה הוא ‪ ;y‬אחרת הפעולה מחזירה שקר ‪.false‬‬
‫דוגמא‪ :‬עבור ‪ y=15‬והעץ הבא‪ ,‬המתודה תחזיר ‪true‬‬
‫‪1,7,3,4‬‬
‫‪2,2,2,9‬‬
‫‪5,2,1‬‬
‫‪1,5,2‬‬
‫‪10,3,2‬‬
‫בשאלה זו אין צורך לשמור על ערכי המחסניות שבתוך החוליות!‬
‫‪-2-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫שאלה ‪5‬‬
‫נתונה מחסנית שמכילה מחסניות של מספרים שלמים‪ .‬כתבו פעולה שמקבלת את המחסנית‬
‫כפרמטר ומחזירה את מספר הפעמים בהם המחסניות הפנימיות מסודרות בסדר עולה (המספר‬
‫הגדול ביותר נמצא בראש המחסנית)‪ .‬אין צורך לשמור על ערכי המחסניות המקורית‪.‬‬
‫דוגמא‪ :‬בהינתן המחסנית הבאה‪:‬‬
‫‪1‬‬
‫‪8‬‬
‫‪7‬‬
‫‪2‬‬
‫‪6‬‬
‫‪20‬‬
‫‪4‬‬
‫‪21‬‬
‫‪2‬‬
‫‪7‬‬
‫‪80‬‬
‫‪200‬‬
‫‪20‬‬
‫‪10‬‬
‫‪60‬‬
‫‪20‬‬
‫הפעולה תחזיר את הערך ‪.3‬‬
‫כותרת הפעולה‪public static int Count(Stack<Stack<int>> s) :‬‬
‫‪-1-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
3 ‫שאלה‬
:‫נתונות הפעולות הבאות‬
public static bool Check1(int[] arr, int p)
{
if (p == 0)
return true;
if (arr[p] <= arr[p - 2])
return false;
return Check1(arr, p - 2);
}
public static bool Check2(int[] arr, int p)
{
if (p == 1)
return true;
if (arr[p] >= arr[p - 2])
return false;
return Check2(arr, p - 2);
}
public static bool Check3(int[] arr)
{
int last = arr.Length - 1;
if (arr.Length % 2 != 0)
return Check1(arr, last) && Check2(arr, last - 1);
return Check1(arr, last - 1) && Check2(arr, last);
}
:‫ הבא‬arr ‫ונתון המערך‬
0
1
2
3
4
5
6
7
8
1 9 5 8 12 7 20 6 70
/‫המשך מעבר לדף‬/
-3-
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫בחינת מתכונת‬
‫א‪ .‬עקוב‪ ,‬בעזרת טבלת מעקב‪ ,‬אחרי ביצוע הפעולה ‪ Check1‬וכתוב את הפלט כאשר מבצעים‬
‫את הזימון הבא‪ 4( :‬נקודות)‬
‫;)‪Check1(arr, arr.length-1‬‬
‫ב‪ .‬מה מבצעת הפעולה ‪ 4( ?Check1‬נקודות)‬
‫ג‪ .‬עקוב‪ ,‬בעזרת טבלת מעקב‪ ,‬אחרי ביצוע הפעולה ‪ Check2‬וכתוב את הפלט כאשר מבצעים‬
‫את הזימון הבא‪ 4( :‬נקודות)‬
‫;)‪Check2(arr, arr.length-2‬‬
‫ד‪ .‬מה מבצעת הפעולה ‪ 4( ?Check2‬נקודות)‬
‫ה‪ .‬עקוב‪ ,‬בעזרת טבלת מעקב‪ ,‬אחרי ביצוע הפעולה ‪ Check3‬וכתוב את הפלט כאשר מבצעים‬
‫את הזימון הבא‪ 4( :‬נקודות)‬
‫;)‪Check3(arr‬‬
‫הערה‪ :‬בסעיף זה אין צורך להראות את המעקב אחרי הפעולות ‪ Check1‬ו‪)Check2 -‬‬
‫ו‪ .‬מה מבצעת הפעולה ‪ ?Check3‬בתשובתך התייחס לכל האפשרויות‪ 8( .‬נקודות)‬
‫‪-4-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫שאלה ‪4‬‬
‫בתוכנית ‪ Arabs Got Talent‬החליטו למחשב את מערכת שיבוץ המתמודדים והצבעת השופטים‬
‫להם‪ .‬לכן הוקמה מחלקה בשם מתמודד ‪ .Participant‬לכל מתמודד הנתונים הבאים‪:‬‬
‫‪-‬‬
‫שם ‪(name‬מחרוזת)‬
‫‪-‬‬
‫תחביב ‪( hobby‬מחרוזת)‬
‫‪-‬‬
‫מערך בגודל ‪ 3‬שמכיל את הצבעות שלושת השופטים (כל שופט יכול לתת ציון מ‪ 0 -‬עד‬
‫‪.)20‬‬
‫בנוסף בתוכנית הגדירו מחלקה בשם מופע ‪ Show‬שתכונותיו הן‪:‬‬
‫‪-‬‬
‫מערך של מתמודדים (‪ 200‬לכל היותר)‬
‫א‪ .‬ייצג את המחלקה מתמודד ‪ .Participant‬בעת הייצוג יש לרשום את שם המחלקה‪,‬‬
‫התכונות והשיטה הבונה (שים לב שכאשר מייצרים מתמודד אין להוסיף תוצאות‬
‫לשופטים)‪ 3( .‬נקודות)‬
‫ב‪ .‬ייצג את המחלקה מופע ‪ .Show‬בעת הייצוג יש לרשום את שם המחלקה‪ ,‬התכונות‬
‫והשיטה הבונה (שים לב שכאשר מייצרים מופע אין להוסיף מתמודדים בו)‪ 3( .‬נקודות)‬
‫ג‪ .‬כתוב פעולה בשם ‪ AddParticipant‬שמקבלת כפרמטר מתמודד ומוסיפה אותו למופע‪4( .‬‬
‫נקודות)‬
‫ד‪ .‬כתוב פעולה בשם ‪ Vote‬שמקבלת כפרמטר את הצבעות של שלושת שופטים (לפי הסדר)‬
‫על הפעולה לעדכן את הצבעות השופטים במערך ההצבעות של המתמודד‪ 8( .‬נקודות)‬
‫ה‪ .‬כתוב שיטה בשם ‪ FindHobby‬שמקבלת כפרמטר תחביב ומחזירה את כמות המתמודדים‬
‫שיש להם את התחביב הזה‪ 8( .‬נקודות)‬
‫ו‪ .‬כתוב פעולה בשם ‪ GetAvgs‬שמחזירה מערך שמכיל עבור כל שופט את ממוצע הצבעותיו‬
‫לכל המתמודדים‪ 8( .‬נקודות)‬
‫להזכירך‬
‫‪ ‬ניתן להניח קיום שיטות מעדכנות ושיטות מאחזרות )‪ )Set/Get‬לכל התכונות‪.‬‬
‫‪ ‬עבור כל פעולה יש לרשום באופן ברור איפה היא נמצאת (באיזה מחלקה)‪.‬‬
‫‪ ‬עבור כל פעולה יש לרשום באופן ברור את טענת הכניסה וטענת היציאה‪.‬‬
‫‪ ‬ניתן להשתמש בשיטות נוספות‪ .‬במקרה זה יש לרשום את הקוד שלה ולכתוב באיזה מחלקה‬
‫היא נמצאת‪.‬‬
‫‪-8-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫פרק בחירה‬
‫תכנות מונחה עצמים ‪Object Oriented Programming‬‬
‫ענה על שתיים מהשאלות ‪( 8 - 2‬לכל שאלה – ‪ 52‬נקודות)‬
‫שאלה ‪2‬‬
‫"לוח‪-‬משדרים" הינו טבלה המכילה את התוכניות המשודרות במשך שבוע ימים החל מהשעה‬
‫‪ 6:00‬בבוקר ועד השעה ‪ 21:00‬בלילה‪ .‬עבור כל תוכנית ב"לוח המשדרים" יש לשמור את שעת‬
‫תחילתה ושעת סיומה‪ .‬משך כל תוכנית המשובצת בלוח המשדרים הינו שעה שלמה (התוכנית‬
‫מתחילה תמיד בשעה עגולה) – בכל יום קיימות ב"לוח‪-‬משדרים" ‪ 25‬תוכנית‪.‬‬
‫לכל תוכנית נשמר המידע הבא ‪ :‬שם התוכנית ‪( name‬מחרוזת) ‪ ,‬שם מפיק התוכנית ‪producer‬‬
‫(מחרוזת) ‪ ,‬קוד סוג התוכנית ‪( genre‬מספר שלם) ‪ ,‬שנת הפקה ‪( year‬מספר שלם)‬
‫א‪ .‬ממש ב – ‪ C#‬את המחלקה תוכנית (‪ )Program‬מימוש המחלקה צריך לכלול את‬
‫כותרת המחלקה‪ ,‬התכונות שלה ואת השיטה הבונה‪ 4( .‬נקודות)‬
‫ב‪ .‬ממש ב – ‪ C#‬את המחלקה לוח‪-‬משדרים (‪ )Tv‬מימוש המחלקה צריך לכלול את‬
‫כותרת המחלקה‪ ,‬התכונות שלה ואת השיטה הבונה‪ 4( .‬נקודות)‬
‫ג‪ .‬חברות הכבלים יצאו במבצע של ממיר מהפכני‪ ,‬בשלב הראשון הממיר יכיל רק‬
‫חמישה ערוצי ם ‪ ,‬לכל ערוץ יהיה מספר משלו בממיר ‪ ,‬הערוץ הראשון מספרו יהיה ‪,0‬‬
‫והערוץ החמישי מספרו יהיה ‪ , 4‬לכל ערוץ "לוח משדרים" ייחודי לו‪ .‬ממש ב – ‪ C#‬את‬
‫המחלקה ממיר ‪ Converter‬מימוש המחלקה צריך לכלול את כותרת המחלקה‪,‬‬
‫התכונות שלה ואת השיטה הבונה‪ 6( .‬נקודות)‬
‫ד‪ .‬ממש ב – ‪ c#‬את הפעולה שלפניך ‪:‬‬
‫הפעולה מקבלת כפרמטר קוד סוג של‬
‫תוכנית ומציגה כפלט את מספר הערוץ‪,‬‬
‫שם התוכנית היום והשעה בו משודרת‬
‫תוכנית מהזיאנר המתקבל כפרמטר‬
‫)‪void printProgramByGenre(int genre‬‬
‫אם הינך משתמש בפעולות עזר עליך לממשן ולציין באיזו מחלקה תמקם אותן‪7( .‬‬
‫נקודות)‬
‫ה‪ .‬באיזו מחלקה תממש את השיטה מסעיף ד'‪ 1( .‬נקודות)‬
‫‪-6-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
6 ‫שאלה‬
‫ לצורך כך‬.‫בחנות הצעצועים "צעצוע לי" החליטו למחשב את מערכת ניהול המכירות של החנות‬
.‫הוגדרו המחלקות הבאות‬
Figure – ‫ דמות‬, Vehicle – ‫ כלי רכב‬, Dolls – ‫ בובות‬, Toys – ‫צעצועים‬
public class Toys
{
protected String ytsran ;
protected int year ;
protected int amount ;
// ‫יצרך‬
// ‫שנת ייצור‬
// ‫כמות‬
protected double price ; // ‫מחיר פריט‬
public Toys()
{
//...
}
public Toys(String ytsran,int year, int amount, double price)
{
//...
}
}
public class Dolls:Toys
{
private String kind ;// ‫סוג‬
private String []accessories
;// ‫אביזרים‬
}
/‫המשך מעבר לדף‬/
-7-
‫בחינת מתכונת‬
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫‪public class Vehicles:Toys‬‬
‫{‬
‫דגם ‪private String model ;//‬‬
‫סוללות ‪private boolean battery ; //‬‬
‫}‬
‫‪public class Figure:Toys‬‬
‫{‬
‫טיפוס ‪type ; //‬‬
‫‪private String‬‬
‫כישורים ‪private String [] qualifications ; //‬‬
‫}‬
‫א‪ .‬שרטט תרשים ‪ UML‬של המחלקות‪ 1( .‬נקודות)‬
‫ב‪ .‬ממש פעולה בונה במחלקה ‪ ,Dolls‬שתשתמש בפעולה הבונה המקבלת פרמטרים‬
‫במחלקה ‪ 3( .Toys‬נקודות)‬
‫ג‪ .‬ציין איזה מנגנון של תכנות מונחה עצמים בא לידי ביטוי בהגדרת שתי פעולות בונות‬
‫במחלקה ‪ 1( .Toys‬נקודות)‬
‫ד‪ .‬הוחלט בחנות להוסיף תת מחלקה בשם ‪ TeddyBear‬תחת מחלקת העל ‪ , Dolls‬רשום‬
‫את הכותרת והתכונות של המחלקה ‪ ,TeddyBear‬ידוע כי למחלקה ‪ TeddyBear‬יש‬
‫את התכונות הבאות ‪ :‬גודל (‪ , )size‬בעל פרווה כן‪/‬לא (‪ 3( .)furve‬נקודות)‬
‫ה‪ .‬המחלקה חנות (‪ ,)Store‬מייצגת את חנות הצעצועים‪ ,‬בחנות יש עד ‪ 1000‬צעצועים מכל‬
‫הסוגים‪ .‬ממש את המחלקה ‪ Store‬מימוש המחלקה צריך לכלול את כותרת המחלקה‪,‬‬
‫תכונות המחלקה והשיטה הבונה‪ 4( .‬נקודות)‪.‬‬
‫ו‪ .‬הגדר פעולה המקבלת כפרמטר את צעצוע ומוסיפה את הצעצוע לחנות‪ .‬יש לרשום באיזה‬
‫מחלקה קיימת פעולה זו‪ 3( .‬נקודות)‬
‫ז‪ .‬הגדר פעולה המחזירה את מספר כלי הרכב בחנות‪ .‬יש לרשום באיזה מחלקה פעולה זו‬
‫קיימת‪ 3( .‬נקודות)‬
‫ח‪ .‬המחלקה רשת חנויות ‪ ,ChainOfStores -‬מייצגת רשת של חנויות "צעצוע לי" ברחבי‬
‫ארצות הברית‪ ,‬הרשת מונה ‪ 10‬חנויות הממוספרות מ – ‪ 0‬עד ‪ 8( .22‬נקודות)‬
‫ממש את המחלקה ‪ .ChainOfStores‬מימוש המחלקה צריך לכלול את הסעיפים ‪iii – i‬‬
‫שלפניך ‪:‬‬
‫‪-5-‬‬
‫‪.i‬‬
‫כותרת המחלקה ‪ ,‬והגדרת התכונות שלה‪.‬‬
‫‪.ii‬‬
‫פעולה המקבלת מספר חנות ומחזירה את מספר כלי הרכב בחנות‪.‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
7 ‫שאלה‬
TestAbc , A , B , C : ‫לפניך פרויקט המכיל ארבע מחלקות‬
public class A
{
protected int x;
public A(int x){this.x = x;}
public virtual int change(){
return this.x * 2;
}
public override String ToString(){
return "X :" + this.x;
}
}
public class B : A
{
protected int y;
public B(int x, int y): base(x){
this.y = y;
}
public void print(){Console.WriteLine("B-B-B");}
public override String ToString()
{
return base.ToString() + " Y :" + this.y;
}
}
/‫המשך מעבר לדף‬/
-2-
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
public class C : B
{
private int z;
public C(int x, int y, int z): base(x, y) {
this.z = z;
}
public override int change(){
return this.x * 2 + this.y * 2 + this.z * 2;
}
public override String ToString(){
return base.ToString() + " Z :" + this.z;
}
}
public class TestAbc
{
public static void main(String[] args)
{
A[] obj = new A[4];
obj[0] = new A(5);
obj[1] = new B(5, 10);
obj[2] = new C(5, 10, 15);
obj[3] = new A(20);
for (int i = 0; i < obj.Length; i++)
{
Console.WriteLine(obj[i].change());
}}}
)‫ נקודות‬3( .‫ של עץ הירושה‬UML ‫שרטט תרשים‬
/‫המשך מעבר לדף‬/
.‫א‬
-20-
‫מדעי המחשב‪ ,‬קיץ תשע"ב‪ ,‬מספר ‪522108‬‬
‫ב‪.‬‬
‫בחינת מתכונת‬
‫עקוב בעזרת טבלת מעקב אחר הפעולה הראשית ‪ main‬במחלקה ‪ , TestAbc‬ורשום את‬
‫הפלט‪ 8( .‬נקודות)‬
‫ג‪.‬‬
‫לפניך ארבע הוראות ‪ iv – i‬לכל אחת מהן ‪ ,‬קבע אם אפשר להוסיף אותה בשיטה ‪main‬‬
‫נמק את קביעותייך בעזרת מאפיינים של תכנות מונחה עצמים ‪ 6( :‬נקודות)‬
‫ד‪.‬‬
‫; )‪Object sod = new A(20‬‬
‫‪i.‬‬
‫; )‪B a = new A(5‬‬
‫‪ii.‬‬
‫; )‪B c = new C(2 , 4 , 6‬‬
‫‪iii.‬‬
‫; )‪A a = new C(1,2,3‬‬
‫‪iv.‬‬
‫האם אפשר לכתוב את שורות הקוד הבאות בתוך בשיטה ‪ main‬המחלקה ‪:TestAbc‬‬
‫; )‪Object a = new A(30‬‬
‫; )(‪((A)a).change‬‬
‫הסבר בעזרת מאפיינים של תכנות מונחה עצמים ‪ 4( .‬נקודות)‬
‫ה‪.‬‬
‫האם אפשר לכתוב את שורות הקוד הבאות בשיטה ‪ main‬בתוך המחלקה ‪4( :TestAbc‬‬
‫נקודות)‬
‫; )‪Object c = new C (11,22,33‬‬
‫; )(‪((B)c).print‬‬
‫הסבר בעזרת מאפיינים של תכנות מונחה עצמים‪.‬‬
‫ו‪.‬‬
‫האם אפשר לכתוב את שורות הקוד הבאות בשיטה ‪ main‬בתוך המחלקה ‪3( :TestAbc‬‬
‫נקודות)‬
‫; )‪Object b = new B(11,12‬‬
‫; )(‪b.print‬‬
‫הסבר בעזרת מאפיינים של תכנות מונחה עצמים‪.‬‬
‫‪-22-‬‬
‫‪/‬המשך מעבר לדף‪/‬‬
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
8 ‫שאלה‬
:‫נתונות חמש מחלקות וממשק‬
ClassOne, ClassTwo, ClassThree, Class Four, Program, InterfaceOne
‫ ורשום את‬,Program ‫ במחלקה‬Main ‫) אחרי הפעולה‬UML ‫עקוב בעזרת טבלת מעקב (תרשים‬
.‫ ובעבור כל עצם את ערכי התכונות שלו‬,‫ על הטבלה לכלול את ערכי המשתנים‬.‫הפלט‬
class ClassOne
{
protected int num1;
public ClassOne(int num1) { this.num1 = num1; }
public virtual void Print(){
Console.WriteLine("hello from class 1...");
}
}
class ClassThree : ClassOne
{
private int num3;
public ClassThree(int num1, int num3): base(num1){
this.num3 = num3;
}
public override void Print(){
base.Print();
Console.WriteLine("hello from class 3...");
}
}
/‫המשך מעבר לדף‬/
-21-
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
class ClassFour : ClassThree
{
private ClassOne[] array;
private int counter;
public ClassFour(int num1, int num3, int size)
: base(num1, num3)
{
this.array = new ClassOne[size];
this.counter = 0;
}
public void Add(ClassOne obj)
{
this.array[this.counter++] = obj;
}
public override void Print()
{
bool b;
for (int i = 0; i < counter; i++)
{
this.array[i].Print();
if (this.array[i] is InterfaceOne)
{
b = ((InterfaceOne)this.array[i]).Check(5);
Console.WriteLine("implementing: {0}", b);
}}}}
/‫המשך מעבר לדף‬/
-23-
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
interface InterfaceOne
{
bool Check(int num);
}
class ClassTwo : ClassOne,InterfaceOne
{
private int num2;
public ClassTwo(int num1, int num2)
: base(num1)
{
this.num2 = num2;
}
public override void Print()
{
base.Print();
Console.WriteLine("hello from class 2...");
}
public bool Check(int num)
{
return (this.num2 > num);
}
}
/‫המשך מעבר לדף‬/
-24-
‫בחינת מתכונת‬
522108 ‫ מספר‬,‫ קיץ תשע"ב‬,‫מדעי המחשב‬
class Program
{
static void Main(string[] args)
{
ClassFour container = new ClassFour(6,3,5);
ClassOne c1 = new ClassOne(10);
container.Add(c1);
ClassTwo c2 = new ClassTwo(2, 3);
container.Add(c2);
ClassThree c3 = new ClassThree(10, 20);
container.Add(c3);
ClassFour c4= new ClassFour(11,22,3);
c4.Add(new ClassOne(10));
c4.Add(new ClassTwo(20,20));
c4.Add(new ClassThree(30,30));
container.Add(c4);
container.Print();
}
}
!‫בהצלחה‬
/‫המשך מעבר לדף‬/
-28-