Applikativer Algorithmuss Wurzel ziehen

Lucii91

Mitglied
Hallo🙂

Wie ihr seht bin ich Einsteiger , bzw. kompletter Neuling in dem Gebiet.

Ich muss morgen für ein Praktikum einen Algorithmus erstellen der das Ziehen von Wurzeln ermöglicht.

Das ganze applikativ und mit dem Heron-Verfahren.

Imperativ habe ich das ganze schon hinbekommen, aber applikativ pack ichs net.

Wäre euch für eure Hilfe sehr verbunden😉

Danke im vorraus

Lucas
 
Den Link zur Rekursions-Wikiseite spar ich mir mal.

Hast du ne konkrete Frage? Oder welche Art Hilfe erwartest du dir?
 
package Praktikum;

public class Heron {

public static void main(String [] args) {
double x;
double y = 0;
double a = 3;
x = a;
while (x != -1) {
y = (x + a / x) / 2;
if (x == y) {
break;
}
x = y;
}
System.out.println(y);
}
}


Das ist mein imperativer Algo. . Aber ich habe kein Plan wie ich einen applikativen erstelle.
 
1) Verwende Java-Tags! [noparse]
Java:
dein Code
[/noparse]
Java:
package Praktikum;

public class Heron {
	
	public static void main(String [] args) {
		double x;
		double y = 0;
		double a = 3;
		x = a;
		while (x != -1) {
			y = (x + a / x) / 2;
			if (x == y) {
				break;
			}
			x = y;
		}
		System.out.println(y);
	}
}

2) Sollte doch laufen?!

3) (Und hier kenn ich micht nicht genug aus, aber) :
Wenn du imperativ hast, dass musst du doch nur das in irgendeinem Pseudocode - der irgendwie an Funktionen erinnert - schreiben?
Oder lieg ich da falsch?
Hast du schon einen Ansatz für dein applikatives Modell?
 
Um Rekursion zu verstehen, muss man erst einmal Rekursion verstehen.

Java:
public static final double EPSILON = 0.000000001; //gewünschte Genauigkeit

public static double wurzel(double a, double x) {
   double y = (x + a / x) / 2;
   if (Math.abs(x - y) < EPSILON) {  //besser so als x == y 
       return x; 
   } else {
       return wurzel(a,y); // das ist der rekursive Aufruf
   }
}
 

Zurück
Oben