אתם מתרגלים שאלה מתוך מה"ט אלגוריתמיקה ותכנות — הנדסאי תוכנהמבחן 2023 · קיץ מועד ב · שאלה 5כל שאלות המבחן ←
תכנות בסיסימבני בקרה

הערת תוכן: השאלון מדפיס את sod עם <= בגרסת Java, ועם < (בלי שוויון) בגרסת C# — הבדל אמיתי בין שתי הגרסאות, אומת בהרצה בפועל בשתי השפות, וגורם לתוצאת המעקב בסעיף ב' להיות שונה בין השפות (Java מחזירה 824, C# מחזירה 64 עבור אותו קלט). לא תוקן — נפתר בנאמנות לכל שפה בנפרד.

סעיף א

נתונה הפעולה Secret המקבלת כפרמטר מספר שלם וחיובי num:

public static int Secret(int num)
{
    int res1 = 0, res2 = 0;
    while (num > 0)
    {
        res1++;
        if (num % 2 == 0)
            res2++;
        num = num /10;
    }
    return res1 - res2;
}
  1. עקבו בעזרת טבלת המעקב אחרי ביצוע הפעולה עבור num=37245 ורשמו מה תחזיר הפעולה.
  2. תנו דוגמה למספר שלם וחיובי num>1000, שעבורו הפעולה תחזיר 0.
  3. מה מבצעת הפעולה Secret עבור מספר num שלם וחיובי כלשהו?
סעיף ב

נתונה הפעולה Sod() הבאה:

public static int Sod(int[] arr)
{
    int res = 0;
    for (int i = 1; i < arr.Length; i++)
    {
        if (Secret(arr[i]) < Secret(arr[res]))
            res = i;
    }
    return arr[res];
}
  1. עקבו באמצעות טבלת מעקב אחר ביצוע הפעולה Sod() עבור המערך:

int[] arr = {7245, 64, 14783, 32, 824, 199};

אין צורך במעקב אחרי הפעולה Secret. 2. מה מבצעת הפעולה Sod באופן כללי עבור מערך כלשהו של מספרים שלמים וחיוביים?

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

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

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

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