Java :: Aufgabe #177 :: Lösung #2
2 Lösungen
#177
Wurzel ziehen mit Intervallschachtelung
Anfänger - Java
von Felix
- 11.07.2017 um 21:30 Uhr
Schreibe eine Methode die aus einer Zahl die Wurzel zieht, benutze dafür die Intervallschachtelung.
#2
von nOrdan (1160 Punkte)
- 21.07.2019 um 21:43 Uhr
Main-Klasse:
Java-Code
Methoden aus meiner Methodensammlung:
Java-Code
import Methodensammlung.Methoden;
import java.math.BigDecimal;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
/**
* Schreibe eine Methode die aus einer Zahl die Wurzel zieht, benutze dafür die Intervallschachtelung.
* Prinzip der Intervallverschachtelung: http://www.schule-studium.de/Mathe/Intervallschachtelung.html
*
* @author (nOrdan)
* @version (21.07.2019)
*/
public class Verschachtelung
{
Methoden m = new Methoden();
public static void main(String [] args) throws IOException
{
Verschachtelung v = new Verschachtelung();
v.inputs();
}
private void inputs() throws IOException
{
boolean valid1 = false;
int n = 0;
int stellen = 0;
while (valid1 == false)
{
String input1 = m.userInput("Geben Sie die Zahl ein aus welcher die Wurzel gezogen werden soll: ");
m.errorIntInput(input1);
try
{
n = m.parseInt(input1);
valid1 = true;
}
catch(Exception e)
{
m.errorMessage("Keine Zahl","Ungültige Eingabe");
}
}
valid1 = false;
while (valid1 == false)
{
String input1 = m.userInput("Wieviele Nachkommastellen sollen berechnet werden? Bedenken Sie, umso mehr Nachkommastellen sie verlangen, umso länger dauert die Berechnung!");
m.errorIntInput(input1);
try
{
stellen = m.parseInt(input1);
valid1 = true;
}
catch(Exception e)
{
m.errorMessage("Keine Zahl","Ungültige Eingabe");
}
}
berechnung(n,stellen);
}
public void berechnung(int n,int stellen) throws IOException
{
BigDecimal entfernung = new BigDecimal("1");
BigDecimal kommazahl = new BigDecimal("1");
for (int i = 0; i < stellen+1; i++)
{
while (((kommazahl.pow(2)).compareTo(BigDecimal.valueOf(n))) == -1)
{
kommazahl = kommazahl.add(entfernung);
}
kommazahl = kommazahl.subtract(entfernung);
entfernung = entfernung.divide(BigDecimal.valueOf(10));
}
BufferedWriter out = new BufferedWriter(new FileWriter(new File("GezogeneWurzel.txt")));
out.write(kommazahl.toString());
out.close();
m.informationMessage("Ihre Kommazahl ist in der Datei GezogeneWurzel.txt im Ordner dieses Programmes gespeichert" , "Ergebnis");
}
}
Methoden aus meiner Methodensammlung:
public void errorMessage(String message,String errorName)
{
JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE);
}
public void informationMessage(String message,String informationName)
{
JOptionPane.showMessageDialog(null,message,informationName,JOptionPane.INFORMATION_MESSAGE);
}
public void errorIntInput(String input)
{
if (input == null)
{
System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet
}
else if (input.isEmpty() == true)
{
}
}
public int parseInt(String input)
{
return Integer.parseInt(input);
}
public String userInput(String message)
{
return JOptionPane.showInputDialog(message);
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
