הערת תוכן: השאלון מדפיס את 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 באופן כללי עבור מערך כלשהו של מספרים שלמים וחיוביים?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.