Java programmieren punkt innerhalb einer Fläche
Hallo Kann jemand mir bei der ersten Aufgabe helfen. Komme irgendwie nicht weiter
Frage:Zwischen den Punkten P(2,3) und Q(14, -15) spannt sich ein Rechteck-Fläche auf (Seiten parallel zu den Achsen des Koordinatensystems). Vervollständigen Sie die Methode enthaeltPunkt, die zurückgeben soll, ob ein Punkt (angegeben durch die Parameter x und y) innerhalb dieser Fläche liegt.
Quellcode: public boolean enthaeltPunkt(int x, int y) { // hier die Lösung eintragen... }
meine Lösung;public boolean enthaeltPunkt(int x, int y) { // hier die Lösung eintragen... boolean b;
double g;
g=x*y;
if (b<=g){
return true;
}else
return false;
2 Antworten
Mach dir einfach klar, welche Werte ein Punkt haben muss um innerhalb der Fläche zu sein.
Das wäre: X Koordinate: 2<=x<=14 und y-Koordinate -15<=y<=3. Das überprüfst du mit einer if-Abfrage und schon hast du dein Ergebnis
Du musst eigentlich nur noch das von mir geschriebene in Code umwandeln.
Du bekommst zwei Werte rein, int x für die x Koordinate und int y für die y-Koordinate.
Hier das ganze noch in Pseudo-Code, den Rest musst du selber schaffen.
Also:
Wenn x>=2 UND x<=14 Dann
Wenn y>=-15 UND y<3 Dann
return TRUE
Sonst:
return FALSE
Ende
Kann dir für die weiteren Methoden empfehlen, dir einfach mal die Sache in ein Koordinaten System einzuzeichnen um es daran nachzuvollziehen.
Gut dafür ist z.B. Geogebra: http://web.geogebra.org/app/#
Rectangle r = new Rectangle(1, 2, 3, 4);
Point p = new Point(2, 4);
if (p.x >= r.x && p.x <= r.x + r.width && p.y >= r.y && p.y <= r.y + r.height) {
System.out.println("Juhuuu!");
}
Danke aber eclipse zeigt immer noch fehler an.
hier der volle quellcode
public class Miniprojekt1 {public boolean enthaeltPunkt(int x, int y) {// hier die Lösung eintragen...}public double kreisFlaeche(double radius) {// hier die Lösung eintragen...}public double kreisUmfang(double radius) {// hier die Lösung eintragen...}public double rechteckFlaeche(double laenge, double breite) {// hier die Lösung eintragen...}public boolean kreisKleinerRechteck(double radius, double laenge,double breite) {// hier die Lösung eintragen...}public double laenge(double x1, double y1, double x2, double y2) {// hier die Lösung eintragen...}public double funktion1(double x) {// hier die Lösung eintragen...}public double funktion2(double x) {// hier die Lösung eintragen...}public static void main(String[] s) {Miniprojekt1 m1 = new Miniprojekt1();System.out.println("R(5|4) liegt innerhalb der Fläche: "+ m1.enthaeltPunkt(5, 4));System.out.println("S(-5|12) liegt innerhalb der Fläche: "+ m1.enthaeltPunkt(-5, 12));System.out.println("Fläche Kreis Radius 3: " + m1.kreisFlaeche(3));System.out.println("Umfang Kreis Radius 4,2: " + m1.kreisUmfang(4.2));System.out.println("Kreis Radius 6 kleiner Rechteck 2 mal 3: "+ m1.kreisKleinerRechteck(6, 2, 3));System.out.println("Länge (-1,5) (2,-1): " + m1.laenge(2, -1, -1, 5));System.out.println("Aufruf von funktion1 mit x=2 liefert den Wert: "+ m1.funktion1(2));System.out.println("Aufruf von funktion2 mit x=4 liefert den Wert: "+ m1.funktion2(4));}}
Wenn du Hilfe brauchst, nie unformatierten Code posten, das möchte keiner lesen...
Entweder hast du Quellcode vergessen oder dieser ergibt keinen Sinn. Die Deklaration der Methode "enthaeltPunkt(int x, int y)" ist syntaktisch richtig, logisch aber nicht. Du hast keine Klasse / Variablen, die die Werte des Rechtecks speichern (Höhe, Breite, Eckpunkt). Somit kannst du das entsprechende gar nicht berechnen.
Ich denke das ist ein Schul/Uni Übungsaufgabe und die Vorgaben für die Objekte stehen im Aufgabentext. Es gibt kein Rechteck Objekt hier.
Deswegen sollte die Methodensignatur angepasst werden oder die Werte an anderer Stelle gespeichert werden.
Das ist hier nicht vorgesehen, wäre besser aber ist nicht erwünscht.
könntest du es bitte machen stehe gerade im schlauch