מבחן להב - רמה בינונית
בחרו סט תרגול
📋רמה בינונית - שני מבנים שעובדים יחד
ברמה הבינונית כל שאלה משלבת שני מבנים: לולאה עם תנאי בתוכה, לולאה שבונה מחרוזת, פונקציה שנקראת מתוך לולאה, מערך שעוברים עליו, או שתי לולאות זו בתוך זו. המעקב מתארך ל-6 עד 15 צעדים, ולכן הדבר החשוב ביותר כאן הוא טבלת מעקב עם עמודה לכל משתנה.
מה מתאמנים כאן
- לנהל שניים או שלושה משתנים במקביל בלי לאבד אף אחד מהם.
- לעבוד עם מערכים: האינדקס הראשון הוא 0, והאחרון הוא
length - 1. - לבנות מחרוזת צעד אחרי צעד ולשים לב לסדר:
s = c + sמוסיף בהתחלה,s = s + cמוסיף בסוף. - לעצור בקריאה לפונקציה, לחשב את ערך ההחזרה, ולחזור לשורה שקראה לה.
דוגמה:
int[] arr = {4, 9, 2, 7};
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 2 == 1) {
count += arr[i];
}
}
System.out.println(count);
| i | arr[i] | אי-זוגי? | count |
|---|---|---|---|
| 0 | 4 | לא | 0 |
| 1 | 9 | כן | 9 |
| 2 | 2 | לא | 9 |
| 3 | 7 | כן | 16 |
הפלט: 16. שימו לב לשם המשתנה: הוא נקרא count אבל צובר סכום, לא כמות. הקוד עושה מה שכתוב בו, לא מה שהשם מרמז.
המלכודות של הרמה הזו
- מודפס מול נשמר: אם ההדפסה בתוך הלולאה, יש כמה שורות פלט; אם היא אחריה, יש שורה אחת עם הערך הסופי.
- לולאות מקוננות: הלולאה הפנימית רצה עד הסוף בכל סיבוב של החיצונית. ספרו כמה פעמים בסך הכול מתבצעת השורה הפנימית.
- ערך החזרה שלא נשמר: קריאה לפונקציה בלי השמה (
f(x);לבד) לא משנה שום משתנה בחוץ.
ברמה זו כדאי להתחיל לעבוד עם שעון: שתי דקות לשאלה. אם שאלה לוקחת יותר, סמנו והמשיכו, וחזרו אליה בסוף הסט.