public class Wurzel extends MiniJava { public static void main(String[] args) { writeLineConsole(sqrt(2, 0.0001)); } private static double a, epsilon; // besser: als Parameter übergeben (unverändert) public static double sqrt(double a, double epsilon) { Wurzel.a = a; Wurzel.epsilon = epsilon; return sqrtHelper(a); } public static double sqrtHelper(double xPrev) { // xPrev entspricht x_n double difference = xPrev*xPrev - a; // Abweichung des Quadrats (von x) von a if (difference < 0) difference = -difference; // positiv machen if (difference < epsilon) // -> Abweichung liegt im gewünschten Bereich return xPrev; double xNew = 0.5 * (xPrev + a/xPrev); return sqrtHelper(xNew); } }