1Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
689
689
EMPFEHLEN
-
Hallo, steh schon den ganzen Vormittag auf der Leitung und schaffe es nicht dieses Problem zu lösen.
Wie kann ich in meinem Programm aufs boolen zugreifen, damit ich den geforderten Rückgabewert bekomme?
Habe ich die Punkte aus main übernommen?
Kurz noch: Das Programm soll neun Werte einlesen und wenn ein Punkt im erzeugten Rechteck vorhanden ist soll 1 ausgegeben werden. Sonst 0.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
class Rechteck { int xk; int yk; int breite; int hoehe; Rechteck(int x, int y, int b, int h) { xk = x; yk = y; breite = b; hoehe = h; } boolean istPunktEnthalten(int punktx, int punkty) { int test1 = (xk + punktx) ; int test2 = (yk + punkty) ; if (test1 <= breite && test2 <= hoehe) { //testet ob die Punkt x und Punkt y im Rechteck enthalten sind return true; } else { return false; } } } public class Beispiel5 { public static void main(String[] args) { int a = new Integer(args[0]); // Anzahl der erzeugten Rechtecke int x = new Integer(args[1]); // x Koordinate int y = new Integer(args[2]); // y Koordinate int b = new Integer(args[3]); // Breite der Rechtecke int h = new Integer(args[4]); // Hoehe der Rechtecke int m = new Integer(args[5]); // Erhoehung der x Koordinate beim 2. Rechteck und dann beim 3. int n = new Integer(args[6]); // Erhoehung von y Koordinate int punktx = new Integer(args[7]); //Punkt x int punkty = new Integer(args[8]); // Punkt y Rechteck[] eck = new Rechteck[a]; for (int i=0; i<a ;i++){ eck[i] = new Rechteck (x+(m*i), y*(n*i), b, h); //if(istPunktEnthalten()) { //wenn der Punkt im Rechteck enthalten ist soll 1 ausgeben werden //system.out.println("1 ") ; } //sonst 0 //else{ //system.out.println("0 ") ; } } } }
-
23.03.10 11:41 #2
Natürlich musst du die Instanze (bei static Klasse) angeben:
rechteck.istPunktEnthalten(int x, int y).
Mach aber die schließende runde Klammer entweder in die nächste Zeile oder lass beide weg (lt. Conventions schlechter) und schieb das, was passieren soll einen Tabulator oder 4 Space nach rechts.
Die JRE hat aber schon eine Klasse für Rechtecke dabei: Rectangle. Wenn du den Punkt ebenfalls zu einen machst enthält die Klasse sogar eine Methode zum prüfen einer Überlappung.Mein kleiner webstart Projektplaner:
http://178.77.101.236/ppws/
Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.
Danke. :)
-
danke für die schnelle antwort, jetzt kommt noch eine fehlermeldung in der if-Anweisung. kannst du bitte noch einen kurzen Blick darauf werfen
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
class Rechteck { int xk; int yk; int breite; int hoehe; Rechteck(int x, int y, int b, int h) { xk = x; yk = y; breite = b; hoehe = h; } boolean istPunktEnthalten(int punktx, int punkty) { int test1 = (xk + punktx) ; int test2 = (yk + punkty) ; if (test1 <= breite && test2 <= hoehe) { //testet ob die Punkt x und Punkt y im Rechteck enthalten sind return true; } else { return false; } } } public class Beispiel5 { public static void main(String[] args) { int a = new Integer(args[0]); // Anzahl der erzeugten Rechtecke int x = new Integer(args[1]); // x Koordinate int y = new Integer(args[2]); // y Koordinate int b = new Integer(args[3]); // Breite der Rechtecke int h = new Integer(args[4]); // Hoehe der Rechtecke int m = new Integer(args[5]); // Erhoehung der x Koordinate int n = new Integer(args[6]); // Erhoehung von y Koordinate int punktx = new Integer(args[7]); //Punkt x int punkty = new Integer(args[8]); // Punkt y Rechteck[] eck = new Rechteck[a]; for (int i=0; i<a ;i++){ eck[i] = new Rechteck (x+(m*i), y*(n*i), b, h); if(Rechteck.istPunktEnthalten(punktx,punkty)) { System.out.println("1 ") ; } else{ System.out.println("0 ") ; } } } }
-
23.03.10 13:08 #4
Du hast die Klasse angegeben, das geht nur mit statischen Methoden, da diese nicht mit den Instanzen, sondern nur Klassen zusammenhängen.
Du musst es mit der Variable, die auf die Instanz zeigt zugreifen.
Code java:
Oder direkt per if(new Rechteckt(x+(m*i), y*(n*i), b, h).istP.....), dann spaarst du dir das Array. Wobei du dir das auch komplett spaaren kannst, da du die Rechtecke nach der for sowieso nicht mehr brauchst, und sie deshalb darin deklarieren kannst.Mein kleiner webstart Projektplaner:
http://178.77.101.236/ppws/
Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.
Danke. :)
Ähnliche Themen
-
if & boolean
Von Q1007 im Forum PHPAntworten: 6Letzter Beitrag: 31.05.10, 20:32 -
Boolean Frage
Von der_karl im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 31.05.10, 17:45 -
boolean if Problem
Von ferrari2k im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 30.09.08, 09:30 -
Boolean
Von Peter_Lustig im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 14.09.05, 11:16 -
gültiger Boolean
Von cacao im Forum .NET ArchivAntworten: 1Letzter Beitrag: 09.10.04, 12:12





Zitieren
Login





