import java.util.Scanner;
public class Main {
// константа точності для порівняння дробових чисел
public static final double EPS = 1e-6;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// введення значення a
System.out.print("Введіть значення для a: ");
double a = scanner.nextDouble();
// введення початкового значення x
System.out.print("Введіть початкове значення для x: ");
double xStart = scanner.nextDouble();
// введення кінцевого значення x
System.out.print("Введіть кінцеве значення для x: ");
double xEnd = scanner.nextDouble();
// введення розміру кроку для x
System.out.print("Введіть розмір кроку для x: ");
double step = scanner.nextDouble();
// цикл обчислення та виведення значень функції на відрізку [xStart, xEnd] з кроком step
for (double x = xStart; x <= xEnd; x += step) {
double y = calcY(a, x);
System.out.printf("x = %.4f, y = %.4f%n", x, y);
}
// тести для функції calcY()
testCalcY();
testCalcY0();
// тест для функції calcR()
testCalcR();
}
// тест для функції calcY() з позитивним значенням x
public static void testCalcY() {
System.out.println("Тест#50");
double a = 1.65;
double x = 2.8;
double expResult = Math.pow(x, 2) - 7.0 / Math.pow(x, 2) ;
double result = calcY(a, x);
assertEquals(expResult, result, EPS);
}
// тест для функції calcY() з негативним значенням x
public static void testCalcY0() {
System.out.println("Тест#1050");
double a = 1.65;
double x = 0.002;
double expResult = Double.NaN;
double result = calcY(a, x);
assertEquals(expResult, result, EPS);
}
// тест для функції calcR()
public static void testCalcR() {
System.out.println("Тест #1300");
double a = 1.65;
double x = 1.3;
double expResult = Math.log(x + 7.0) * Math.sqrt(Math.abs(x + a));
double result = calcR(a, x);
assertEquals(expResult, result, EPS);
}
// функція порівняння дробових чисел з деякою точністю EPS
private static void assertEquals(double expResult, double result, double EPS) {
if (Math.abs(expResult - result) < EPS) {
System.out.println("Тест пройдено");
} else {
System.out.println("Тест не пройшов");
}
}
// функція обчислення значення функції y для заданих значень a та x
public static double calcY(double a, double x) {
if (x < 1.3) {
return Math.pow(x, 2) - 7.0 / Math.pow(x, 2);
} else if (x == 1.3 ) {
return Math.pow((x - 2), 2) + 6 * a;
} else {
return Double.NaN;
}
}
// функція обчислення значення функції r для заданих значень a та x
public static double calcR(double a, double x)
{
if (x == 0) {return Double.NaN;}
else if (x > 1.3) {return Math.log(x + 7.0) * Math.sqrt(Math.abs(x + a));}
else {return 0;}
}
}
Накидав такий код але не запускаэться тест можете відредаагувати і скинути будьласка.