'ב בשחמה יעדמ -...
Transcript of 'ב בשחמה יעדמ -...
עיצוב תכנה 1 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
מדעי המחשב ב' פתרון בחינת הבגרות
עיצוב תכנה -פרק א
:1שאלה
5 4 3 2 1 0
18 5 14 4 8 2 a
kar = karamba הגדרת קיצור: מעקב אחר הפעולה: א.
,2המכיל מספרים שלמים שערכם 6עבור מערך בגודל ב. , כולל מספר שלילי(2 -להיות כל מספר הקטן מ יכול k)ערך : 6כל ההוראות הבאות יחזירו ערך
karamba(1, a, 0, 2) , karamba(1, a, 1, 3) , karamba(1, a, 2, 4) , karamba(1, a, 3, 5)
.k -)כולל(, הגדולים מ e -ו sהפעולה מחזירה את סכום כל איברי המערך, בין המקומות ג.
O(n)סיבוכיות הפעולה הוא ד. fn = log2n + n O(n) נימוק: פונקצית זמן הריצה של הפעולה הוא:
(log2n)הפעולה מחלקת שוב ושוב את המערך עד לקבלת איבר אחד את כל האיברים. -בחזרה מהרקורסיה -ואחר כך מסכמת איברי המערך.n -פעם אחת על כל אחד מ הפעולה בסה"כ עוברת
40פלט ההוראה הוא:
40
kar (6,a,1,5)
22
kar (6,a,1,3)
18
kar (6,a,5,5)
(a[5] == 18) > 6
0
kar (6,a,4,4)
(a[4] == 5) > 6
18
kar (6,a,4,5)
14
kar (6,a,3,3)
(a[3] == 14) > 6
8
kar (6,a,1,2)
8
kar (6,a,1,1)
(a[1] == 8) > 6
0
kar (6,a,2,2)
(a[2] == 4) > 6
עיצוב תכנה 2 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:Java :2שאלה
סיבוכיות הפעולה: ב. הצמתים בעץ. n -אחד מהפעולה עוברת על כל
האיברים במחסנית, nספירת - Iלפי אפשרות O(nסיבוכיות הפעולה
2)
איברים 3ספירה של עד - IIלפי אפשרות O(n)ולכן סיבוכיות הפעולה O(1) במחסנית
עיצוב תכנה 3 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
עיצוב תכנה 4 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
// --- איברים שבצמתי העץ 3של סכום עד מחסניתפעולה המחזירה --- C# : public static Stack<int> TreeSumStack (BinTreeNode<Stack<int>> t) { Stack<int> s = new Stack<int>(); Sum (t, s); return s; } 1דרך ---// --- public static void TreeSumStack(BinTreeNode<Stack<int>> t, Stack<int> s) { if (t != null) { Sum(t.GetLeft(), s); int n = 3, sum = 0; Stack<int> s2 = t.GetInfo(); while (! s2.IsEmpty() && n > 0) { sum = sum + s2.Pop(); n -- ; } Sum(t.GetRight(), s); } }
2דרך ---// --- public static void TreeSumStack(BinTreeNode<Stack<int>> t, Stack<int> s) { if (t != null) { Sum(t.GetLeft(), s); int sum = SumStack (t.GetInfo(); s.Push(sum); Sum(t.GetRight(), s); } }
האיברים שבראש המחסנית 3פעולה המחזירה את סכום עד ---// --- public static int SumStack(Stack<int> s) { int sum = 0; for (int i = 0 ; I < 3 ; i++) if (! s.IsEmpty()) sum += s.Pop(); return sum; }
עיצוב תכנה 5 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:3שאלה
א. --- פעולה המחזירה עותק של הקבוצה ---//
public static RealSet clone (RealSet rs)
{
RealSet rs1 = new RealSet();
RealSet rsTemp = new RealSet();
int n = sr.size();
double x;
for (int i = 0 ; i < n ; i ++)
{
x = rs.findBiggest();
rs1.insert (x);
rsTemp.insert (x);
rs.remove (x);
}
for (int i = 0 ; i < n ; i ++)
{
x = rsTemp.findBiggest();
rs.insert (x);
rsTemp.remove (x);
}
return rs1;
}
--- פעולה המחזירה קבוצה חדשה המכירה רק את האיברים השליליים מהקבוצה הנתונה ---//
public static RealSet buildNeg (RealSet rs)
{
RealSet rs1 = clone (rs);
double x;
int n = rs1.size();
while (n > 0)
{
x = rs1.findBiggest();
if (x < 0)
return rs1;
rs1.remove();
n -- ;
}
return rs1; // אם אין איברים שליליים, תוחזר קבוצה ריקה
}
Java :
עיצוב תכנה 6 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
--- פעולה המחזירה עותק של הקבוצה ---//public static RealSet Clone(RealSet rs) { RealSet s1 = new RealSet(); RealSet s2 = new RealSet(); int n = rs.Size(); double num; for (int i = 1; i <= n; i++) { num = rs.FinBiggest(); rs.Remove(num); s1.Insert(num); s2.Insert(num); } for (int i = 1; i <= n; i++) { num = s2.FinBiggest(); s2.Remove(num); rs.Insert(num); } return s1; }
ה רק את האיברים השליליים מהקבוצה הנתונהלולה המחזירה קבוצה חדשה המכיפע ---// ---
public static RealSet BuidNeg(RealSet rs) { RealSet s = Clone(rs); double num; bool finish = false; int n = s.Size(); while (n > 0) { num = s.FinBiggest(); if (num >= 0) { s.Remove(num); n -- ; } else finish = true; } return s2; }
C# : ראמי ג'באלינכתב ע"י
עיצוב תכנה 7 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:4שאלה
א.
ב.
ג.
Java :
עיצוב תכנה 8 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
ד.
דרך כתיבה נוספת לניהול השלב השני של המשחק:boolean gameOver = false;
while (! gameOver)
{
if (! deck.move())
gameOver = true;
}
עיצוב תכנה 9 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
פרק ב'
מערכות מחשב ואסמבלר הפתרון לפרק זה נכתב ע"י:
מקיף ט' ראשון לציון –סוזי גנזיה
: 5תרגיל
א. הוראה A AX CXתא זיכרון
69H= 01101001B
AL AH
00 00 0002 MOV CX,2 00 00 MOV AX,0
01101001B (69h)
MOV
AL,A
01101001B
(69h)
ADD AH,A
10100100b A4h))
10100101b
A5h))
Next: SHL
AX,CL 10100101b
A5h))
OR
AL,AH
00101001b
29h))
SHR
AH,CL 0001 LOOP
NEXT 01001001B (4Ah) 01010011b
(53h)
Next: SHL
AX,CL 01011011b
(5Bh)
OR
AL,AH 01011011b
(5Bh) 00101001b
29h))
SHR
AH,CL 0000 LOOP
NEXT 01011011b
(5Bh)
MOV
A,AL
1השלמה MOV AX, PLACE .1 ב.
MOV BX,1 2השלמה
SAR AX,1אשר שייכת למספרים לא מכוונים תוחלף בהוראה SHR AX,1אם ההוראה 2 השייכת למספרים מכוונים ישתנה ביצוע הקטע בשל השפעתו על הסיבית המשמעותית ביותר, .0FFFFHהיה: סיבית הסימן )מריחת סימן( והתוצאה שתתקבל ת
עיצוב תכנה 10 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:6תרגיל
א.
יכרון של המערך לפני ביצוע התוכניתמפת ז
20B 20A 209 208 207 206 205 204
F1 C 11 1A A8 21 6 2
מפת זיכרון של המערך לאחר ביצוע התוכנית:
20B 20A 209 208 207 206 205 204
C 11 1A A8 21 6 2 0
קטע התכנית מבצע הזזה שמאלה של תאי המערך ומכניס אפס לתא הראשון. .2
AX CX SI
AL AH 20A 0007
C0 209 0006
11 208 0005
1A 207 0004
A8 206 0003
21 205 0002
06 204 0001
02 204 0000
00
עיצוב תכנה 11 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
.ב
1. MOV AL, 0A1h (0A1h =10100001b)
SUB AL,11111101b
10100001-11111101=10100100b ( borrow )בפעולת החיסור התבצע
AL= 10100100b (A4h)לאחר הפעולה,
of pf sf zf cf
0 0 1 0 1
2. MOV AL, 01110111b (77h)
ADD AL,29D (29D = 1Dh)
77h+1dh= 94h )94 מספר שלילי, התבצעה גלישהh)
AL= 10010100b (94h)לאחר הפעולה
of pf sf zf cf
1 0 1 0 0
עיצוב תכנה 12 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:7תרגיל Cmp CX DX AX מחסנית
CL CH בתוכנית הראשית:
sp
88 88
8888
תוכנית ראשית
SP 11
11 88
88 :CALL UPLILאחרי פקודת
SP כתובת חזרה
11 11
88 88
A305 שגרה
05
BP=SP ובת כת חזרה
BP+2 11 11
BP+4 88 88
1111
BP=SP כתובת חזרה
BP+2 22 22
BP+4 88 88
F
04 Shl -
>
2222
BP=SP כתובת חזרה
BP+2 44 44
BP+4 88 88
F 8888
4444
Shl -
>
עיצוב תכנה 13 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
תמונת מחסנית במהלך הרצת השגרה:
BP=SP כתובת חזרה
BP+2 11
11
BP+4 88
88
BP=SP כתובת חזרה
BP+2 22
22
BP+4 88
88
BP=SP רהכתובת חז
BP+2 44
44
BP+4 88
88
BP=SP כתובת חזרה
BP+2 88
88
BP+4 88
88
תמונת זיכרון:
CHECK SUM NUMBER
0004 0003 0002 0001 0000
? 11 11 A3 05
1 11 11 A3 05
ואי החזרתם RET 4 בשל מחיקת ערכי המחסנית ע"י הפקודה 1111יישאר ללא שינוי, ערכו SUM ב. כנית הראשית.לת
עיצוב תכנה 14 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:8שאלה
.CODE
MOV AX, @DATA
MOV DS,AX
MOV CX,100
MOV DH,0
MOV SI,OFFSET NUMBERS
AGAIN: MOV BL,[SI]
MOV BH,0
MOV DH,APP [BX]
INC DH
MOV APP[BX],DH
INC SI
LOOP AGAIN
SOF: MOV AX, 4C00h
INT 21h
END
עיצוב תכנה 15 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
פרק ב'
מבוא לחקר ביצועים
:9שאלה
:10שאלה
:11שאלה
:12שאלה
עיצוב תכנה 16 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
פרק ב'
מודלים חישוביים .רחל לודמרהפתרון לפרק זה נכתב ע"י
: 13תרגיל
א.
ab,aa,bbמילה מינימאלית המתקבלת ע"י האוטומט: (1) ב.
abbb: 3וארכה גדול מ a –מילה המתחילה ב (2)
bbbbbb: 3וארכה גדול מ b –מילה המתחילה ב (3)
(4) }12%||,},{,0|{ 2 wbawnbאוawL n
באורך זוגי חיובי . bואורכן זוגי או רצף של a -הן מילים המתחילות ב L -המילים ב
1
q0 q1 q2
0
1
1
1
0
q3
0
1
0
q4
0
עיצוב תכנה 17 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:14שאלה
אוטומט מחסנית עבור השפה:
}0|)(){( 12 nbabcabaL nn
:15שאלה
ב. א.
ww2 אינו מהצורהvv .
.b -אחרי ה aשייכת לשפה ואין abהטענה לא נכונה. המילה (i) ג.
(ii) הטענה לא נכונה. המילהabb מסתיימת ב- b כת לשפה.ולא שיי
(iii) הטענה נכונה. שפת האוטומט היא אוסף כל המילים מעל הא"ב{a,b} 2שאין בהם - b .רצופים
A,b/ללא שינוי
S /S,bשלוף
SA/├,aדחוף AA/A,aדחוף
b,├/ללא שינוי
S,a/ללא שינוי A,a/ללא שינוי
A,a/ללא שינוי
a,├/ללא שינוי b,├/ללא שינוי A,b/ללא שינוי
A,c/ללא שינוי
S,b/ללא שינוי A,b/ללא שינוי
A /A,bשלוף
a,├/ללא שינוי b,├/ללא שינוי
12
11
1|
Lcbaww
Lcbaww
icbw
iij
iii
ii
12
11
1|
Lbbaaww
Lbbaaww
ibaw
ij
ii
i
עיצוב תכנה 18 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:16שאלה
#aaa?b#מסלול חישוב עבור הקלט: א.
# b ? a a a # 1.
0q
# b ? a a a # 2.
0q
# b ? a a a # 3.
0q
# b ? a a a # 4.
0q
# b ? a a a # 5.
0q
# b ? a a a # 6.
1q
# b ? a a # # 7.
2q
# b ? a a # # 8.
2q
# b ? a a # # 9.
2q
# b ? a a # # 10.
2q
# b ? a a # # 11.
2q
# b ? a a # # 12.
3q
עיצוב תכנה 19 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
##aA### הפלט:
. ###B###. הפלט במקרה זה הוא: Bהתו שירשם במקום ? הוא ב.
מטרת המכונה: ג. התווים הראשוניים של mבמקום התו ?, וכן A , המכונה תרשום b -גדול ממספר ה a -כאשר מספר ה
#. -יהפכו ל b -#, וגם כל תווי ה -)השמאליים ביותר( יהפכו ל a -ה
####|,0 הפלט יהיה מהצורה: mmnAa mmnm
b -ה n#, וכן -יהפכו ל a -, כל הB -, התו ? יהפוך ל a -גדול או שווה למספר ה b -וכאשר מספר ה #. -הימניים ביותר יהפכו ל
####|,0הפלט יהיה מהצורה: nnmBb nnmn
# # ? a a # # 13.
0q
# # ? a a # # 14.
0q
# # ? a a # # 15.
0q
# # ? a a # # 16.
0q
# # ? a a # # 17.
1q
# # ? a # # # 18.
2q
# # ? a # # # 19.
2q
# # ? a # # # 20.
2q
# # ? a # # # 21.
3q
# # A a # # # 22.
4q
עיצוב תכנה 20 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
פרק ב'
Javaתכנות מונחה עצמים
: 17תרגיל
מוגדרת בתת המחלקה שלה. validCodeא מחלקת העל. הפעולה הי A לא נכון. (i) א. (ii) .נכון B יורשת מ- A .ולכן היא גם יורשת את כל התכונות ואת כל הפעולות (iii) .התכונה לא נכוןmyVal שב- A היא תכונה פרטית(private) ( ולא מוגנתprotected.) (iv) .לא נכון A אינה מכירה את התכונות שלB ולכן אינה יכולה להתייחס אליהן )גם אם הן לא היו מוגדרות כתכונות פרטיות(.
ב. public B (int val, double x)
{
super(val);
this.x = x;
}
שבעקבות ההוראה עבר המרה כלפי מעלה Bהוא אובייקט מטיפוס code שגיאת הידור. (i) ג. אינה חוקית. Bש ממנו לבצע פעולה של . ולכן הניסיון לבקAלטיפוס
(ii) .שגיאת הידור num הוא אובייקט מטיפוסA ולכן ,validCode .אינה שייכת לפעולות שלו
(iii) .ההמרה לטיפוס שגיאת הידורB .מתבצעת על התוצאה של הפעולה ל (. התוצאה היא ערך בוליאני שאינו יכוiהפעולה מביאה לשגיאת הידור )סעיף להיות מומר לטיפוס בוליאני.
()boolean myBool = ((B)code).validCode -שינוי ההוראה ל הייתה הופכת את ההוראה לתקינה.
(iv) הידור.שגיאת num אינו מטיפוסA ולכן אי אפשר לבצע לו המרה לטיפוסB. ()boolean myBool = ((B)num).validCode -ל)שינוי ההוראה תיתן שגיאת זמן ריצה(.
עיצוב תכנה 21 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
ד.
אינה עוברת שינוי. Aשבמחלקה fהפעולה דרך א:
במחלקה של הפעולה הראשית נכתוב:
main -קטע הקוד בA [] arr = new A[5];
arr[0] = new A (1);
arr[1] = new B (2, 2.2);
arr[2] = new B (3, 3.3);
arr[3] = new A(4);
arr[4] = new B (5, 5.5);
int countB = 0;
for (int i=0 ; i<arr.length ; i++)
{
if (arr[i] instanceof B)
countB ++;
}
int countA = arr.length - countB;
:Aבמחלקה fשינוי הפעולה דרך ב:
main -קטע הקוד ב Aבמחלקה fשינוי הפעולה public int f()
{
if (this instanceof B)
return 1;
return 0;
}
A [] arr = new A[5];
arr[0] = new A (1);
arr[1] = new B (2, 2.2);
arr[2] = new B (3, 3.3);
arr[3] = new A(4);
arr[4] = new B (5, 5.5);
int countA = 0, countB = 0;
for (int i=0 ; i<arr.length ; i++)
{
if (arr[i].f() == 1)
countB ++;
else
countA ++;
}
עיצוב תכנה 22 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:18תרגיל
A
int n
char ch
2
G
A a3
A
int n
char ch
1
M
B
int n
char ch
A a
2
G
B b2
A
int n
char ch
4
E
B
int n
char ch
A a
2
G
B b1
A
int n
char ch
3
M
A a2
A
int n
char ch
4 5
E F
A a1
פלט התכנית:
F F F F F
M M M
E E E E
M
G G
B b2 = new B (b1, 1);
אין פעולה בונה המקבלת עצם Bמחלקה בעצם ה בונה המקבלתיש פעולאבל B מסוג , A סוג שלהוא B -כיוון שמ .Aמסוג
העצם שהועבר כפרמטר ) מופעלת פעולה בונה זו
.(מקבל הפניה מסוג מחלקת העל שלו
עיצוב תכנה 23 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:19תרגיל
א.
Item
EdSoft Book
TextBook
Library
IApprovable
IRankable
IReadable
עיצוב תכנה 24 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
ב.
עיצוב תכנה 25 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
:20שאלה
א.
ב.
Participant -משתתף Sadna -סדנה
PaidSadna סדנה בתשלום
Materials -חומרים
Hugim –חוגים התכנית הראשית
כוללת מערך של סדנאות
עיצוב תכנה 26 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
חוגים -התכנית הראשית כולל יצירת חוג אחד מטיפוס סדנה שתשלום )לא נדרש בבחינה.(
עיצוב תכנה 27 מדעי המחשב
2012 -תשע"ב - 899205שאלון:
log.csit.org.ilb הילה קדמן
פרק ב'
#Cתכנות מונחה עצמים ........ע"י הפתרון לפרק זה נכתב
: 21תרגיל
:22תרגיל
:23תרגיל
:24שאלה