מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
1
מדעי המחשב ב'
פתרון בחינת הבגרות
פרק א -עיצוב תכנה
שאלה 1
i - false
א.
(F and T) and T = F
(0*1) * 1) = 0
ii - true
(T and F) OR ( F OR T) = T
= ) ( 1 * 0 ) + (0 + 1
0
+ 1
= 1
iii - true
(T and F) OR (( T AND T) AND T) = T
= ) ( 1 * 0 ) + (( 1 * 1 ) * 1
0
+ 1 *1
= 0 + 1 = 1
1
True
0
False
*
AND
+
OR
עץ-ביטוי-בוליאני )(t
אם עלה? )(t
אם ערך העלה שווה Tהחזר אמת
אחרת -החזר שקר
אחרת -
אם ערך הצומת "וגם"
החזר עץ-ביטוי-בוליאני (בן שמאלי של )tוגם עץ-ביטוי-בוליאני (בן ימני של )t
אחרת -החזר עץ-ביטוי-בוליאני (בן שמאלי של )tאו עץ-ביטוי-בוליאני (בן ימני של )t
blog.csit.org.il
הילה קדמן
עיצוב תכנה
2
מדעי המחשב
2015 - תשע"ה- 899205 :שאלון
Java:
C#:
//--- פעולה המחזירה אמת אם הצומת הוא עלה ושקר אחרת--public static bool IsLeaf(BinTreeNode<string> t)
{
if (t == null) return false;
if (t.GetLeft() == null && t.GetRight() == null)
return true;
return false;
}
//--- פעולה המחזירה את ערך עץ הביטוי הבוליאני--public static bool BoolTreeExp(BinTreeNode<string> bt)
{
if (IsLeaf(bt))
{
if (bt.GetInfo() == "T")
// if (bt.GetInfo().Equals("T"))
return true;
return false;
}
if (bt.GetInfo() == "AND")
return BoolTreeExp(bt.GetLeft()) && BoolTreeExp(bt.GetRight());
return BoolTreeExp(bt.GetLeft()) || BoolTreeExp(bt.GetRight());
}
הילה קדמן
blog.csit.org.il
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
3
עיצוב תכנה
פתרון Javaלפי התכנית החדשה:
פתרון C#לפי התכנית החדשה -נכתב ע"י ראמי ג'באלי:
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
4
שאלה 2
א.
()1
עבור העץ הנתון
מחזירה הפעולה אמת
הפעולה מחזירה אמת אם כל צומת בענף השמאלי של העץ שווה בערכו לצומת באותה רמה בענף הימני
של העץ ,ושקר אחרת.
()2
עבור העץ שלהלן תחזיר הפעולה אמת
עבור העצים שלהלן תחזיר הפעולה שקר
תנאי :2חסר בן שמאלי ל8 -
בענף השמאלי
blog.csit.org.il
תנאי :2חסר בן ימני ל8 -
בענף הימני
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
ב.
עיצוב תכנה
5
()1
()2
3
3
1
0
12
8
7
5
a
]a[i]>a[i+1
]a[i+1
]a[i
i<3
i
n
לא
7
5
כן
0
4
לא
8
7
כן
1
לא
12
8
כן
2
לא
3
סיבוכיות הפעולה ) O(nכי נוגעים בכל אחד מ n-תאי המערך בדיוק פעם אחת
שלוש השורות שלהלן מבצעות החלפה
בין ערכי התאים שבמקומות iו i+1 -במערך
()3
]a[i] = a[i] + a[i+1
]a[i+1] = a[i] - a[i+1
]a[i] = a[i] - a[i+1
a
]a[i
i<3
i
n
תאים מוחלפים ]a[i+1] a[i]>a[i+1
כן
8
12
כן
0
4
לא
12
8
כן
0
כן
7
12
כן
1
כן
7
8
כן
0
8
7
כן
0
8
כו
1
כן
2
0
3
2
1
0
5
7
8
12
5
7
12
8
5
7
12
8
]a[1] , a[2
5
12
7
8
]a[0] , a[1
5
12
8
7
לא
5
12
8
7
לא
12
5
12
8
7
כן
5
12
12
5
8
7
לא
8
7
כן
12
5
8
7
]a[1] , a[2
כן
5
8
כן
1
12
8
5
7
]a[0] , a[1
כן
5
7
כן
0
12
8
7
5
לא
7
5
כן
0
לא
8
7
כן
1
לא
12
8
כן
2
לא
3
]a[0] , a[1
]a[2] , a[3
המערך בסיום:
12
8
7
5
סיבוכיות הפעולה ). O(n3
עבור כל אחד מ n -האיברים הלא ממויינים,
מבצעים מיון בסד"ג ).O(n2
). f(n) = n * n2 O(n3
blog.csit.org.il
החלפת האיבר במקום ה k -גוררת מיון מחודש של כל
האיברים שלפניו ביעילות ריבועית (כמו מיון בועות):
)O(n3
12 + 22 + 32 + … + n2 ½( 12 + n2)*n
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
שאלה 3
blog.csit.org.il
6
עיצוב תכנה
: Java
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
blog.csit.org.il
7
עיצוב תכנה
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
8
עיצוב תכנה
פתרון Javaלפי התכנית החדשה:
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
שאלה 3
blog.csit.org.il
9
עיצוב תכנה
C# :
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
blog.csit.org.il
10
עיצוב תכנה
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
11
עיצוב תכנה
פתרון C#לפי התכנית החדשה -נכתב ע"י ראמי ג'באלי:
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
blog.csit.org.il
12
עיצוב תכנה
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
שאלה 4
blog.csit.org.il
13
עיצוב תכנה
:Java
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
שאלה 4
blog.csit.org.il
14
עיצוב תכנה
C#:
הילה קדמן
עיצוב תכנה
מדעי המחשב
2015 - תשע"ה- 899205 :שאלון
15
'פרק ב
MOV
MOV
AGAIN:
MOV
CMP
JNZ
MOV
INC
NEXT:
LOOPZ
SHOOV:
MOV
CMP
JNZ
MOV
INC
NEXT1:
LOOP
NOP
BX,3000H
CX,5
מערכות מחשב ואסמבלר
רונית מרציאנו:הפתרון לפרק זה נכתב ע"י
AL,CL
AL,3
NEXT
[BX],CL
BX
5 תרגיל
AGAIN
AL,CL
AL,3
NEXT1
[BX],CL
BX
SHOOV
MOV
MOV
AGAIN:
MOV
CMP
BX,3000H
CX,5
MOV
INC
NEXT:
LOOPZ
SHOOV:
MOV
CMP
JNZ
MOV
INC
NEXT1:
LOOP
NOP
[BX],CL
BX
AL,CL
AL,3
AGAIN
AL,CL
AL,3
NEXT1
[BX],CL
BX
SHOOV
BX
CX
AX
BH BL CH CL AH AL
30 00h
05h
05h
30 01h
04h
04h
03h
03h
02h
02h
01h
01h
00h
03h
3000h
הילה קדמן
תוכן הזיכרון
כתובת
3001h
BX
CX
AX
.ב
BH BL CH CL AH AL
30 00h
05h
05h
30 01h
04h
04h
30 02h
03h
03h
02h
02h
01h
01h
00h
תוכן הזיכרון
05h
03h
3000h
MOV BX,3000H
MOV CX,5
AGAIN:
MOV AL,CL
CMP AL,3
JNZ
NEXT
MOV [BX],CL
INC
BX
NEXT:
LOOPZ AGAIN
SHOOV:
MOV AL,CL
CMP AL,3
JNZ
NEXT1
MOV [BX],CL
INC
BX
NEXT1:
LOOPNE SHOOV
NOP
.א
3001h
3002h
BX
CX
AX
BH BL CH CL AH AL
30 00h
05h
05h
30 01h
04h
04h
03h
03h
02h
02h
01h
01h
00h
.ג
תוכן הזיכרון
03h
3000h
כתובת
3001h
כתובת
blog.csit.org.il
עיצוב תכנה
מדעי המחשב
2015 - תשע"ה- 899205 :שאלון
16
6 תרגיל
הוראות
MOV AL,3H
CMP AL,3H
CMP AL,2H
CMP AL,5H
XOR
AL,AL
DEC
AL
MUL BL
CF
+
)2(
XOR
XOR
MOV
XOR
SHOOV :
PUSH
MOV
PUSH
CALL
POP
TEST
JZ
INC
CONT:
INC
POP
LOOP
SI,SI ;index in ARR
DX,DX ; counter
CX,5 ; lenght of ARR
AX,AX
MOV
CX,DX ; answer in cx
ZF
+
+
-
.א
SF
+
+
+
(1)
.ב
CX ; using loop twice
AL,ARR[SI] ; next number from ARR
AX ;ax push to stack - parameter
PEULA
AX ; get answer from stack
AX,1 ; check answer
CONT
DX
SI
CX
SHOOV
PEULA PROC
MOV BP,SP
MOV AX,[BP+2]
MOV CX,8 ; number is between 0-255 8bits sufficient
XOR BX,BX ; counter
AGAIN:
SHR
AL,1
ADC BL,0
LOOP AGAIN
MOV [BP+2],BX
RET
ENDP
הילה קדמן
blog.csit.org.il
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
17
תרגיל 7
א.
()1
שגוי
()2
תקין
בשיטת המשלים ל , 2באמצעות 8ביטים אפשר לייצג מספים בין -128ל .127+
()3
שגוי
הסבר:
אפשר להתייחס לכתובת בזיכרון בתוך [ ] (סוגרים מרובעים) רק עם האוגרים .BX, DI ,SI
()4
שגוי
הסבר :ההוראה CALLמשנה את ,SPדוחפת את כתובת החזרה למחסנית ולכם SPמשתנה.
ההוראה CALLלא משנה את SI
()5
תקין
ההוראה CALLמגדילה את ערכו של SP
הסבר :ההוראה CALLמוציאה את המילה האחרונה מהמחסנית , POPומשנה את הIP
לכתובת שהוצאה מהמחסנית .הפקודה POPמגדילה את SPב – .2
()6
שגוי
הסבר :ההוראה RETמשנה את ערכו של ,IPלא תמיד דווקא מקטינה.
()7
שגוי
הקטע הנ"ל יגרום ללולאה ׁ 4096פעמים.
CXמקבל את הערך 0ויורד ל -1ו -2ו -3וכו ,עד שחוזר חזרה להיות 0ומפסיק.
()8
תקין
BX,BX
()9
תקין MOV CL,8
SHR DL,CL
הסבר shr :מבצע הזזה ציקלית ימינה ומכניס 0מצד שמאל ,אז 8פעמים הזזה ציקלית והכנסת
אפסים תאפס את אוגר DL
()10
NUM1 DB 100
שגוי מעל ( NUM2 DB -156 )-128
PUSH AL
POP AH
]BX,[AX
blog.csit.org.il
הסבר:
אפשר לדחוף למחסנית רק מילים
MOV
XORמאפסת את אוגר BX
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
18
עיצוב תכנה
ב.
AL,-1
DL,00001111B
CL,4
AL,DL
AL,CL
()1
AX
AH AL
0FFh
0Fh
00h
CX
CH CL
DX
DH DL
04h
0Fh
0Fh
MOV
MOV
MOV
AND
SHR
הקטע מאפס את AL
()2
תקין
MOV DL,00001111B
שגוי MOV DL,00001111
הסבר :הפקודה בצורה כזו אומרת כי יש להכניס את המספר העשרוני 1111לאוגר DLואוגר זה בגודל בית
יכול להכיל עד 255בעשרוני.
blog.csit.org.il
הילה קדמן
עיצוב תכנה
19
מדעי המחשב
2015 - תשע"ה- 899205 :שאלון
8 שאלה
ARR DB 03H,08H,0CH,01H,04H, 09H,3H
LEN = $-ARR
LEA
PUSH
MOV
PUSH
CALL
POP
POP
MOV
LEA
PUSH
MOV
PUSH
CALL
POP
POP
SI,ARR ; array address
SI
AX,LEN ; array lenght
AX
FINDSECPND ; find big and small
DI
AX
[DI],AH ; mov small on big
SI,ARR
SI
AX,LEN
AX
FINDSECPND ; find big again (and small)
DI
AX
MOV
MOV
INT
DL , AL ; print answer
AH , 2
21H
FINDSECPND PROC
; find big and small
MOV
MOV
MOV
MOV
MOV
DEC
SHOV:
INC
CMP
JL
MOV
MOV
MOVON: CMP
JG
MOV
CONT:
LOOP
MOV
MOV
RET
ENDP
הילה קדמן
BP,SP
BX,[BP+4]
CX,[BP+2]
AL,[BX]
AH,[BX]
CX
BX
[BX],AL
MOVON
AL,[BX]
DI,BX
[BX],AH
CONT
AH,[BX]
SHOV
[BP+2],DI
[BP+4],AX
blog.csit.org.il
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
20
עיצוב תכנה
פרק ב'
מבוא לחקר ביצועים
שאלה 9
שאלה 10
שאלה 11
שאלה 12
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
21
פרק ב'
מודלים חישוביים
הפתרון לפרק זה נכתב ע"י רחל לודמר.
תרגיל 13
א.
)(i
השפה המתקבלת היא }.{ab
)(ii
השפה המתקבלת היא }. {c n ac m a | n, m 0
)(iii
השפה המתקבלת היא }.{bbb
ב.
L1 : X Z Y R
L2 : Y X Z Z X R
L3 : Z Z Y X Z R
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
22
שאלה 14
א.
ב.
שפה רגולרית ראשונה {a n | n 0} :
שפה רגולרית שניה {bn | n 0} :
שרשורם
, L1ניתן לבנות לה אוטומט סופי דטרמיניסטי.
, L2ניתן לבנות לה אוטומט סופי דטרמיניסטי.
}L1 L2 {a n b k | n, k 0
(עדיין השרשור הוא שפה רגולרית) אבל ב L3דורשים
בנוסף לשרשור ,שאורך המילים המשורשרות יהיה שווה.
לכן נקבל את השפה:
}L3 {a nb k | n, k 0, n k
} {a nb n | n 0
וזו שפה אי רגולרית.
בעצם אם ניקח כל שתי שפות רגולריות אינסופיות ,ונשרשר אותם וגם נדרוש שאורך המילים
המשורשות יהיה זהה ,התוצאה תהיה שפה אי רגולרית( .יש תלות של מניה).
) L ( L2 L3 ) R( L1
ג.
}{c n | n 0} {b k a j | j , k 0
השפות L1 , L2 , L3הן רגולריות.
לכן ,מתכונת סגירות משלים של שפה רגולרי הוא רגולרי ,היפוך של שפה רגולרי ,רגולרי.
וכן מתכונת סגירות של חיתוך של שפות רגולריות הוא רגולרי ,ושרשור של שפות רגולריות – רגולרי.
נקבל שהשפה Lרגולרית.
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
23
שאלה 15
א .המילה הקצרה היא.abbab :
ב.
b , A /pop
b ,S /pop
לל"שa ,├ /
לל"שa ,├ /
לל"שb ,├ /
a ,A /push AA
b ,A /pop
a ,├ /push SA
לל"שa ,├ /
לל"שb ,├ /
שאלה 16
א.
w1 0i
w2 0 j | j i
w 1i
w1w 0i1i | i i 2i w1w L1
w2 w 0 j1i | j i , #0 ( w2 w) #1 ( w2 w) w2 w L1
הערה :הפתרון w 1 j 1אינו נכון.
מצד אחד מתקיים ש j-1>=iאבל לא בהכרח מתקיים החסם השני .j-1<=2*i
ב.
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
עיצוב תכנה
24
פרק ב'
תכנות מונחה עצמים Java / C#
הפתרון ל 3-השאלות הראשונות בתמ"ע זהה בשי השפות
תרגיל 21 / 17
א.
()1
()2
אפשרות I
אפשרות II
C
B
B
C
A
A
D
D
אפשרות I
ההוראות לא תקינות.
( cמטיפוס מחלקת העל) אינו מכיר את הפעולות שבמחלקה ( Bתת המחלקה)
אפשרות II
תקין.
cיורש מהמחלקה Bולכן ירש גם את כל הפעולות שלה.
שני העצמים יפעילו את הפעולה המוגדרת בB -
ב.
AAלא יכול להיות ממשק כי לא ניתן ליצור עצם מסוג הממשק (ניתן ליצור עצם מסוג מחלקה
המממשת את הממשק ולשים עליו הפנייה מטיפוס הממשק)
ג.
נוצר עצם מסוג Bעם הפנייה מסוג A
למרות שבשתי המחלקות מוגדרת הפעולה )( fוהפעולה הבונה של Aמפעילה את )(f
הרי שמי שקובע איזו פעולה תופעל הוא טיפוס העצם ולא טיפוס ההפניה ולכן יופעל )( fשל המחלקה .B
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
תרגיל 18
עיצוב תכנה
25
22 /
A
ב.
א.
AA a
int i
1
AA
BB
BB
DD
int i
2
CC
BB b
CC
CC c
int i
2
DD
DD d
int i
3
DD
3
BB b1
int i
CC
2
AA c1
int i
ג.
תקין .השמה חוקית של הפניה מסוג מחלקת העל לעצם מסוג תת המחלקה
שגיאת קומפילציה .השמה לא חוקית של הפנייה מסוג תת מחלקה לעצם מסוג מחלקת העל
שגיאת זמן ריצה -שגיאת המרה AA) .עולם לא היה מסוג (BB
//
//
//
;a = c
;b = a
;(CC)b1
ד.
הפלט
ערכי iשונים
aאינו סוג של BB
blog.csit.org.il
ההוראה
false
|
)b1.what(b
true
|
)b1.what(b, 1
true
| )((CC)c1).what(c
false
)d.what(a
|
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
תרגיל 19
עיצוב תכנה
26
23 /
A
ITing
א.
B
D
C
A
int a
2
B
0
things
IThing a
IThing b
1
C
2
IThing a
ב.
פלט
value
ממחלקה
i
2
A
0
4
B
1
8
C
2
8
C
3
22
D
4
IThing b
3
4
D
IThing things
4
int limit
עבור limit = 5יפעיל את )( valueשבמחלקה Dבצורה רקורסיבית ללא תנאי עצירה ,כלומר לולאה
אינסופית.
הסיבה:
blog.csit.org.il
הלולאה רצה עד ,limit = 5כלומר ,מנסה לסכם גם את valueשל ]things[4
שהוא מסוג המחלקה Dהמכיל הפנייה למערך thingsשל התכנית,
ולכן יתחיל לסכם מחדש ,וכך הלאה.
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
27
עיצוב תכנה
שאלה - 20תמ"ע Java
ג.
blog.csit.org.il
הילה קדמן
מדעי המחשב
שאלון - 899205 :תשע"ה 2015 -
ב.
28
עיצוב תכנה
הפעולה )( priceבמחלקה :Toy
הפעולה )( priceבמחלקה :Doll
הפעולה )( priceבמחלקה :Car
blog.csit.org.il
הילה קדמן
עיצוב תכנה
29
מדעי המחשב
2015 - תשע"ה- 899205 :שאלון
נכתב ע"י דיתה אוהב ציון
class Toy
{
private string name;
private double price;
private string color;
C#
תמ"ע-
24 שאלה
// שם
// מחיר
// צבע
public Toy(string name, double price,string color ) {}
public virtual double GetPrice() { return this.price; }
public void UpdatePrice(int p) { }
}
class Doll:Toy
{
private int AccNums;
private double AccPrice;
// מספר אביזרים
// מחיר לאביזר
public Doll (string name, double price, double AccPrice, int AccNums)
: base(name, price,color)
public override double GetPrice()
{
return base.GetPrice()+ this.AccNums*this.AccPeice;
}
}
class Car: Toy
{
private int size;
//
גדלים: 0,1,2
public Car(string name, double price, string color, int size)
: base(name, price, color) { }
public override double GetPrice()
{
return base.GetPrice()+size* 15;
}
Toy t1 = new Doll ("barbi",65.60,"red",12.5,4);
Toy t2 = new Car ("bimba",123,"green",2);
.ג
Console.WriteLine(t1.GetPrice());
Console.WriteLine(t2.GetPrice());
הילה קדמן
blog.csit.org.il
© Copyright 2025