New בשחמה יעדמblog.csit.org.il/UpLoad/FilesUpload/2018.pdf · 2019. 11. 17. · 899381...
Transcript of New בשחמה יעדמblog.csit.org.il/UpLoad/FilesUpload/2018.pdf · 2019. 11. 17. · 899381...
בגרות סוגהבחינה: מדינת ישראלקיץתשע"ח,2018 מועדהבחינה: משרד החינוך
899381 מספרהשאלון:
מדעי המחשב
הוראות לנבחןמשךהבחינה:שלוששעות. א.
מבנההשאלוןומפתחההערכה:בשאלוןזהשלושהפרקים. ב.
נקודות 25 — )15x1(+)10x1( — בפרקזהשלוששאלות,ענהעלפיההוראותבפרק. — פרקראשון
נקודות 50 — )25x2( — בפרקזהשלוששאלות,ומהןעליךלענותעלשתיים. — פרקשני
בפרקזהשאלותבארבעהמסלוליםשונים. — פרקשלישי
נקודות 25 — )25x1( — ענהעלשאלהאחתבמסלולשלמדת.
נקודות 100 — סה"כ
חומרעזרמותרבשימוש:כלחומרעזר,חוץממחשבהניתןלתכנות. ג.
הוראותמיוחדות: ד.
אתכלהתוכניותשאתהנדרשלכתובבשפתמחשבבפרקיםהראשוןוהשני )1(
.C#אוJava —בלבדאחתבשפהכתוב
.C#אוJava —כותבאתהשפהבאיזוהמחברתשלרשום על הכריכה החיצונית )2(
רשום על הכריכה החיצוניתשלהמחברתאתשםהמסלולשלמדת. )3(
המסלולהואאחדמארבעתהמסלוליםהאלה:
מערכותמחשבואסמבלי,מבואלחקרביצועים,מודליםחישוביים,תכנותמונחהעצמים.
בתוכניותשאתהכותבלאיורדולךנקודות,אםתכתובאותגדולהבמקוםאותקטנהאולהפך. הערה:
כתובבמחברתהבחינהבלבד,בעמודיםנפרדים,כלמהשברצונךלכתובכטיוטה)ראשיפרקים,חישוביםוכדומה(.רשום"טיוטה"בראשכלעמודטיוטה.רישוםטיוטותכלשהןעלדפיםשמחוץלמחברתהבחינהעלוללגרוםלפסילתהבחינה!
ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד.
בהצלחה!
/המשךמעברלדף/
מדעיהמחשב,קיץתשע"ח,מס'899381 -2-
השאלותבשאלון זה שלושה פרקים.
עליך לענות על שאלות משלושת הפרקים, לפי ההוראות בכל פרק.
פרק ראשון )25נקודות(הערה:בכלשאלהשנדרשתבהקליטה,איןצורךלבדוקאתתקינותהקלט.
לפותריםב־Java:בכלשאלהשנדרשתבהקליטה,הנחשבתוכניתכתובהההוראה:
Scanner input = new Scanner (System.in);
ענהעלשאלה1—חובה)10נקודות(
נתונההמחלקהAllNumbersשישלהתכונהאחת:מערךחד־ממדי—arrayNum,מטיפוסשלם. .1
במערךישמספריםחיובייםהגדוליםמאפס,שחלקםמספריםזוגייםוחלקםמספריםאי־זוגיים.
כתובפעולהפנימיתlastOddValueב־JavaאוLastOddValueב־#Cשתחזיראתהערךשלהמספרהאי־זוגי
האחרוןבמערך.
לדוגמה:בעבורהמערךarrayNumבגודל6שלפניך,תחזירהפעולהאתהמספר3,שהואהערךשל
המספרהאי־זוגיהאחרוןבמערך.
543210439857arrayNum
הנחשבמערךישלפחותמספראי־זוגיאחד.
/המשךבעמוד3/
מדעיהמחשב,קיץתשע"ח,מס'899381 -3-
ענהעלאחתמןהשאלות3-2)15נקודות(.
במצעדהפזמוניםמתחרים40שיריםשמספרםמ־1ועד40.25שופטיםמדרגיםאתהשירים. .2
כלשופטבוחראתשלושתהשיריםהטוביםביותרלדעתו.לשירבמקוםהראשון)הטובביותר(הואמעניק7נקודות,
לשירבמקוםהשניהואמעניק5נקודות,ולשירשבמקוםהשלישיהואמעניקנקודהאחת.
השירשיצבוראתמספרהנקודותהגבוהביותרמכלהשופטיםיזכהבמקוםהראשון.
.Voteמחלקההוגדרההפזמוניםמצעדלקראת
למחלקהשלושתכונות:
מספרהשירשהשופטדירגבמקוםהראשון,מטיפוסשלם. — first
מספרהשירשהשופטדירגבמקוםהשני,מטיפוסשלם. — second
מספרהשירשהשופטדירגבמקוםהשלישי,מטיפוסשלם. — third
.Setו־GetפעולותC#וב־setו־getפעולותJavaב־הוגדרותכונהשלכלהנח
כתובפעולהחיצוניתtheWinnerב־JavaאוTheWinnerב־#C,המקבלתמערךמטיפוסVoteשל
דירוגיהשופטים,ומדפיסהאתמספרושלהשירהזוכהבמקוםהראשון.
הנחשקייםשירזוכהאחד.
הנחשערכיהמערךתקינים.
/המשךבעמוד4/
מדעיהמחשב,קיץתשע"ח,מס'899381 -4-
נתונההמחלקהTimeשישלהשתיתכונות: .3
hour—מייצגתשעהבין0ל־23כולל,מטיפוסשלם.
minute—מייצגתדקהבין0ל־59כולל,מטיפוסשלם.
.Setו־GetפעולותC#וב־setו־getפעולותJavaב־הוגדרותכונהשלכלהנח
כתובב־Javaאוב־#CבמחלקהTimeפעולהבונהשתקבלערכיםבעבורכלתכונה. א.
עבורכלתכונה—אםהערךהמתקבלאינואפשרילפיהגדרותהתכונה,הואיוחלףב־0.
נתונההמחלקהFlightשישלהארבעתכונות:שםשלחברתתעופה—nameמטיפוסמחרוזת, ב.
שםשלארץיעד—destinationמטיפוסמחרוזת,קודטיסה—flightCodeמטיפוסמחרוזת,
.TimeמטיפוסflightTime—טיסהזמן
כתובב־Javaאוב־#Cאתכותרתהמחלקהואתתכונותהמחלקה.
.Flightמטיפוסflights—חד־ממדימערךאחת:תכונהלהשישAirportהמחלקהנתונה ג.
.Setו־GetפעולותC#וב־setו־getפעולותJavaב־הוגדרוFlightבמחלקהתכונהשלכלהנח
במחלקהAirportנתונהפעולהפנימיתבוליאנית,isFlyב־Javaו־IsFlyב־#C,שמטרתהלבדוקאם
במערךהטיסותflightsישטיסהשלחברתהתעופה"Sky".הפעולהמחזירהtrueאםבמערךflightsיש
.falseמחזירההפעולה—אחרת."Sky"התעופהחברתשלטיסה
.nullמ־שוניםבמערךהתאיםשכלהנח
הפעולההנתונהשלפניך)isFlyב־Javaו־IsFlyב־#C(שגויה.
Java C#public boolean isFly(){
for (int i = 0; i < this.flights.length; i++) { if (this.flights[i].getName().equals ("Sky")) return true; return false; }}
public bool IsFly(){ for (int i = 0; i < this.flights.Length; i++) { if (this.flights[i].GetName() == "Sky") return true; return false; }}
)שים לב: התת־סעיפים של סעיף ג בעמוד הבא.(
/המשךבעמוד5/
מדעיהמחשב,קיץתשע"ח,מס'899381 -5-
כתובמהתחזירהפעולההשגויההנתונהעבורמערךflightsבגודל4,שערכיתכונתnameשלהעצמיםבמערך )1(
הם:
,"Cloud" במקוםהראשון:
,"Air" במקוםהשני:
,"Sky" במקוםהשלישי:
."Travel" במקוםהרביעי
הסברמהיהשגיאהבפעולה. )2(
תקןאתהפעולהכדישהיאתבצעאתהנדרש,והעתקלמחברתךאתהפעולההמתוקנת. )3(
/המשךבעמוד6/
מדעיהמחשב,קיץתשע"ח,מס'899381 -6-
פרק שני )50נקודות(
בכלשאלהשנדרשבהמימושאתהיכוללהשתמשבפעולותשלהמחלקות: שים לב: תור,מחסנית,עץבינריוחוליה,בלילממשאותן.אםאתהמשתמש
בפעולותנוספות,עליךלממשאותן.
ענהעלשתייםמןהשאלות6-4)לכלשאלה—25נקודות(.
כתובפעולהחיצוניתlastAndRemoveב־Java אוLastAndRemoveב־#C,המקבלתמחסנית א. .4
מטיפוסשלם,מוחקתאתהאיברהתחתוןבמחסנית,ומחזירהאתערכו.
בסיוםהפעולההאיבריםהאחריםבמחסניתנשאריםללאשינוי.
הנחשהמחסניתאינהריקה.
לאחרהפעולהיוחזרהערך9,והמחסניתתיראהכך:לדוגמה,עבורהמחסניתשלפניך:1ראשהמחסנית1ראשהמחסנית
663232
555577449
)שים לב: סעיף ב של השאלה בעמוד הבא.(
/המשךבעמוד7/
מדעיהמחשב,קיץתשע"ח,מס'899381 -7-
נתונההמחלקה: ב.
TwoItems int num1 תכונות:
int num2
TwoItems (int number1, int number2)פעולה בונה:
.Setו־GetפעולותC#וב־setו־getפעולותJavaב־הוגדרותכונהשלכלהנח
stk1מחסניתהמקבלת,C#ב־StackTwoItemsאוJavaב־stackTwoItemsחיצוניתפעולהכתוב
.TwoItemsמטיפוסמחסניתומחזירהזוגי,ובגודלשלםמטיפוסריקה,שאינה
האיברהתחתוןבמחסניתהמוחזרתיכילהפניהלמופעשלTwoItemsשהתכונהשלוnum1היאהאיבר
.stk1במחסניתהתחתוןהאיברהיאnum2שלווהתכונה,stk1המחסניתשבראש
num1שלושהתכונהTwoItemsשללמופעהפניהיכילהמוחזרתבמחסניתהתחתוןהאיברשמעלהאיבר
היאהאיברשמתחתלאיברשבראשהמחסניתstk1,והתכונהשלוnum2היאהאיברשמעלהאיברהתחתון
TwoItemsשללמופעהפניהיכילהמוחזרתהמחסניתשבראששהאיברכךהלאה,וכן,stk1במחסנית
.stk1המחסניתבאמצעהנמצאיםסמוכים,איבריםשניהםnum2ו־num1שלושהתכונות
TwoItemsnum1 num2
5 5
TwoItemsnum1 num2
32 7
TwoItemsnum1 num2
6 4
TwoItemsnum1 num2
1 9
לאחר הפעולה תוחזר המחסנית:ראש המחסנית
32
1
55749
6
לדוגמה, עבור המחסנית stk1 שלפניך:ראש המחסנית
עליךלהיעזרבפעולהשכתבתבסעיףא.
.stk1מחסניתשלהמקוריהתוכןעללשמורצורךאיןהערה:
/המשךבעמוד8/
מדעיהמחשב,קיץתשע"ח,מס'899381 -8-
שים לב: לשאלה זו נוסח אחד ב־ Java בעמוד 8, ונוסח אחר ב־ #C בעמוד 9. .5
Javaבשפתלפותרים
:sod1הפעולהנתונה
public static Node <Character> sod1(Node <Character> lst, char ch){ if (lst == null) return null; if (lst.getValue() == ch) return lst; return sod1(lst.getNext(), ch); }
וההפניהlstלשרשרתחוליותשלתווים: ' 'ch v= עקובאחרהפעולהוכתובמהיוחזרעבור )1( א.
' 'c ' 'd ' 'v ' 'hlst
null
?sod1הפעולהמטרתמהי )2(
מהיסיבוכיותזמןהריצהשלהפעולהsod1?נמק. )3(
:sod2הפעולהנתונה ב.
public static boolean sod2(Node <Character> lst){ if (sod1(lst,'a') != null && sod1(lst,'b') != null) return true; return false; }
?sod2הפעולהמטרתמה
כתובפעולהבוליאניתהמקבלתהפניהלשרשרתחוליותשלתוויםומחזירהtrueאםמופיעותבהשתיחוליות ג.
.falseמחזירההפעולה—אחרת.'b''a'או'a''b'שערכיהןסמוכות
דוגמהלשרשרתחוליותשמופיעיםבה''ab''ברצף: דוגמהלשרשרתחוליותשמופיעיםבה''ba''ברצף:
' 'a ' 'b ' 'llst
' 'm' 'y ' 'b ' 'alst
nullnull
דוגמהלשרשרתחוליותש־''ba''ו־''ab''אינםמופיעיםבהברצף:
' 'a ' 'c ' 'blst
' 'w null
.sod1בפעולהלהשתמשעליך
/המשךבעמוד9/הנחשכלהתוויםשוניםזהמזה.
מדעי המחשב, קיץ תשע"ח, מס' 899381 - 9 -
C# לפותרים בשפת
: Sod1 נתונה הפעולה
public static Node <char> Sod1(Node <char> lst, char ch){ if (lst == null) return null; if (lst.GetValue() == ch) return lst; return Sod1(lst.GetNext(), ch); }
' וההפניה lst לשרשרת חוליות של תווים: 'ch v= עקוב אחר הפעולה וכתוב מה יוחזר עבור )1( א.
nulllst
' 'c ' 'd ' 'v ' 'h
? Sod1 מהי מטרת הפעולה )2(
מהי סיבוכיות זמן הריצה של הפעולה Sod1 ? נמק. )3(
: Sod2 נתונה הפעולה ב.
public static bool Sod2(Node <char> lst){ if (Sod1(lst,'a') != null && Sod1(lst,'b') != null) return true; return false; }
? Sod2 מהי מטרת הפעולה
כתוב פעולה בוליאנית המקבלת הפניה לשרשרת חוליות של תווים ומחזירה true אם מופיעות בה שתי חוליות ג.
. false אחרת — הפעולה מחזירה . 'b' 'a' או 'a' 'b' סמוכות שערכיהן
דוגמה לשרשרת חוליות שמופיעים בה 'a' 'b' ברצף: דוגמה לשרשרת חוליות שמופיעים בה 'b' 'a' ברצף:
' 'a ' 'b ' 'l
lst' 'm' 'y ' 'b ' 'a
lstnullnull
דוגמה לשרשרת חוליות ש־ 'a' 'b' ו־ 'b' 'a' אינם מופיעים בה ברצף:
' 'a ' 'c ' 'blst
' 'w null
. Sod1 עליך להשתמש בפעולה
הנח שכל התווים שונים זה מזה./המשך בעמוד 10/
מדעיהמחשב,קיץתשע"ח,מס'899381 -10-
נתונההפעולה: .6
: Java ב־
public static boolean lessThanTree (BinNode <Integer> t, int x)
: C# ב־
public static bool LessThanTree (BinNode <int> t, int x)
.falseמחזירההפעולה—אחרת.tבעץהערכיםמכלקטןxאםtrueמחזירההפעולה
.tבעץהצמתיםמספראתמייצגn.O(n)היאהפעולהשלהריצהזמןסיבוכיות
כתובפעולהחיצוניתtreeLessThanTreeב־JavaאוTreeLessThanTreeב־#C,המקבלתשניעצים א.
בינארייםt1ו־t2שלערכיםשלמים.נתוןשב־t2קייםלפחותצומתאחד.הפעולהמחזירהtrueאםכלערך
.falseמחזירההפעולה—אחרת,t2בעץמהערכיםאחדמכלקטןt1בעץ
.trueתחזירהפעולה—nullהואt1אם
אפשרלהשתמשבפעולההנתונהבלילממשאותה.אםאתהמשתמשבפעולותאחרות,עליךלממשאותן.
מהיסיבוכיותזמןהריצהשלהפעולהשכתבתבסעיףא?נמק. ב.
/המשךבעמוד11/
מדעיהמחשב,קיץתשע"ח,מס'899381 -11-
פרק שלישי )25נקודות(בפרקזהשאלותבארבעהמסלולים:
מערכותמחשבואסמבלי,עמודים13-11.
מבואלחקרביצועים,עמודים17-14.
מודליםחישוביים,עמוד19-18.
תכנותמונחהעצמיםב־Java,עמודים23-20;תכנותמונחהעצמיםב־#C,עמודים27-24.
ענה על שאלה אחת במסלול שלמדת.
מערכות מחשב ואסמבלי
אםלמדתמסלולזה,ענהעלאחתמןהשאלות8-7)25נקודות(.
בשאלהזושניסעיפים,א-ב.איןקשרביןהסעיפים.עליךלענותעלשניהם. .7
לפניךקטעתוכניתבאסמבלי. א.
.)Unsigned(מכווניםבלתישהמספריםהנח
CMP AH , AL
JAE AA
XCHG AH, AL
CMP AL, AHAA:
JAE CC
INC AL
DEC AH
JMP AA
MOV SI, 100H
MOV [SI], AL
CC:
תוכןהאוגרAXהוא0109H.עקובבעזרתטבלתמעקבאחרביצועקטעהתוכנית,וכתובמהיתקבל )1(
בתאשכתובתו100Hלאחרהביצוע.
מהמבצעקטעהתוכניתעבורמספריםאי־זוגייםבאוגריםAH, AL?בתשובתךהתייחסגםלתוכן )2(
האוגריםAH, ALלפניביצועקטעהתוכנית.
/המשךבעמוד12/
מדעיהמחשב,קיץתשע"ח,מס'899381 -12-
)איןקשרלסעיףא.( ב.
לפניךשישההיגדים.לכלאחדמהםקבעאםהואנכוןאואינונכון.אםההיגדאינונכון,הסברמדוע.
שניהקטעים1ו־2שלפניךמבצעיםאתאותוהדבר. )1(
קטע2קטע1
SHL AX, 1SHR AX, 1
SHR AX, 1SHL AX, 1
שניהקטעים1ו־2שלפניךמבצעיםאתאותוהדבר. )2(
קטע2קטע1
AND AX, 0FEhSHR AX, 1
SHL AX, 1
שניהקטעים1ו־2שלפניךמבצעיםאתאותוהדבר. )3(
קטע2קטע1
PUSH AXXCHG AX, BX
PUSH BX
POP AX
POP BX
שניהקטעים1ו־2שלפניךמבצעיםאתאותוהדבר. )4(
קטע2קטע1
SUB AX, 0CMP AX, 0
JNE A1JNZ A1
במקטעהנתוניםהוגדרמערך: )5(
ARR DW 50 dup (?)
.ARRבמערךמסויםאיברשלכתובתמאוחסנתBXשבאוגרהנח
קטעתוכניתזהמאחסןבאוגרBXאתהאינדקסשלאותוהאיבר.
LEA SI, ARR
SUB BX,SI
INC BX
הערךשלהמספר11101011שמאוחסןלפיהשיטה:משליםל־2ב־8סיביות )6(
/המשךבעמוד13/הוא)21—(בבסיס10.
מדעיהמחשב,קיץתשע"ח,מס'899381 -13-
במקטעהנתוניםשלפניךהוגדרוהנתונים: .8
ARR DB 100 DUP (?)
REZ DB ?
.)Signed(מכווניםשהמספריםהנח
הנחשכלהמספריםבמערךשוניםזהמזה.
מערךנקרא"גלי"אםהואמקייםאתהתנאיםהאלה:
האיברהראשוןקטןמהאיברהשני,האיברהשניגדולמהאיברהשלישי,האיברהשלישיקטןמהאיברהרביעי,
האיברהרביעיגדולמהאיברהחמישי,וכןהלאה.
דוגמהלמערךהנקרא"גלי": 0 1 2 3 42- 8 6 17 7-
(קטןמהאיברהשני)8(,האיברהשני)8(גדולמהאיברהשלישי)6(, 2- הסברהדוגמה:האיברהראשון)
.) 7- האיברהשלישי)6(קטןמהאיברהרביעי)17(והאיברהרביעי)17(גדולמהאיברהחמישי)
כתובקטעתוכניתהבודקאםהמערךARRהואמערך"גלי".אםכן,עליךלהציבבמשתנהREZאתהערך1.
אחרת—עליךלהציבבמשתנהREZאתהערך0.
/המשךבעמוד14/
מדעיהמחשב,קיץתשע"ח,מס'899381 -14-
מבוא לחקר ביצועים
אםלמדתמסלולזה,ענהעלאחתמןהשאלות10-9)25נקודות(.
נתונהבעייתתכנוןלינארי: .9
{ }max z x x64 1 2= +
בכפוףלאילוציםהאלה:
(1) x x5 4 41 2#- +
(2) x x3 31 2$+
(3) x 02$
לפניךסרטוטשלתחוםהפתרונותהאפשרייםלבעיההנתונה.
( , )0 1( , )3 0 x1
x2
כלאחדמןהסעיפיםא-ושבעמודהבאמתייחסלבעייתהתכנוןהלינאריהנתונה.
הסעיפיםא-ואינםקשוריםזהלזה.ענהעלכלהסעיפים.
נתוניםארבעההיגדיםiv-i.לכלאחדמןהסעיפיםא-ושבעמודהבאישרקהיגדאחדשהואנכון.
ישרקפתרוןאופטימלייחיד. i
ישאין־סוףפתרונותאופטימליים. ii
הפתרוןהאופטימלילאחסום. iii
איןפתרוןאופטימלי. iv
/המשךבעמוד15/
מדעיהמחשב,קיץתשע"ח,מס'899381 -15-
בעבורכלאחדמןהסעיפיםא-וקבעאיזהמןההיגדיםiv-iהואהנכון.צייןאתהסעיף,העתקאתההיגדהנכון
למחברתך,ונמקאתקביעתך.
אםבחרתבהיגדiבסעיףכלשהו,עליךלמצואאתהפתרוןהאופטימליהיחיד,ואתהערךשלפונקצייתהמטרה —
בפתרוןזה.
אםבחרתבהיגדiiבסעיףכלשהו,עליךלרשוםאתהפתרוןהאופטימליהכללילבעיה,ואת —
הערךשלפונקצייתהמטרהבתחוםהפתרונותהאופטימליים.
איזההיגדהואהנכוןבעבורבעייתהתכנוןהלינאריהנתונהבתחילתהשאלה?נמקאתתשובתך. א.
. { }min z x x4 61 2= + ניםרקאתפונקצייתהמטרהשלהבעיההנתונהבתחילתהשאלהל־ מש ב.
איזההיגדהואהנכוןלאחרהשינוי?נמקאתתשובתך.
. { }max z x x2 61 2= + משניםרקאתפונקצייתהמטרהשלהבעיההנתונהבתחילתהשאלהל־ ג.
איזההיגדהואהנכוןלאחרהשינוי?נמקאתתשובתך.
. { }min z x x2 61 2= + משניםרקאתפונקצייתהמטרהשלהבעיההנתונהבתחילתהשאלהל־ ד.
איזההיגדהואהנכוןלאחרהשינוי?נמקאתתשובתך.
.x x 11 2#+ מוסיפיםאילוץלבעיההנתונהבתחילתהשאלה,והוא: ה.
איזההיגדהואהנכוןלאחרהוספתהאילוץ?נמקאתתשובתך.
.x x2 1#- מוסיפיםאילוץלבעיההנתונהבתחילתהשאלה,והוא: ו.
איזההיגדהואהנכוןלאחרהוספתהאילוץ?נמקאתתשובתך.
/המשךבעמוד16/
מדעיהמחשב,קיץתשע"ח,מס'899381 -16-
בשאלהזושניסעיפיםא-ב.איןקשרביןהסעיפים.עליךלענותעלשניהם. .10
הואגרףמכווןהמיוצגעלידימטריצתהסמיכויותשלפניך. ( , )G V E= א.
edcba01100a01001b10000c00010d00001e
סרטטאתגרףGהמיוצגעלידימטריצתהסמיכויות. )1(
מצאאתרכיביהקשירותהחזקה)Strong Connected Components—רק"חים(שבגרףהנתון.בעבור )2(
כלרק"חשמצאתרשוםאתקבוצתהקודקודיםשלו.
קבעמהוהמספרהמקסימלישלקשתותשאפשרלהסירמןהגרףהנתון,והגרףעדייןיכילאת )3(
אותומספררק"חיםשמצאתבתת־סעיףא)2(.מהיהקשתאומההןהקשתות?
)איןקשרלסעיףא.( ב.
. ,x x9 111 12= = בטבלהשלפניךנתונהבעייתתובלהוחלקמפתרוןבסיסיאפשרי: )1(
היצעיעדים
מקורות321
1075
1
1
91
11481
2
10825
3
ביקוש10129
העתקאתהטבלהלמחברתך,והשלםבהאתהערכיםלפישיטתהפינההצפונית־מערבית.
/המשךבעמוד17/
מדעיהמחשב,קיץתשע"ח,מס'899381 -17-
בטבלהשלפניךנתוןחלקמפתרוןבסיסיאפשרילבעייתתובלה,ונתוניםערכיהםשל )2(
.u1,u2 ,u3,v1,v2 ,v3
uiהיצעיעדים
מקורות321
120753
201
010148
10
22
2-158
10
623
ביקוש101520
1082vj
העתקאתהטבלהלמחברתך,והשלםאותהבהתחשבבערכיםשלכלה־ui-יםוכלה־vi-ים
כדישיתקבלפתרוןבסיסיאפשרי.
.u1,u2 ,u3,v1,v2 ,v3שלערכיהםונתוניםתובלה,לבעייתאפשריבסיסיפתרוןנתוןשלפניךבטבלה )3(
uiהיצעיעדים
מקורות321
01817
3
15
15
341
7-1048
0
10
102
11018
10
18253
ביקוש131510
171517vj
האםהפתרוןהואאופטימלי?נמקאתתשובתך.
/המשךבעמוד18/
מדעיהמחשב,קיץתשע"ח,מס'899381 -18-
מודלים חישוביים
אםלמדתמסלולזה,ענהעלאחתמןהשאלות12-11)25נקודות(.
בשאלהזושניסעיפיםא-ב.איןקשרביןהסעיפים.ענהעלשניהם. .11
,xהמילהמסוףתוויםשלכלשהומספרהורדתידיעלהמתקבלתמילהכלהיאxמילהשלרישאהגדרה:לפניך א.
כוללהמילההריקהוהמילהxעצמה.
xכלהרישותשלהמילהxהן: abcbad= לדוגמה:עבורהמילה
, , , , , ,a ab abc abc abcba abcbadbf
. { , , , }a b c dR= לפניךהשפהLמעלהא"ב
Lהיאאוסףהמיליםשבכלאחתמהןעבורכל רישאשבמילה—ההפרשביןמספרהפעמיםשמופיעהתוcלבין
מספרהפעמיםשמופיעהתוdהואגדולמ־0אושווהלו,וקטןמ־3אושווהלו:
0 # ( ) # ( ) 3w wdc# #-
.wבמילהcשלהמופעיםמספראתמציין# ( )wc
.wבמילהdשלהמופעיםמספראתמציין# ( )wd
:Lלשפהששייכותלמיליםדוגמאות
accbdcacab , bacaabdbcb , abba , cdcdcd , abcbadb
:Lלשפהשייכותשאינןלמיליםדוגמאות
# ( ) # ( )w w 1 0c d 1- =- daac—כיקיימתהרישאd,שבה:
# ( ) # ( )w w 1 0c d 1- =- cddc—כיקיימתהרישאcdd,שבה:
# ( ) # ( )w w 4 3c d 2- = accbdcacacd—כיקיימתהרישאaccbdcacac,שבה:
)שים לב: המשך השאלה בעמוד הבא.(
/המשךבעמוד19/
מדעיהמחשב,קיץתשע"ח,מס'899381 -19-
לפניךסרטוטחלקישלאוטומטסופידטרמיניסטיהמקבלאתהשפהL.בסרטוטחסריםמעברים,סימניקלט
ומצביםמקבלים.בסרטוטנכלליםכלהמצביםשלהאוטומט.
q0 q1 q2 q3
q4
a, b, c, d
התחלה
.Lהשפהאתויקבלדטרמיניסטייהיהשהאוטומטכךאותווהשלםהסרטוט,אתלמחברתךהעתק
עליךלהשליםאתהמעבריםהחסרים,אתסימניהקלטהחסרים,ולסמןאתכל המצבים המקבלים.
שיםלב:איןלהוסיףלאוטומטמצבים,ואיןלהורידממנומצביםומעברים.
)איןקשרלסעיףא.( ב.
היאאוסףכלהמיליםמעלהא"בR,כוללהמילההריקה. *R
.Rהא"במעלL1,L2 נתונותשתישפות
L2היאשפהשאינהרגולרית. Lו־ *1 R=
. 3 2L L L+= נגדיר:1
?L1השפהמהי )1(
האםהשפהL3רגולרית?נמקאתתשובתך. )2(
בשאלהזושניסעיפים,א-ב.איןקשרביןהסעיפים.ענהעלשניהם. .12
.בנהאוטומטמחסניתבעבורהשפה: { , }a bR= נתוןהא"ב א.
{ , , }L a b a n k n k0 0k n2 2 2 1=
)איןקשרלסעיףא.( ב.
בנהמכונתטיורינגהמקבלתכקלטמספרxבייצוגאונרי,ומחשבתאתערכהשלהפונקציהשלפניך.
1 2( )
x xx xf x 1 2
1
$
+
-= )
/המשךבעמוד20/
מדעיהמחשב,קיץתשע"ח,מס'899381 -20-תכנות מונחה עצמים
אםלמדתמסלולזהואתהכותבב־Java,ענהעלאחתמןהשאלות14-13.)25נקודות(
לפניךפרויקטשהוגדרובוהמחלקותהאלה:A,B,C,D,E.בפרויקטמומשהפעולה()fבשתימחלקות. .13
קטעהקודשלפניךתקין.
();A a new A1=
();A e new E1=();c new CE 1=();b new BC 1=();d new DC 1=
נתון:
Bגורמתלשגיאתהידור)קומפילציה(. ();d new D2= ההוראה
ההוראה;()a1.fגורמתלשגיאתהידור)קומפילציה(.
."bye-bye"ומדפיסהתקינה((E)e1).f();:ההוראה
."hello"ומדפיסהתקינה((B)b1).f();ההוראה
ההוראה;()f.(b1(D))גורמתלשגיאתזמןריצה.
.f()הפעולהמומשהמחלקותשתיבאילווצייןהמחלקות,כלשלירושהעץצייר א.
:Zהמחלקהנתונה ב.
public class Z{
public void g(){}}
הוסףאתהמחלקהZלעץהירושהשציירתבסעיףאכךשההוראהשלפניךתהיהתקינה: )1(
();Z x new A=
קטעהקודשלפניךתקין. )2(
();A a new A2=();Z z new Z1=();Z a new A3=
לכלאחתמןההוראותv-iשלפניך,צייןאםהיאתקינהאואינהתקינה.
אםההוראהאינהתקינה,נמקמדוע.
הסעיפיםv-iאינםתלוייםזהבזה.
i ;a z2 1= ii ;za 13= iii (( ) ) . ();A z g1iv a2.g();v ((A)a3).g();
/המשךבעמוד21/
מדעיהמחשב,קיץתשע"ח,מס'899381 -21-
:Yהמחלקהנתונה ג.
public class Y
{
public void m(){}
}
הוסףאתהמחלקהYלעץהירושהשציירתבסעיףאכךשההוראהשלפניךתהיהתקינה )1(
)ללאהתייחסותלנתוניםבסעיףב(.
();C f new Y=
קטעהקודשלפניךתקין. )2(2 ();A a new A=
();y newY Y1=
();y newC Y2=
עבורכלאחתמןההוראותv-iשלפניך,צייןאםהיאתקינהאואינהתקינה.
אםההוראהאינהתקינה,נמקמדוע.
הסעיפיםv-iאינםתלוייםזהבזה. i ;a y2 1=
ii ;y y2 1=
iii (( ) ) . ();A y m1
iv y2.m();
v ((A)y2).m();
/המשךבעמוד22/
מדעיהמחשב,קיץתשע"ח,מס'899381 -22-
תשלוםמיסיארנונה)Property tax(הואתשלוםלרשויותהמקומיותבעבורשטחהמגוריםוהקרקעהנוספת .14
שבבעלותהתושבים.מחירהארנונההוא10ש"חלמ"רשלשטחהמיועדלמגוריםו־ 0.5ש"חלמ"רשלקרקענוספת.
לדוגמה,תושבשבבעלותושטחלמגוריםבגודל100מ"רושטחקרקעבגודל500מ"רמשלםמיסיארנונהבסכוםשל
.100 10 500 0.5 1250$ $+ =
התושביםחולקולשלושקבוצות:
תושבעירמשלםמיסיארנונהעבורשטחהמגוריםוהקרקעשבבעלותו,ומקבלמענקבסך250ש"חלתשלום
הארנונה.
תושבעירותיק—תושבעירבן60ומעלה—משלםמיסיארנונהכפישמשלםתושבעיר,ונוסףלכךזכאילהנחה
בהתאםלגילו:1%הנחהעבורכלשנתחייםלאחרגיל60.ההנחהמחושבתלאחרהפחתתהמענקמהסכום
המקורי.
תושבכפרמשלםארנונהעבורשטחהמגוריםוהקרקעשבבעלותווזכאילהנחהשל10%.תושב כפר בן
60 ומעלה אינו זכאי להנחה התלויה בגיל.
אם לאחר הפחתת ההנחה והמענק הסכום לתשלום מיסי הארנונה הוא מספר שלילי, התושב פטור מהתשלום
)משלם 0ש"ח(.
הוחלטלפתחתוכנהלחישובמיסיארנונהולגבייתםמהתושבים,ולשםכךהוגדרהממשקשלפניך.
interface IData
{
public String getName(); //תושבשלשםמחזירה
public double getPropertyTax(); //ארנונהמסשלגובהמחזירה
{
בסעיפיםא-בשלפניךעליךלהגדיראתהמחלקותלפיעקרונותשלתכנותמונחהעצמיםבהתאםלדרישות:
אתהנתוניםלחישובמסהארנונה)תשלוםעבורשטחשלדירהבמ"ר,תשלוםעבורשטחשלקרקעבמ"ר,שיעור
ההנחהבאחוזים,סכוםהמענקבש"ח(הגדרפעםאחתבלבדכקבועים.
.)private(כפרטיותהגדרקבועותשאינןהתכונותכלאת
הגדרמחלקהResident)המייצגתתושב(,המממשתאתהממשקIData,וכתובבהאתתכונותהמחלקה)אין א.
צורךלכתובפעולהבונה(.
—SeniorCityResident,עירתושב—CityResident:התושביםמקבוצותאחתלכלמחלקותשלושהגדר ב.
תושבעירותיק,VillageResident—תושבכפר.
כתובאתתכונותהמחלקותואתהפעולה()getPropertyTaxשתאפשרלחשבאתתשלוםמסהארנונהלכלאחת
משלושקבוצותהתושבים)איןצורךלכתובפעולהבונה(.
/המשךבעמוד23/
מדעיהמחשב,קיץתשע"ח,מס'899381 -23-
נתוןגוףפעולההמקבלמערךaשלנתוניהתושבים,ומדפיסעבורכלתושבעירותיקאתשמוואתסכוםהארנונה ג.
שהואנדרשלשלם.
for (int i 0= ; i < a.length; i++)
{
if (a[i] instanceof SeniorCityResident)
{
System.out.println(a[i].getName()+" "+a[i].getPropertyTax());
}
}
עבורכלאחתמכותרותהפעולה)1(-)3(שלפניך,צייןאםהפעולהתקינהאואינהתקינה.אםהפעולה
אינהתקינה—נמקמדוע,תקןאתהפעולה,והעתקאתהפעולההמתוקנתלמחברתך.
)1( public static void print(Object [] a)
)2( public static void print(IData [] a)
)3( public static void print(Resident [] a)
/המשךבעמוד24/
מדעי המחשב, קיץ תשע"ח, מס' 899381 - 24 -
תכנות מונחה עצמיםאם למדת מסלול זה ואתה כותב ב־ #C, ענה על אחת מן השאלות 16-15. )25 נקודות(
לפניך פרויקט שהוגדרו בו המחלקות האלה: E , D , C , B , A . בפרויקט מומשה פעולה ()F בשתי מחלקות. .15
קטע קוד שלפניך תקין.
A a1 = new A();A e1 = new E();E c1 = new C();C b1 = new B();C d1= new D();
נתון:
ההוראה ;()B d2=new D גורמת לשגיאת הידור )קומפילציה(.
ההוראה ;()a1.F גורמת לשגיאת הידור )קומפילציה(.
. "bye-bye" תקינה ומדפיסה ((E)e1).F(); ההוראה
. "hello" תקינה ומדפיסה ((B)b1).F(); ההוראה
ההוראה ;()F.(b1(D)) גורמת לשגיאת זמן ריצה.
. F() צייר עץ ירושה של כל המחלקות, וציין באילו שתי מחלקות מומשה הפעולה א.
: Z נתונה המחלקה ב.
public class Z{ public void G(){}}
הוסף את המחלקה Z לעץ הירושה שציירת בסעיף א כך שההוראה שלפניך תהיה תקינה: )1(
Z x = new A();קטע הקוד שלפניך תקין. )2(
A a2 = new A(); Z z1 = new Z(); Z a3 = new A();
לכל אחת מן ההוראות v-i שלפניך, ציין אם היא תקינה או אינה תקינה.
אם ההוראה אינה תקינה, נמק מדוע.
הסעיפים v-i אינם תלויים זה בזה:
i a2 = z1; ii a3 = z1; iii ((A)z1).G(); iv a2.G(); v ((A)a3).G();
/המשך בעמוד 25/
מדעיהמחשב,קיץתשע"ח,מס'899381 -25-
:Yהמחלקהנתונה ג.
public class Y
{
public void M(){}
}
הוסףאתהמחלקהYלעץהירושהשציירתבסעיףאכךשההוראהשלפניךתהיהתקינה )1(
)ללאהתייחסותלנתוניםבסעיףב(.
C f = new Y();
קטעהקודשלפניךתקין. )2(
A a2 = new A();
Y y1 = new Y();
C y2 = new Y();
עבורכלאחתמןההוראותv-iשלפניך,צייןאםהיאתקינהאואינהתקינה.
אםההוראהאינהתקינה,נמקמדוע.
;i a2 = y1 הסעיפיםv-iאינםתלוייםזהבזה.
ii y2 = y1;
iii ((A)y1).M();
iv y2.M();
v ((A)y2).M();
/המשךבעמוד26/
מדעיהמחשב,קיץתשע"ח,מס'899381 -26-
תשלוםמיסיארנונה)Property tax(הואתשלוםלרשויותהמקומיותבעבורשטחהמגוריםוהקרקעהנוספת .16
שבבעלותהתושבים.מחירהארנונההוא10ש"חלמ"רשלשטחהמיועדלמגוריםו־ 0.5ש"חלמ"רשלקרקענוספת.
לדוגמה,תושבשבבעלותושטחלמגוריםבגודל100מ"רושטחקרקעבגודל500מ"רמשלםמיסיארנונהבסכוםשל
.100 10 500 0.5 1250$ $+ =
התושביםחולקולשלושקבוצות:
תושבעירמשלםמיסיארנונהעבורשטחהמגוריםוהקרקעשבבעלותו,ומקבלמענקבסך250ש"חלתשלום
הארנונה.
תושבעירותיק—תושבעירבן60ומעלה—משלםמיסיארנונהכפישמשלםתושבעיר,ונוסףלכךזכאילהנחה
בהתאםלגילו:1%הנחהעבורכלשנתחייםלאחרגיל60.ההנחהמחושבתלאחרהפחתתהמענקמהסכום
המקורי.
תושבכפרמשלםארנונהעבורשטחהמגוריםוהקרקעשבבעלותווזכאילהנחהשל10%.תושב כפר בן
60 ומעלה אינו זכאי להנחה התלויה בגיל.
אם לאחר הפחתת ההנחה והמענק הסכום לתשלום מיסי הארנונה הוא מספר שלילי, התושב פטור מהתשלום
)משלם 0ש"ח(.
הוחלטלפתחתוכנהלחישובמיסיארנונהולגבייתםמהתושבים,ולשםכךהוגדרהממשקשלפניך.
interface IData
{
string GetName(); //תושבשלשםמחזירה
double GetPropertyTax(); //ארנונהמסשלגובהמחזירה
{
בסעיפיםא-בשלפניךעליךלהגדיראתהמחלקותלפיעקרונותשלתכנותמונחהעצמיםבהתאםלדרישות:
אתהנתוניםלחישובמסהארנונה)תשלוםעבורשטחשלדירהבמ"ר,תשלוםעבורשטחשלקרקעבמ"ר,שיעור
ההנחהבאחוזים,סכוםהמענקבש"ח(הגדרפעםאחתבלבדכקבועים.
.)private(כפרטיותהגדרקבועותשאינןהתכונותכלאת
הגדרמחלקהResident)המייצגתתושב(,המממשתאתהממשקIData,וכתובבהאתתכונותהמחלקה)אין א.
צורךלכתובפעולהבונה(.
—SeniorCityResident,עירתושב—CityResident:התושביםמקבוצותאחתלכלמחלקותשלושהגדר ב.
תושבעירותיק,VillageResident—תושבכפר.
כתובאתתכונותהמחלקותואתהפעולה()GetPropertyTaxשתאפשרלחשבאתתשלוםמסהארנונה
לכלאחתמשלושקבוצותהתושבים)איןצורךלכתובפעולהבונה(.
/המשךבעמוד27/
מדעי המחשב, קיץ תשע"ח, מס' 899381 - 27 -
בהצלחה!זכות היוצרים שמורה למדינת ישראל
אין להעתיק או לפרסם אלא ברשות משרד החינוך
נתון גוף פעולה המקבל מערך a של נתוני התושבים ומדפיס עבור כל תושב עיר ותיק את שמו ואת סכום הארנונה ג.
שהוא נדרש לשלם.
for ( int i = 0; i < a.Length; i++)
{
if (a[i] is SeniorCityResident)
{
Console.WriteLine (a[i].GetName()+" "+a[i].GetPropertyTax());
}
}
עבור כל אחת מכותרות הפעולה )1(-)3( שלפניך, ציין אם הפעולה תקינה או אינה תקינה. אם הפעולה
אינה תקינה — נמק מדוע, תקן את הפעולה, והעתק את הפעולה המתוקנת למחברתך.
(1) public static void Print(Object [] a)
(2) public static void Print(IData [] a)
(3) public static void Print(Resident [] a)