Hallo,
meine Aufgabe ist, Java so zu programmieren so dass bei Eingabe in die Konsole nach 100 Näherungsverfahren das Ergebnis herauskommt.
Genauer gesagt:
Programmieren Sie eine Klasse SquareRoot, die die Quadratwurzel eines von der Konsole eingelesenen double Wertes 𝑎 wie folgt berechnet. Sie beginnen mit der 0. Annäherung als Startwert 𝑥=1. 0𝑑. Die erste Annäherung erhalten Sie mit der Zuweisung𝑥𝑥=1/2 * (𝑥+𝑎/𝑥). Alle weiteren Annäherungen berechnen sich mit derselben Formel. Geben Sie die 100. Annäherung von √𝑎 auf der Konsole aus.
Meine Idee sieht folgendes aus:
Ich bitte euch um Hilfe, da ich die Fehler nicht finde. Bitte beachte, nicht mit return sondern nur über Schleife rechnen lassen.
LG
meine Aufgabe ist, Java so zu programmieren so dass bei Eingabe in die Konsole nach 100 Näherungsverfahren das Ergebnis herauskommt.
Genauer gesagt:
Programmieren Sie eine Klasse SquareRoot, die die Quadratwurzel eines von der Konsole eingelesenen double Wertes 𝑎 wie folgt berechnet. Sie beginnen mit der 0. Annäherung als Startwert 𝑥=1. 0𝑑. Die erste Annäherung erhalten Sie mit der Zuweisung𝑥𝑥=1/2 * (𝑥+𝑎/𝑥). Alle weiteren Annäherungen berechnen sich mit derselben Formel. Geben Sie die 100. Annäherung von √𝑎 auf der Konsole aus.
Meine Idee sieht folgendes aus:
Java:
import java.util.Scanner;
//Zahl in der Konsole lesen
//Startwert x = 1.0d (0. Annäherung)
//weitere Annäherung - siehe Formel
//Ziel: 100. Annäherung -> Ergebnis
public class SquareRoot {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double n = in.nextDouble();
double b = n;
double c = 1;
double summe = 1;
while (c <= 100) {
c = (b + 1)/2;
summe = 1/2 * (c + b/c);
c = c + summe;
c++;
if ( c <= 101){
break;
}
System.out.println(c);
}
System.out.println(summe);
}
}
Ich bitte euch um Hilfe, da ich die Fehler nicht finde. Bitte beachte, nicht mit return sondern nur über Schleife rechnen lassen.
LG