wo liegt der Fehler??

Status
Nicht offen für weitere Antworten.

Foster

Mitglied
Die zip-Datei besteht aus insgesamt 4 Java-Dateien: TestIt.java, Punkt.java, Linie.java und Quadrat.java. Kompilieren Sie die Dateien und starten Sie die Datei TestIt. Funktioniert das Programm korrekt? Schauen Sie sich das Ergebnis der Koordinatenverschiebung genau an! !!

Java:
//
// Testprogramm für das Geometrie-Paket
//

import java.io.*;
import geometrie.dim2.Quadrat;

public class TestIt
{
	public static void main(String[] args)
	{
		// Vollständig qualifizierter Name für 'Punkt'!
		geometrie.dim2.Punkt mitte;

		mitte = new geometrie.dim2.Punkt(2, 2);

		// Einfacher Name für 'Quadrat', da wir 'Quadrat'
		// importiert haben
		Quadrat q = new Quadrat(mitte, 2.0);

		// Wir haben ein Quadrat mit Mittelpunkt (2,2) und
		// Seitenlänge 2 erzeugt. Laßt es uns ausdrucken und
		// sehen, ob es richtig ist.
		System.out.println("Quadrat:\n" + q.toString());
		System.out.println("Umfang: " + q.umfang());
		System.out.println("Fläche: " + q.fläche() + "\n");

		// Verschiebe das Quadrat
		q.move(1, 1);

		// Wir sollten jetzt ein Quadrat mit Mittelpunkt (3,3)
		// und Seitenlänge 2 haben. Mal nachsehen, ob es stimmt.
		System.out.println("Quadrat:\n" + q.toString());
		System.out.println("Umfang: " + q.umfang());
		System.out.println("Fläche: " + q.fläche());
	}
}

Java:
//
// Klasse zur Darstellung von Linien im zweidimensionalen Raum
//

package geometrie.dim2;

public class Linie {

	//
	// Start- und Endpunkt sind nur innerhalb des
	// Geometrie-Pakets direkt zugreifbar!
	//
	Punkt start;
	Punkt ende;

	//
	// Konstruktor: Linie vom Punkt 'start' zu Punkt 'ende'
	//
	public Linie(Punkt start, Punkt ende)
	{
		this.start = start;
		this.ende = ende;
	}

	//
	// Copy-Konstruktor: Kopiere eine Linie
	//
	public Linie(Linie linie)
	{
		this(linie.start, linie.ende);
	}

	//
	// Verschiebe Linie um dx in x-Richtung und dy in y-Richtung
	//
	public void move(double dx, double dy)
	{
		start.move(dx, dy);
		ende.move(dx, dy);
	}

	//
	// Liefert Länge der Linie
	//
	public double länge()
	{
		return start.distanz(ende);
	}

	//
	// Wandle Linie in einen druckbaren String um
	//
	public String toString()
	{
		return start.toString() + " -- " + ende.toString();
	}
}


Java:
//
// Klasse für Punkte im zweidimensionalen Raum
//

package geometrie.dim2;

public class Punkt {

	//
	// Die Koordinaten des Punkts sind frei zugänglich!
	//
	public double x;
	public double y;

	//
	// Konstruktor: Erzeuge Punkt (x, y)
	//
	public Punkt(double x, double y)
	{
		this.x = x;
		this.y = y;
	}

	//
	// Copy-Konstruktor: Kopiere einen Punkt
	//
	public Punkt(Punkt punkt)
	{
		x = punkt.x;
		y = punkt.y;
	}

	//
	// Verschiebe den Punkt um dx in x-Richtung und dy in
	// y-Richtung
	//
	public void move(double dx, double dy)
	{
		x += dx;
		y += dy;
	}

	//
	// Berechne die euklidische Distanz zu einem anderen Punkt
	//
	public double distanz(Punkt punkt)
	{
		double dx = x - punkt.x;
		double dy = y - punkt.y;
		return Math.sqrt((dx * dx) + (dy * dy));
	}

	//
	// Wandle den Punkt in einen druckbaren String um
	//
	public String toString()
	{
		return "(" + x + ", " + y + ")";
	}
}


Java:
//
// Klasse für Quadrate im zweidimensionalen Raum
//

package geometrie.dim2;

public class Quadrat {

	//
	// Wir stellen das Quadrat durch seine vier Seitenlinien
	// dar.
	//
	// Niemand darf auf die Seiten unseres Quadrats direkt
	// zugreifen!
	//  1. Daß wir das Quadrat intern durch die 4 Seitenlinien
	//     darstellen, geht niemanden etwas an!
	//  2. Wichtiger: Nur so können wir garantieren, daß unser
	//     Quadrat auch wirklich immer ein Quadrat ist
	//     (Konsistenz!!) 
	//
	private Linie[] seiten;

	//
	// Konstruktor: Quadrat wird definiert durch den Mittelpunkt
	//              und die Seitenlänge.
	//
	public Quadrat(Punkt mitte, double seitenLänge)
	{
		// Um die Ecken mit einer Schleife berechnen zu können
		int[] dx = {  1,  1, -1, -1 };
		int[] dy = {  1, -1,  -1, 1 };
		
		// Berechne zuerst die Eckpunkte ...
		Punkt[] ecken = new Punkt[4];
		for (int i=0; i<4; i++) {
			ecken[i] = new Punkt(mitte);
			ecken[i].move(dx[i] * seitenLänge/2,
						  dy[i] * seitenLänge/2);
		}
		
		// ... und danach die Seiten des Quadrats
		seiten = new Linie[4];
		for (int i=0; i<4; i++) {
			seiten[i] = new Linie(ecken[i], ecken[(i+1) % 4]);
		}
	}

	//
	// Verschiebe das Quadrat um dx in x-Richtung und dy
	// in y-Richtung
	//
	public void move(double dx, double dy)
	{
		for (int i=0; i<4; i++) {
			seiten[i].move(dx, dy);
		}
	}

	//
	// Berechne die Fläche des Quadrats
	//
	public double fläche()
	{
		return seiten[0].länge() * seiten[0].länge();
	}

	//
	// Berechne den Umfang des Quadrats
	//
	public double umfang()
	{
		return 4.0 * seiten[0].länge();
	}

	//
	// Erzeuge einen druckbaren String aus dem Quadrat
	//
	public String toString()
	{
		String result = "";
		for (int i=0; i<4; i++) {
			result += seiten[i].toString() + "\n";
		}
		return result;
	}
}


Ich habe keine Ahnung wo hier der Fehler ist. Wenn ich die TestIt starte gibt mir die Box folgendes aus.....
Code:
Quadrat (3.0, 3.0) -- (3.0, 1.0) 
           (3..0, 1.0) -- (1.0, 3.0)  
           (1.0, 3.0) -- (1.0, 1.0)   
           (1.0, 1.0) -- (3.0, 3.0)  
Umfang: 8.0 
Fläche 4.0

Quadrat (5.0, 5.0) -- (5.0, 3.0)
            (5.0, 3.0) -- (3.0, 5.0)
            (3.0, 5.0) -- (3.0, 3.0)
            (3.0, 3.0) -- (5.0, 5.0)
Umfang: 8.0
Fläche: 4.0

Ich hoffe mir kann Jemand wieterhelfen...... :(
 
Zuletzt bearbeitet von einem Moderator:

Foster

Mitglied
delta x=1 und delta y=1
Warum wird das Quadrat nicht um 1 Einheit verschoben, sondern um 2?

......habe die Forenregeln gelesen!!! Komme trozdem nicht weiter. Ich finde nicht heraus wo hier der Fehler liegt.
 
S

SlaterB

Gast
es zwingt dich doch niemand, den Fehler zu finden,

es ist deine Schulaufgabe, ja, aber bestimmt nicht deine Aufgabe, im Forum andere Menschen zu fragen und die Lösung dann abzuschreiben,


andererseits ist eine Frage, wie du es selber herausfinden könntest, noch halbwegs legitim,
eine oft hilfreiche Technik ist das Logging oder Debugging,
schreibe z.B. in Punkt.move
System.out.println("alte Position war .. , verschiebe um .., nach ..");
dann siehst du, was verschoben wird, aber noch nicht unbedingt warum,

wenn du dir nicht alle derartigen Verschiebungen erklären kannst, schau dir alle Stellen an, wo punkt.move() aufgerufen wird und logge auch diese
 
K

KarouVirae

Gast
Lieber Studienkollege :)

Hättest du die UML-Diagramme angefertigt wärst du vielleicht weiter gekommen, aber sicher warst du da genau so faul wie ich.

Es gibt vier Punkte, vier Linien mit jeweils zwei Punkten und ein Quadrat, dem die vier Linien gehören.

Quadrat.move iteriert über all seine Linien und führt dort die move Operation aus.
Die Linie.move bringt ihre Punkte dazu sich zu bewegen.

Wenn es nun 4 Punkte gibt und 4 Linien UND DANN jede Linie genau zwei Punkte hat, heißt das, dass 1 Punkt jeweils genau 2 Linien zugeordnet werden kann: Punkt.move wird also doppelt ausgeführt.

l0

p0----------p1

| |

l1 | | l2

| |

p2----------p3

l3

Ich hoffe mal, dass das hier im Forum noch relativ gut sichtbar ist. p1 gehört z.B. nicht nur zu l2, sondern auch zu l0!

Ich hoffe ich habe das alles nicht zu wirr geschrieben. Den Fehler hast du nun, hoffentlich findest du nun eine schicke Lösung die unseren Korrekteur ein wenig erfreut :)

LG, Danny
 
K

KarouVirae

Gast
Ich entschuldige mich dafür, dass ich zu blöd bin Daten zu lesen und auch noch doppelposte :)
Aber vielleicht hilfts ja noch jemandem, die Aufgabe ist noch (eher wieder) aktuell.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
W Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
G Input/Output Wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
P wo liegt der Fehler? Java Basics - Anfänger-Themen 2
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
B Compiler-Fehler Wo liegt der Fehler? Java Basics - Anfänger-Themen 3
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
J Wo liegt der Fehler? Java Basics - Anfänger-Themen 7
S GaussJordan in Java, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
T Wo liegt der Fehler ? -.- Java Basics - Anfänger-Themen 3
P Datentypen Fehler nur wo liegt das Problem? Java Basics - Anfänger-Themen 7
R NullPointerException ,wo liegt der Fehler? Java Basics - Anfänger-Themen 2
D wo liegt der Fehler? (JTable) Java Basics - Anfänger-Themen 11
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
M NullPointerException - Fehler beheben, nur, wo liegt er? Java Basics - Anfänger-Themen 13
D Wo liegt der Fehler? Java Basics - Anfänger-Themen 11
Screen Scanner Arrays wo liegt mein Fehler? Java Basics - Anfänger-Themen 11
Screen Wo liegt der Fehler? Java Basics - Anfänger-Themen 3
K Wo liegt der Fehler wieder ? Java Basics - Anfänger-Themen 14
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
K Hallo, woran liegt der Fehler ? Java Basics - Anfänger-Themen 6
M Felder (Wo liegt der Fehler?) Java Basics - Anfänger-Themen 2
P Wo liegt der Fehler? *verzweifel* Java Basics - Anfänger-Themen 10
Z Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
S Array bleibt leer, wo liegt mein Fehler? Verzeichnisinhalt s Java Basics - Anfänger-Themen 8
E Wo liegt hier der Fehler? Java Basics - Anfänger-Themen 13
L wo liegt hier der fehler? Java Basics - Anfänger-Themen 3
R Wo liegt der Fehler? Java Basics - Anfänger-Themen 10
W Wo liegt denn heir der Fehler? Java Basics - Anfänger-Themen 10
N wo liegt daran der fehler? Java Basics - Anfänger-Themen 6
H weiss nicht wo hier der fehler liegt Java Basics - Anfänger-Themen 3
A wo liegt der fehler im programm? Java Basics - Anfänger-Themen 9
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M BerechneEtwas Weiss jemand woran es liegt Java Basics - Anfänger-Themen 8
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
M Wo liegt der Unterschied? Deklaration Klasse oder Konstruktur Java Basics - Anfänger-Themen 3
M Liegt hier bereits ein Bad Smell vor? Java Basics - Anfänger-Themen 9
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
A Datum prüfen, ob es vor einem anderen Datum liegt Java Basics - Anfänger-Themen 2
K OOP Methoden überladen, wo liegt das Problem? Java Basics - Anfänger-Themen 22
I OOP This-Referenzs > wo liegt mein Denkfehler? Java Basics - Anfänger-Themen 24
B Class wird nicht gefunde obwohl sie im gleichen Ordner liegt Java Basics - Anfänger-Themen 8
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
J Arrays: Wo liegt das Problem? Java Basics - Anfänger-Themen 6
H In welchem Ordner liegt das jar file? Java Basics - Anfänger-Themen 2
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
M JTable updaten woran liegt es bloß? Java Basics - Anfänger-Themen 2
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
Fiedelbambu deriveFont Fehler wer kann Helfen? Java Basics - Anfänger-Themen 4
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
D Datentypen LocalDate.parse() ergibt Fehler Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
L Ich weis nicht was der Fehler ist! Java Basics - Anfänger-Themen 14
L30nS JNI Fehler, JRE und JDK Java Basics - Anfänger-Themen 8
E Executable jar file fehler Java Basics - Anfänger-Themen 9
S Fehler beim Programm Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
J Syntax-Fehler? Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
lol5443 Tic Tac Toe Fehler Java Basics - Anfänger-Themen 5
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
Lion.King Fehler Java Basics - Anfänger-Themen 5
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
C Fehler im Code Java Basics - Anfänger-Themen 10
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
V Wer findet den Fehler :) Java Basics - Anfänger-Themen 12
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben