Java :: Aufgabe #35 :: Lösung #5

6 Lösungen Lösungen öffentlich
#35

Abstand zweier Punkte

Anfänger - Java von Dome - 03.01.2013 um 01:09 Uhr
Schreiben Sie ein Programm, welches den Abstand zweier Punkte berechnet. Zuvor müssen die Koordinaten beider Punkte abgefragt werden.

Konsolenausgabe:

x1:1
y1:1
x2:2
y2:2
1.4142135623730951
#5
vote_ok
von nOrdan (1160 Punkte) - 05.06.2019 um 14:30 Uhr
Anmerkung: Ich arbeite mit dem Programm BlueJ

Quellcode ausblenden Java-Code

import Methodensammlung.Methoden;

/**
 * Der Abstand zweier Punkte kann berechnet werden
 * 
 * @author (nOrdan) 
 * @version (05.06.2019)
 */
public class Rechner
{

    Methoden m = new Methoden();
    
    public static void main(String [] args)
    {
        Rechner r = new Rechner();
        r.inputs();
    }

    private void inputs()
    {
        boolean valid1 = false;
        double x1 = 0;
        double x2 = 0;
        double y1 = 0;
        double y2 = 0;
        String input1 = null;
        while (valid1 == false)
        {
            input1 = m.userInput("Geben sie x1 ein");
            m.errorUserInput(input1);
            try
            {
                x1 = m.parseDouble(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");
            }
        }
        valid1 = false;
        while (valid1 == false)
        {
            input1 = m.userInput("Geben sie y1 ein");
            m.errorUserInput(input1);
            try
            {
                y1 = m.parseDouble(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");
            }       
        }
        valid1 = false;
        while (valid1 == false)
        {
            input1 = m.userInput("Geben sie x2 ein");
            m.errorUserInput(input1);
            try
            {
                x2 = m.parseDouble(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");
            }       
        }
        valid1 = false;
        while (valid1 == false)
        {
            input1 = m.userInput("Geben sie y2 ein");
            m.errorUserInput(input1);
            try
            {
                y2 = m.parseDouble(input1);
                valid1 = true;
            }
            catch(Exception e)
            {
                m.errorMessage("Invalid user input","Invalid input");
            }       
        }
        berechnung(x1,x2,y1,y2);
    }
    
    private void berechnung(double x1, double x2, double y1, double y2)
    {
        double abstand = Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2-y1), 2));
        m.informationMessage("Der Abstand zwischen P1 (" + x1 + "/" + y1 + ") und P2 (" + x2 + "/" + y2 + ") beträgt " + abstand,"Ergebnis");
    }
}



Methoden die ich aus meinem eigenem Methoden package benutzt habe

Quellcode ausblenden Java-Code

public double parseDouble(String input)
    {
        return Double.parseDouble(input);
    }

public String userInput(String message)
    {
        return JOptionPane.showInputDialog(message);
    }

public void errorUserInput(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.length() == 0)
        {
            //continue; wenn nötig
        }
    }

    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);
    }

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2115705

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.