Java :: Aufgabe #35
6 Lösungen
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
Lösungen:
/*
* Code written by Oppa Hansi, oppahansi on Pastebin.
*/
import java.util.Scanner;
public class GetDistance {
// Methode für die Berechnung der Distanz zwischen zwei Punkten.
public static double getDistance(double xP1, double yP1, double xP2, double yP2){
return Math.sqrt(Math.pow((xP2 - xP1), 2) + Math.pow((yP2-yP1), 2));
}
public static void main(String[] args) {
// Variablen um die x- und y-Werte zu speichern.
double xP1, yP1, xP2, yP2;
// Scanner zum Einlesen der Zahlen des Benutzers
Scanner s = new Scanner(System.in);
// Ausgabe und Eingabe von Werten
// Anschließend Aufruf der getDistance()-Methode zur
// Berechnung des Abstands zwischen P1 und P2
System.out.println("Die Distanz zwischen 2 Punkten in einem" +
"\nkartesischem Koordiantensytem berechnen.");
System.out.println("Bitte die Koordinaten des 1. Punktes eineben:");
System.out.println("x1: ");
xP1 = s.nextDouble();
System.out.println("y1: ");
yP1 = s.nextDouble();
System.out.println("Biite die Koordinaten des 2. Punktes eingeben:");
System.out.println("x2: ");
xP2 = s.nextDouble();
System.out.println("y2: ");
yP2 = s.nextDouble();
System.out.println("Die Distanz zwischen P1(" + xP1 + "|" +
yP1 + ") und P2(" + xP2 + "|" + yP2 +
") beträgt: " + getDistance(xP1, yP1, xP2, yP2));
}
}
import java.util.Scanner;
/**
* @author ElPapito
* @date 05.05.2015
*/
public class AbstandZweierPunkte {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("x1: ");
double x1 = scanner.nextDouble();
System.out.print("y1: ");
double y1 = scanner.nextDouble();
System.out.print("x2: ");
double x2 = scanner.nextDouble();
System.out.print("y2: ");
double y2 = scanner.nextDouble();
scanner.close();
double a = x1 - x2;
double b = y1 - y2;
double distance = Math.sqrt(a * a + b * b);
System.out.println(distance);
}
}
import java.util.Scanner;
class Abstand {
public static void main (String [] args) {
berechneAbstand();
}
static Scanner eingabe () {
return new Scanner (System.in);
}
static void berechneAbstand () {
int a , b ,c ,d;
double e;
System.out.println("Ich bin ein Simples Java-Programm welches den Abstand zweier Punkte misst.");
System.out.println("Doch dafür brauche ich die Koordinaten x1 , y1 , x2 und y2.");
System.out.println("Seien Sie doch so freundlich und tippen Sie diese Koordinaten für mich ein!");
System.out.println("(Erst x1 , dann y1 , folglich x2 und zuletzt y2.)");
a = eingabe().nextInt();
b = eingabe().nextInt();
c = eingabe().nextInt();
d = eingabe().nextInt();
e = Math.sqrt( (a - c) * (a - c) + (b - d) * (b - d) );
System.out.println("x1:" + a);
System.out.println("y1:" + b);
System.out.println("x2:" + c);
System.out.println("y2:" + d);
System.out.println(e);
}
}
class abstand
{
public static void main (String[] args) throws java.lang.Exception
{
double x1 = 1.0;
double y1 = 1.0;
double x2 = 2.0;
double y2 = 2.0;
System.out.println("Abstand: " + Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2)));
}
}
Anmerkung: Ich arbeite mit dem Programm BlueJ
Java-Code
Methoden die ich aus meinem eigenem Methoden package benutzt habe
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
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);
}
import java.util.*;
public class AbstandPunkte {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x1, x2, y1, y2;
System.out.print("X1:\t");
x1 = scanner.nextInt();
System.out.print("Y1:\t");
y1 = scanner.nextInt();
System.out.print("X2:\t");
x2 = scanner.nextInt();
System.out.print("Y2:\t");
y2 = scanner.nextInt();
System.out.print(abstand(x1, x2, y1, y2));
scanner.close();
}
public static double abstand(int x1, int x2, int y1, int y2) {
double sum = Math.pow((x1-x2), 2) + Math.pow((y1-y2), 2);
return Math.sqrt(sum);
}
}