8200 University

מבחן להב

בחרו רמת קושי וסט תרגול

📖מבחן להב — סקירה כללית

מבחן להב הוא אחד המרכיבים המרכזיים ביום מיון התקשוב. המבחן בודק יכולת ניתוח קוד — קריאה שיטתית של תוכנית מחשב והבנת מה היא עושה.

מבנה המבחן

  • משך: כ-40 דקות
  • מבנה: 5 קטעי קוד + תרשים זרימה, כל אחד עם מספר שאלות
  • שפה: קוד בסגנון Java (פסאודו-קוד מובנה)

מה נבדק?

המבחן בודק את היכולת שלכם ל:

  • לעקוב אחרי ערכי משתנים לאורך ריצת התוכנית
  • להבין לולאות for ו-while — מתי מתחילות, מתי נעצרות
  • להבין תנאים if/else — איזה ענף מתבצע
  • לעקוב אחרי קריאות לפונקציות וערכי החזרה
  • לקרוא תרשימי זרימה ולהבין את התהליך שהם מתארים
אין צורך בניסיון תכנות! המבחן לא דורש ידע קודם — הכול מוסבר בדף ההוראות. אבל הכרת המושגים מראש נותנת יתרון משמעותי.

גישה מומלצת

  1. קראו את כל המדריך לפני שמתחילים לתרגל
  2. תרגלו ברמה קלה עד שאתם מרגישים בטוחים
  3. עלו לרמה בינונית — כאן מתחיל האתגר האמיתי
  4. נסו רמה קשה — גם אם לא מצליחים הכול, זה מרחיב את החשיבה

רשימת בדיקה לפני מבחן

  • ✅ קראתי את כל המדריך
  • ✅ פתרתי לפחות 5 שאלות ברמה קלה בהצלחה
  • ✅ פתרתי לפחות 5 שאלות ברמה בינונית
  • ✅ ניסיתי שאלות ברמה קשה
  • ✅ אני יודע מהן הטעויות הנפוצות שלי
זכרו: ההכנה הטובה ביותר היא תרגול + ניתוח טעויות. לא רק לפתור — אלא להבין למה טעיתם ומה לשנות.

📋מושגי יסוד בקוד

משתנים (Variables)

משתנה הוא "קופסה" שמכילה ערך. לכל משתנה יש שם וסוג:

int x = 5;        // משתנה מספרי שלם, ערך התחלתי 5
String s = "hello"; // משתנה מחרוזת, ערך התחלתי "hello"

ניתן לשנות את ערך המשתנה:

x = x + 3;  // x היה 5, עכשיו 8
x = x * 2;  // x היה 8, עכשיו 16

אופרטורים חשבוניים

אופרטורמשמעותדוגמהתוצאה
+חיבור7 + 310
-חיסור7 - 34
*כפל7 * 321
/חילוק שלם7 / 32 (לא 2.33!)
%שארית (מודולו)7 % 31
שימו לב לחילוק שלם! כשמחלקים int ב-int, התוצאה היא int — החלק העשרוני נעלם. 7 / 2 = 3, לא 3.5!

אופרטורי השוואה

אופרטורמשמעותדוגמהתוצאה
==שווה ל-5 == 5true
!=שונה מ-5 != 3true
>גדול מ-5 > 3true
<קטן מ-5 < 3false
>=גדול או שווה5 >= 5true
<=קטן או שווה3 <= 5true

תנאים — if / else

תנאי מאפשר לבצע קוד רק כשתנאי מסוים מתקיים:

if (x > 10) {
    System.out.println("גדול");
} else if (x > 5) {
    System.out.println("בינוני");
} else {
    System.out.println("קטן");
}

אם x = 7: התנאי הראשון (7 > 10) שגוי, התנאי השני (7 > 5) נכון → ידפיס "בינוני".

לולאת for

לולאה שרצה מספר ידוע של פעמים:

for (int i = 0; i < 5; i++) {
    System.out.println(i);
}

המבנה: for (ערך_התחלתי; תנאי_המשך; עדכון)

הלולאה הזו מדפיסה: 0, 1, 2, 3, 4 (לא 5! כי התנאי הוא i < 5).

לולאת while

לולאה שרצה כל עוד תנאי מתקיים:

int n = 100;
while (n > 1) {
    n = n / 2;
}

מעקב: n=100 → 50 → 25 → 12 → 6 → 3 → 1. כשמגיע ל-1, התנאי 1 > 1 שגוי, הלולאה נעצרת.

מערכים (Arrays)

מערך הוא רשימה ממוספרת של ערכים. האינדקס מתחיל מ-0!

int[] arr = {10, 20, 30, 40, 50};
// arr[0] = 10, arr[1] = 20, ..., arr[4] = 50
// arr.length = 5

מעבר על כל איברי המערך:

for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

פונקציות (Methods)

פונקציה היא קטע קוד עם שם שמקבל קלט ומחזיר פלט:

int square(int n) {
    return n * n;
}

int result = square(5); // result = 25

כשקוראים לפונקציה: (1) הפרמטר מקבל את הערך שנשלח, (2) הקוד בגוף הפונקציה רץ, (3) return מחזיר ערך לקוד הקורא.

System.out.println

פקודת הדפסה — מדפיסה ערך למסך וגולשת לשורה חדשה:

System.out.println("Hello");  // מדפיס: Hello
System.out.println(5 + 3);    // מדפיס: 8
System.out.print("A");        // מדפיס בלי ירידת שורה
System.out.print("B");        // מדפיס ליד: AB

פעולות על מחרוזות (String)

פעולהתיאורדוגמהתוצאה
s.length()אורך המחרוזת"hello".length()5
s.charAt(i)התו במיקום i"hello".charAt(1)'e'
s.substring(a, b)תת-מחרוזת ממיקום a עד b (לא כולל)"hello".substring(1, 4)"ell"
s1 + s2שרשור מחרוזות"he" + "llo""hello"
זכרו: גם במחרוזות, האינדקס מתחיל מ-0. "hello".charAt(0) מחזיר 'h'.

תרגול נוסף ואסטרטגיות

שגרת תרגול מומלצת:
1. פתרו 5-10 שאלות ברצף
2. סמנו זמן — כמה לקח לכל שאלה?
3. בדקו תשובות
4. לכל טעות: מה סוג הטעות? (חישוב? קריאה? שיטה?)
5. חזרו על שאלות שטעיתם

מלכודות נפוצות

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

💡טיפים למבחן להב

1. עקבו שורה אחרי שורה

אל תנסו "להבין" את הקוד במבט — עקבו אחרי כל שורה בזו אחר זו, כמו שמחשב עושה. כתבו את ערכי המשתנים בצד.

2. בנו טבלת מעקב

לכל לולאה, צרו טבלה עם עמודות למשתנים ושורה לכל סיבוב:

סיבובisumהערה
100תחילת הלולאה
211sum = 0 + 1
323sum = 1 + 2

3. היזהרו מחילוק שלם

זו הטעות הנפוצה ביותר! 7 / 2 = 3 (לא 3.5). כשרואים חילוק של int — החלק העשרוני נעלם.

4. שימו לב לגבולות הלולאה

for (i = 0; i < 5; ...) רץ 5 פעמים (0,1,2,3,4). for (i = 0; i <= 5; ...) רץ 6 פעמים (0,1,2,3,4,5). ההבדל הקטן הזה שווה הכול.

5. פונקציות — עצרו ועקבו

כשמגיעים לקריאה לפונקציה — עצרו, עברו לפונקציה, עקבו אחריה עם הערכים שנשלחו, רשמו את ה-return, וחזרו.

טעות קלאסית: לבלבל בין = (השמה) ל-== (השוואה). x = 5 שם את 5 ב-x. x == 5 בודק אם x שווה ל-5.

סיכום — 5 הטיפים המרכזיים

  1. קראו הוראות פעמיים — 50% מהטעויות נובעות מקריאה חפוזה
  2. כתבו כל שלב — אל תסמכו על הזיכרון תחת לחץ
  3. בנו טבלת מעקב — לכל שאלה עם מספר שלבים
  4. בדקו סבירות — האם התשובה הגיונית?
  5. נהלו זמן — 2 דקות מקסימום. אם נתקעתם — סמנו ועברו

תוכנית תרגול של 7 ימים

יוםפעילותזמן
1קריאת המדריך המלא + תרגול בסיסי30 דקות
2תרגול רמה קלה — 10 שאלות20 דקות
3ניתוח טעויות + תרגול נוסף רמה קלה25 דקות
4תרגול רמה בינונית — 8 שאלות30 דקות
5ניתוח טעויות + תרגול נוסף רמה בינונית30 דקות
6תרגול רמה קשה — 5 שאלות30 דקות
7סימולציה מלאה בתנאי זמן + ניתוח45 דקות