שאלה 1
כתבו פעולה שמקבלת שלושה פרמטרים a,b,c המייצגים את המקדמים של
משוואה ריבועית.
הפעולה תדפיס את פתרונות המשוואה ש- a,b,c הם מקדמיה
יש להבחין בין שלושת המקרים:
·
למשוואה אין פתרון
·
למשוואה פתרון יחיד
והוא: x
= ….
·
למשוואה שני פתרונות
והם: x1 = …..
, x2 = ……
תשובה
public static void parabulaSolution(double a,double b,double c) {
double des = (b*b)-(4*a*c);
double x1,x2;
if (des < 0)
{
System.out.println("No solution");
}
else if (des == 0) {
x1 = –b/(2*a);
System.out.println("One solution x = "+x1);
}
else {
x1 = (-b + Math.sqrt(des))/(2*a);
x2 = (-b – Math.sqrt(des))/(2*a);
System.out.println("The first solution is x1 =
"+x1);
System.out.println("The second solution is x2 =
"+x2);
}
}
שאלה 2
כתבו פעולה שמחשבת ומחזירה את הקירוב של פאי.
תשובה
public static double disFrom00(double x,double y) {
return Math.sqrt(x*x+y*y);
}
public static double calcPi() {
int MAX =
1000000,count = 0;
double x,y;
for (int i=0;i<MAX;i++) {
x = Math.random();
y = Math.random();
if (disFrom00(x, y)<=1)
count++;
}
return (count/(double)MAX)*4;
}
שאלה 3
כתבו פעולה שמקבלת isPrime המקבלת כפרמטר מספר שלם num ומחזירה true אם המספר ראשוני, אחרת
הפעולה תחזיר false.
תשובה
public static boolean isPrime(int x) {
int sqrt = (int)Math.sqrt(x)+1;
for (int i=2;i<x-1;i++) {
if (x % i == 0)
return false;
}
return true;
}
שאלה 4
כתבו פעולה בשם reverseNum המקבלת מספר num ומחזירה את המספר בסדר ספרות הפוך.
לדוגמה : עבור num = 1234 הפעולה תחזיר 4321
תשובה
public static int reverseNum(int num) {
int newNum = 0;
while (num != 0) {
newNum = newNum*10 + num % 10;
num = num /10;
}
return newNum;
}