Israel Bagrut Computer Science 5 Units study materials
Israel Bagrut Computer Science 5 Units study resources

Israel Bagrut Computer Science 5 Units: תכנות בשפה עילית (Java/C#)

Israel Bagrut Computer Science 5 Units · Work through your exam, one topic at a time.

All guide sections

תכנות בשפה עילית (Java/C#)

דומיין זה בודק שליטה בתחביר ובסמנטיקה של שפת תכנות עילית, בדרך כלל Java או C#: טיפוסים, משתנים, תנאים, לולאות, מערכים, מחרוזות, מתודות וחריגות. השאלות בודקות גם קריאת קוד וזיהוי התנהגות בפועל, לא רק כתיבה.

כללים מרכזיים

  • טיפוסים פרימיטיביים מול טיפוסי הפניה: int מועבר לפי ערך, מערך או אובייקט מועברים לפי הפניה לערך.
  • מחרוזות ב-Java הן immutable; השוואת תוכן נעשית ב-equals, לא ב-==.
  • מערך הוא באורך קבוע; אינדקס חוקי הוא 0 עד length-1, וחריגה מזה גורמת ל-ArrayIndexOutOfBoundsException.
  • חלוקה שלמה גורמת להשמטת שארית; 7/2 הוא 3, לא 3.5.
  • מתודה מחזירה ערך יחיד או void; פרמטרים הם העתקים, אך שינוי תוכן מערך בתוך מתודה נראה גם מחוצה לה.
  • קלט עם Scanner: after nextInt() יש לצרוך את סוף השורה לפני nextLine().

דוגמה מעובדת

מתודה countEven(int[] a) שסופרת איברים זוגיים: אתחול count=0, לולאה for(int i=0;i<a.length;i++), תנאי if(a[i]%2==0) count++. עבור {4,7,10,3} המעבר נותן 4 כן, 7 לא, 10 כן, 3 לא, ולכן ההחזרה היא 2. הנימוק: הביטוי a[i]%2 מחזיר 0 בדיוק עבור מספרים זוגיים, כולל 0 ושליליים זוגיים ב-Java.

מלכודות

  • שימוש ב-== להשוואת מחרוזות במקום equals.
  • גישה לאיבר מחוץ למערך או שכחת עדכון מונה בלולאת while.
  • בלבול בין הדפסה להחזרת ערך מתודה.
  • שינוי מערך בזמן מעבר עליו, מה שמשבש את האינדקסים.
  • אי-טיפול בקלט לא חוקי ובחריגות.