מדעי המחשב ב`
Transcription
מדעי המחשב ב`
מדעי המחשב 1 שאלון - 899381 :תשע"ו 6112 - מדעי המחשב פתרון בחינת הבגרות פרק ראשון ( -יסודות) שאלה 1 דרך I דרך Java - II דרך C# - II blog.csit.org.il הילה קדמן מדעי המחשב 6 שאלון - 899381 :תשע"ו 6112 - שאלה 2 Java א / ב. ג. blog.csit.org.il הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 3 C# א. ב. ג. blog.csit.org.il הילה קדמן מדעי המחשב 4 שאלון - 899381 :תשע"ו 6112 - שאלה 3 Java ב. blog.csit.org.il הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 5 C# ב. blog.csit.org.il הילה קדמן מדעי המחשב 2 שאלון - 899381 :תשע"ו 6112 - פרק שני ( -מבני נתונים) שאלה 4 Java א. ב. סיבוכיות זמן הריצה היא ).O(n נימוק :העברת nטבעות מהמוט למוטות העזר n * O(1) :סה"כ nצעדים החזרת nטבעות משני מוטות העזר n * O(1) :סה"כ nצעדים )f(n) = 2n O(n סה"כ: blog.csit.org.il הילה קדמן מדעי המחשב שאלה 4 7 שאלון - 899381 :תשע"ו 6112 - C# א. ב. סיבוכיות זמן הריצה היא ).O(n נימוק :העברת nטבעות מהמוט למוטות העזר n * O(1) :סה"כ nצעדים החזרת nטבעות משני מוטות העזר n * O(1) :סה"כ nצעדים )f(n) = 2n O(n סה"כ: blog.csit.org.il הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 8 שאלה 5 Java: C#: ב. ()1 טבלת מעקב: ערך left.get left && I III II I מוחזר Right == && II left.val + left.getRight ≠ left == sum right III right.val ≠ right right sum right left value value == sum false ()2 true true T T T true T T T 11 F 27 false 21 8 13 10 27 ניתן להחליף את התנאי. נימוק :הפעולה מחזירה אמת אם סכום כל זוגות איברים הנמצאים במרחק שווה מקצות הרשימה שווים (סימטרי-סכומים). הלולאה עוצרת כאשר הגיעה לאמצע הרשימה או כאשר נמצא זוג איברים שסכומם שונה. עבור רשימה באורך אי-זוגי ,מוחזר אמת אם האיבר האמצעי שווה לסכום זה ,אחרת מוחזר שקר. בכל מקרה אחר מוחזר אמת אם סכום שני האיברים במקומות leftו right -שווה ל,sum - אחרת מוחזר שקר. ולכן ,ניתן להחליף את הקטע המסומן בהוראה: "החזר :סכום האיברים במקומות leftו right -שווה ל"sum - blog.csit.org.il הילה קדמן מדעי המחשב 9 שאלון - 899381 :תשע"ו 6112 - תרגיל 6 דרך I האם-מסלול-עולה? )(tr { פעולה המחזירה אמת אם קיים בעץ מסלול המתחיל בשורש העץ ומסתיים באחד העלים ,וערך הצמתים ממוין בסדר עולה ,ושקר אחרת. הנחה :העץ לא לא ריק שערכיו מספרים שלמים השונים זה מזה. // אם (עלה? ) )(trהחזר אמת } בדיקת המסלול הסתיימה בהצלחה אם (יש ל tr -בן שמאלי שערכו גדול מערך הצומת של ) tr אמת left אחרת שקר left אם (יש ל tr -בן ימני שערכו גדול מערך הצומת של )tr אמת right אחרת שקר right אם (אחד הצדדים תקין) החזר leftוגם האם-מסלול-עולה? (בן שמאלי של )trאו rightוגם האם-מסלול-עולה? (בן ימני של )tr החזר שקר // אף אחד מהבנים לא נמצא במסלול ממוין יש לממש גם את הפעולה עלה? )(tr blog.csit.org.il הילה קדמן 6112 - תשע"ו- 899381 :שאלון 11 מדעי המחשב II דרך גרינולדEvi אביטל:פתרון של ) שונים זה מזה1 הפעולה מקבלת עץ בינרי של מספרים שלמים טבעיים ( שלמים גדולים מ . שקר – אחרת, הפעולה מחזירה 'אמת' אם קיים מסלול עולה משורש עד עלה :תנאי קדם :תנאי בתר public static boolean upPath(BinNode<Integer> tr) { if (tr == null) return false; if (tr.getLeft() == tr.getRight()) return true; return upPath (tr.getLeft(), tr.getValue()) || upPath (tr.getRight(), tr.getValue()); } ) שונים זה מזה1 הפעולה מקבלת עץ בינרי של מספרים שלמים טבעיים ( שלמים גדולים מ x ומספר טבעי :תנאי קדם , x הפעולה מחזירה 'אמת' אם קיים מסלול עולה משורש העץ עד עלה שערך השרש שלו גדול מ .שקר – אחרת :תנאי בתר private static boolean upPath(BinNode<Integer> tr, int x) { if (tr == null) return false; if (tr.getValue() <= x) return false; if (! tr.hasLeft() && ! tr.hasRight()) return true; return upPath (tr.getLeft(), tr.getValue()) || upPath(tr.getRight(), tr.getValue()); } הילה קדמן blog.csit.org.il 6112 - תשע"ו- 899381 :שאלון מדעי המחשב 11 פרק שלישי מערכות מחשב ואסמבלר אור- רונית (מרציאנו) גל:הפתרון לפרק זה נכתב ע"י 7 תרגיל .א tav db ? ; count bits in tav count: mov al,tav mov cl,0 again: shr al,1 adc cl,0 cmp al,0 jne again continue: mov ch,cl ; keep cl ; check if Even number and ch,1 jz even ; not even rol tav,cl jmp sof even: ror tav,cl sof: nop .ב לא נכון )1( .4 לא תהיהax התשובה ב,1 יש ערך השונה מdx ולכן אם בbx בdx ax מבצעת חילוק שלdiv bx הפקודה mov ax,8 mov bx,2 div bx ah לא ידוע מה יש בal=1 בסים הקטע לא נכון )6( לא נכון )3( mov al,56 add al,200 jz stop inc al stop: ax=3000h בסים הקטע הילה קדמן blog.csit.org.il מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 16 11 14 11 30 33 02 11 01 תוכן 07 06 05 04 03 02 01 11 כתובת ax=3000h ()4 נכון ()5 נכון array dw 1,2,3,4 mov bx,array add bx,2 ]mov ax,[bx mov cx,3 mov ax,1 do: shl ax,1 loop do mov ax,11000001b mov bx,01000001b מכיוון שהנתון בשאלה הוא בית והוא נכנס ל אוגר מילה ,תמיד ההשוואה ביניהם תהיה ש axגדול יותר ()2 נכון or al,3 orאם ביט 1תמיד ייתן 1לא משנה אם הביט המקביל הוא 1או 1 blog.csit.org.il הילה קדמן 6112 - תשע"ו- 899381 :שאלון מדעי המחשב 13 8 תרגיל cx ax si ch cl ah al 00h 04h 45h 45h 0000h 04h 04h 05h 0001h 00h 04h 00h 14h 0002h 00h 03h 26h 26h 0003h 04h 02h 06h 0004h 00h 03h 00h 0ch 00h 02h 32h 32h 04h 03h 02h 00h 02h 00h 06h 00h 01h 82h 82h 04h 08h 02h 00h 01h 00h 10h 00h 00h sp sp spspsp .א 111h 0ffh 00h 00h 00h 00h 0feh 04h 03h 06h 01h 0fdh 0fch 0fbh 0fah 0f0h 0f9h תמונת הזיכרון vec1 db 45h,26h,32h,82h vec2 db 0,0,0,0 לפני vec1 db 45h,26h,32h,82h vec2 db 14h,0ch,2h,10h אחרי הילה קדמן blog.csit.org.il 6112 - תשע"ו- 899381 :שאלון מדעי המחשב 14 .5 מאוחסן המספרbl ובאוגר6 מאוחסן המספרal באוגר . כוללbl עדal את סכום המספרים מdx יש לאחסן באוגר לא מבצע .ב 1 קטע mov al,2 mov bl,5 mov dx,0 mov ah,0 mov cl,al sub cl,bl again: add dx,ax inc al loope again nop cx ch dx cl 02h dh ax dl ah bx al bh 00h 00h 00h 02h 0fdh 00h 02h bl 05h 03h 0fch loope ואז יוצא מהלולאה בגלל ה cx בנוסף שימו לב לערך של מבצע 2 קטע לא מבצע 3 קטע mov al,2 mov bl,5 xor dx,dx mov bh,0 again: add dx,bx dec bl cmp bl,al jge again nop mov al,2 mov bl,5 מתאפסים ישר בהתחלהbl ןal xor dx,dx xor ax,ax mov bx,0 again: add dx,ax add ax,1 cmp ax,bx jl again nop הילה קדמן blog.csit.org.il מדעי המחשב 15 שאלון - 899381 :תשע"ו 6112 - מבוא לחקר ביצועים שאלה 9 שאלה 11 blog.csit.org.il הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 12 מודלים חישוביים הפתרון לפרק זה נכתב ע"י רחל לודמר. תרגיל 11 L L1 L2 L1 L2 א. כאשר: }L1 {a k | k %2 1, k 0 }L2 {b k | k %2 0, k 0 ב. b a a b a b b b b blog.csit.org.il a b a a הילה קדמן מדעי המחשב 17 שאלון - 899381 :תשע"ו 6112 - שאלה 12 blog.csit.org.il הילה קדמן מדעי המחשב 18 שאלון - 899381 :תשע"ו 6112 - תכנות מונחה עצמים Java תרגיל 13 א. ()1 שגיאת קומפילציה (הידור). הפעולה )( fooאינה מוגדרת עבור עצם מהטיפוס Object ()6 שגיאת קומפילציה (הידור). הפעולה )( fooאינה מוגדרת עבור עצם מהטיפוס B ()3 תקין ()4 שגיאת קומפילציה (הידור). הפעולה )( fooאינה מוגדרת עבור עצם מהטיפוס Object ב. blog.csit.org.il הילה קדמן 6112 - תשע"ו- 899381 :שאלון מדעי המחשב 19 14 תרגיל .א .ב 1 1 6 3 4 5 Object a A A x(A) 0 x(A) 5 B B x(A) 0 x(B) B x(A) 5 1 x(B) -5 -15 x(B) 4 40 B A aa x(A) x(B) הילה קדמן 2 x(A) 3 10 8 blog.csit.org.il מדעי המחשב ג. 61 שאלון - 899381 :תשע"ו 6112 - ()1 ()6 ()3 ()4 ()5 ()2 blog.csit.org.il הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 61 תכנות מונחה עצמים C# הפתרון לפרק זה נכתב ע"י דיתה אוהב-ציון. שאלה 15 א1 . שגיאת הידור .העצם gמטיפוס המחלקה Objectשלא מכילה ולא מכירה את הפעולה )(.Foo (מחלקת אב לא מכירה פעולות שיש בבנים שלה) א2 . שגיאת הידור .העצם gמטיפוס המחלקה Bשלא מכילה ולא מכירה את הפעולה )(.Foo (מחלקת אב לא מכירה פעולות שיש בבנים שלה) א3 . תקין. א4 . שגיאת הידור .העצם gמטיפוס המחלקה Objectשלא מכילה ולא מכירה את הפעולה )(.Foo (מחלקת אב לא מכירה פעולות שיש בבנים שלה) ב. המחלקה Artist משתנה סטטי על פי הקריאה Artist.num public class Artist { ;protected string name ;protected double sal ;protected static int num } { )public Artist(double sal, string name בנאי המתאים לקריאה עם שתי מחרוזות הפעולה )( Valueמפעילה אותו }{)public Artist(double sal, string name, string name1 } { )(public double Price על פי ההקריאה )(base.Calc מאחר וב Singer -היא ,override הרי באב היא וירטואלית על פי ההקריאה )(base.Print } { )public virtual double Calc(double d } { )(public virtual void Print מאחר וב Singerהיא ,override הרי באב היא וירטואלית } { )(public int Train מאחר ואין הגדרה לפעולה כמימוש מהממשק ב Singerהרי היא מוגדרת באב. blog.csit.org.il } הילה קדמן מדעי המחשב שאלון - 899381 :תשע"ו 6112 - 66 שאלה 16 א. ההוראה השלישית ; B b1= a1שגויה .עצם מטיפוס מחלקה יורשת לא יכול להחזיק עצם ממחלקת האב. ;B b1 = (B)a1 יש לבצע המרה ב. ;)aa = new B(3, 10 A ;)( aa.Subתפעיל את הפעולה מ B -הדורסת לכן הערך ישתנה ל8 - השורה ;)( ((A)ar[3]).TripleXתשנה את הערך (הפעולות המופעלת הן הפעולות הדורסות של ). B B.x= -15 השורה ;)( ((B)ar[4]).TenTimesXתשנה את הערך B.x= 40 blog.csit.org.il הילה קדמן מדעי המחשב 63 שאלון - 899381 :תשע"ו 6112 - ג. .1 תקין .הפלט ;xA=198 xB=99 : .2 ;)(a2.TenTimesX לא תקין -שגיאת הידור. הפניה מטיפוס האב לא מכירה פעולות ממחלקות יורשות .תיקון אפשרי ((B)a2).TenTimesX(); : .3 אותה שגיאה .ה if -לא משנה. .4 ;)(((B)a1).TenTimesX שגיאת זמן ריצה .הפניה מטיפוס האב המחזיקה עצם מטיפוס אב לא מכירה את היורשים ממנה. .5 תקין .הפלט ;xA=2 xB=97 : .6 תקין .הפלט .2 : blog.csit.org.il הילה קדמן