שאלות ממבחני עבר#
לפניכם וריאציה של שאלות ממבחני עבר, המותאמת לחומר הנלמד עד כה בקורס
24-25, סמסטר ב’, מועד ב’, שאלה 2.א.2#
רמת הקושי של מסלול סקי מסומנת באמצעות צבעים, בהתאם לשיפועו ולרוחבו:
ירוק - קל
כחול - בינוני
אדום - קשה
שחור - קשה מאוד
ככל שהמסלול תלול יותר וצר יותר, כך רמת הקושי שלו עולה, לפי הכללים הבאים :
מסלול עם שיפוע של עד 9 כולל - ירוק
מסלול עם שיפוע גדול מ 9 וקטן או שווה ל 15
אם הרוחב עד 10 כולל - אדום
אם הרוחב גדול מ 10 - כחול
מסלול עם שיפוע גדול מ 15 וקטן או שווה ל 25
אם הרוחב עד 10 כולל - שחור
אם הרוחב גדול מ 10 - אדום
מסלול עם שיפוע גדול מ 25 נקרא שחור בכל המקרים
צוות הקורס כתב עבורכם מתודה נוספת בשם color_get, המחזירה את צבע המסלול (מטיפוס str) לפי החוקיות שתוארה לעיל:
def get_color(gradient, width):
if gradient <= 9:
return "green"
elif gradient <= 15 and width > 10:
return "blue"
elif (gradient <= 15 or width <= 10) and (gradient <= 25 or width > 10):
return "red"
else:
return "black"
את השורות במימוש נכתבה באופן שגוי . סמנו ותקנו את השורה.
פתרון
def get_color(gradient, width):
if gradient <= 9:
return "green"
elif gradient <= 15 and width > 10:
return "blue"
elif (gradient <= 15 and width <= 10) or (gradient <= 25 and width > 10):
return "red"
else:
return "black"
24-25, סמסטר ב’, מועד א’, שאלה 2.א.3#
צוות הקורס כתב עבורכם מתודה בשם get_fabric_type, המחזירה את סוג הבד של הפריט לפי החוקיות הבאה:
אם בשם הפריט קיימת המילה ״sport״, המתודה תחזיר את המחרוזת ״sport״.
אחרת, אם בשם הפריט קיימת המילה “sheet” או המילה “towel”, המתודה תחזיר את המחרוזת “linen”.
אחרת, אם מידת הבהירות של צבע הפריט קטנה מ-128- המתודה תחזיר את המחרוזת “dark”. אחרת, המתודה תחזיר את המחרוזת “light”.
לצורך המימוש נעזר הצוות בכלי AI מתקדמים בpycharm, שהציעו את קטע הקוד הבא:
def get_fabric_type(name, shade):
if "sport" in name:
return "sport"
elif "sheet towel" in name:
return "linen"
else:
if shade < 128:
return "dark"
else:
return "light"
במימוש זה נפלה טעות . סמנו את הטעות בבירור ובמדויק וענו כיצד ניתן לתקנה:
פתרון
def get_fabric_type(name, shade):
if "sport" in name:
return "sport"
elif "sheet" in name or "towel" in name: # correct line
return "linen"
else:
if shade < 128:
return "dark"
else:
return "light"
24-25, סמסטר ב’, מועד ג’, שאלה 2.א.1#
ממשו את המתודה get_current_value אשר תחזיר את המחיר העדכני של רכב לפי הלוגיקה הבאה:
תחילה, נחשב את גיל הרכב (בהנתן כי השנה היא 2025). עבור כל שנת רכב, הוא מאבד 5% מערכו, כלומר, כל שנה ערכו יורד ב5% ממחירו העדכני.
בנוסף,עבור כל 10000 קילומטר הרכב מאבד 2% מערכו העדכני. את התוצאה יש לעגל ל-2 ספרות לאחר הנקודה.
פתרון
def current_value(year, base_price, mileage):
age = 2025 - year
price_after_age = base_price * (0.95 ** age)
price_after_mileage = price_after_age * (0.98 ** (mileage // 10000))
return round(price_after_mileage,2)
23-24, תרגיל 1 שאלה 6#
ממשו את הפונקציה divisor_checker אשר המקבלת את הפרמטרים הבאים:
מחרוזת בשם
digitsבאורך 4, הכוללת ספרות בלבדמספר חיובי כלשהו
divisorמטיפוסint
הפונקציה תדפיס אינדקס (מטיפוסint) של המספר השני במחרוזת המתחלק ב-divisorללא שארית. במידה ולא קיים מספר כזה, יש להדפיס 1-. לא נדרש שום ערך החזרה מהפונקציה.
דוגמא 1:
עבור digits='4283', divisor=4, התוכנית תדפיס:
2
דוגמא 2:
עבור digits='4283', divisor=5, התוכנית תדפיס:
1-
הערות:
ניתן להניח ש- divisor שונה מ 0
digitsיכולה להיות גם מחרוזת ריקה
def divisor_checker(digits, divisor):
# Write your code here
pass
פתרון
def divisor_checker(digits, divisor):
found_the_first = False
i=0
n = int(digits[i])
if n % divisor == 0:
found_the_first = True
i=1
n = int(digits[i])
if n % divisor == 0:
if found_the_first:
print(i)
return
else:
found_the_first = True
i=2
n = int(digits[i])
if n % divisor == 0:
if found_the_first:
print(i)
return
else:
found_the_first = True
i=3
n = int(digits[i])
if n % divisor == 0:
if found_the_first:
print(i)
return
print(-1)
divisor_checker('4283', 4)
divisor_checker('4283', 5)