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