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
          
          
             
       
    
    
    
