נתונה מחלקה TwoNum הבאה (הקוד המלא מובא כאן; שדותיה פרטיים, ופעולת dif מחזירה את ההפרש בין הספרה הגדולה לספרה הקטנה במספר שהתקבל בבנאי).
נתונה מחלקה TwoNum הבאה (הקוד המלא מובא כאן; שדותיה פרטיים, ופעולת dif מחזירה את ההפרש בין הספרה הגדולה לספרה הקטנה במספר שהתקבל בבנאי).
class TwoNum
{
private int num1;
private int num2;
public TwoNum(int num)
{
if(num<0)num = num*(-1);
int dig = num % 10;
this.num1 = dig;
this.num2 = dig;
num = num / 10;
while(num > 0)
{
dig = num % 10;
if(dig < this.num1) this.num1 = dig;
else
if (dig> this.num2) this.num2 = dig;
num=num/10;
}
}
public String toString()
{
return this.num1+"-"+this.num2;
}
public int dif()
{
return this.num2 - this.num1;
}
}
public static int[] secret(int [] arr)
{
TwoNum temp = new TwoNum(arr[0]);
TwoNum temp1 = new TwoNum(arr[0]);
int ind = 0;
int ind1 = 0;
TwoNum cur;
for(int i = 1; i < arr.length; i++)
{
cur = new TwoNum(arr[i]);
if(cur.dif() < temp.dif())
{
temp1 = temp;
temp = cur;
ind1 = ind;
ind = i;
}
else
{
if(cur.dif() < temp1.dif())
{
temp1 = cur;
ind1 = i;
}
}
}
int[] res = new int[2];
res[0] = arr[ind];
res[1] = arr[ind1];
return res;
}
סעיף א
עקבו אחרי ביצוע קטע הקוד הבא ורשמו מה יהיה הפלט: TwoNum a = new TwoNum(23176); System.out.println(a); System.out.println(a.dif());
סעיף ב
מהו הערך הגדול ביותר ומהו הערך הקטן ביותר שיכולה להחזיר הפעולה dif()?
סעיף ג
נתונה הפעולה secret הבאה (הקוד המלא מובא כאן). עקבו אחרי ביצוע קטע הקוד הבא ורשמו מה יהיה הפלט: int[] a = {3458,45, 7341, 6, 13579, 86}; int[] b = secret(a); System.out.println(b[0]+" "+b[1]);
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.