אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות בפייתון — הנדסאי תוכנהמבחן 2024 · אביב מועד ב · שאלה 10כל שאלות המבחן ←
תכנות בסיסימערכים חד-ממדיים

סעיף א

נתונה הפעולה why המקבלת רשימה של מספרים שלמים:

def why(arr):
    temp = []
    for i in range(len(arr)):
        if arr[i] < 0:
            temp.append(arr[i])
    for i in range(len(arr)):
        if arr[i] >= 0:
            temp.append(arr[i])
    for i in range(len(arr)):
        arr[i] = temp[i]
  1. נתונה הרשימה arr = [12, 0, -344, -46, 670, 0] מה יהיה תוכן הרשימה אחרי זימון הפעולה why(arr)?
  2. מה מבצעת הפעולה why באופן כללי?
סעיף ב

נתונה הפעולה what המקבלת רשימה מספרים שלמים:

def what(arr):
    start = 0
    end = -1
    while start - end < len(arr):
        if arr[start] < 0:
            start = start + 1
        elif arr[end] >= 0:
            end = end -1
        else:
            temp = arr[end]
            arr[end] = arr[start]
            arr[start] = temp
  1. נתונה רשימה arr = [123, -45, -678, 12, -345, 67] מה יהיה תוכן ההרשימה אחרי זימון הפעולה what(arr)?
  2. תנו דוגמה לרשימה brr בגודל של חמישה תאים, כך שהתוכן של הרשימה לא ישתנה אחרי ביצוע הפעולה what(brr)
  3. מה מבצעת הפעולה what באופן כללי?
סעיף ג

האם קיימת רשימה crr בגודל של שישה תאים, שעבורה שני זימונים why (crr) ו-what (crr) יביאו לאותן תוצאות? אם כן – תנו דוגמה של הרשימה crr, ולא – הסבר למה.

סעיף ד

מה הן סיבוכיות זמן הריצה של הפעולות what ו-why?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי