הערת תוכן: השאלון מדפיס את sod עם <= בגרסת Java, ועם < (בלי שוויון) בגרסת C# — הבדל אמיתי בין שתי הגרסאות, אומת בהרצה בפועל בשתי השפות, וגורם לתוצאת המעקב בסעיף ב' להיות שונה בין השפות (Java מחזירה 824, C# מחזירה 64 עבור אותו קלט). לא תוקן — נפתר בנאמנות לכל שפה בנפרד.
הערת תוכן: השאלון מדפיס את 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;
}
- עקבו בעזרת טבלת המעקב אחרי ביצוע הפעולה עבור num=37245 ורשמו מה תחזיר הפעולה.
- תנו דוגמה למספר שלם וחיובי num>1000, שעבורו הפעולה תחזיר 0.
- מה מבצעת הפעולה 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];
}
- עקבו באמצעות טבלת מעקב אחר ביצוע הפעולה Sod() עבור המערך:
int[] arr = {7245, 64, 14783, 32, 824, 199};
אין צורך במעקב אחרי הפעולה Secret. 2. מה מבצעת הפעולה Sod באופן כללי עבור מערך כלשהו של מספרים שלמים וחיוביים?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.