tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Kai008
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
689
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    deiwid deiwid ist offline Mitglied
    Registriert seit
    Nov 2007
    Beiträge
    14
    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 ") ; }
     
            }
            
                    
            
            
     
                    
            }
        
        
    }
     

  2. #2
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    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. :)

  3. #3
    deiwid deiwid ist offline Mitglied
    Registriert seit
    Nov 2007
    Beiträge
    14
    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 ") ; 
                    }
     
            }
            
                    
            
            
     
                    
            }
        
        
    }
     

  4. #4
    Kai008 Kai008 ist offline Mitglied Brillant
    Registriert seit
    May 2008
    Ort
    Brunn/Geb. (Niederösterreich)
    Beiträge
    944
    Blog-Einträge
    1
    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:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    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(eck[i].istPunktEnthalten(punktx,punkty)) {
            System.out.println("1 ") ; 
        }
        else {
            System.out.println("0 ") ; 
        }
    }

    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.
    deiwid bedankt sich. 
    Mein kleiner webstart Projektplaner:
    http://178.77.101.236/ppws/
    Ideen, Verbesserungsvorschläge, Bugsmeldungen und allg. Kritik erwünscht und erbeten.

    Danke. :)

Ähnliche Themen

  1. if & boolean
    Von Q1007 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 31.05.10, 20:32
  2. Boolean Frage
    Von der_karl im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 31.05.10, 17:45
  3. boolean if Problem
    Von ferrari2k im Forum Java Grundlagen
    Antworten: 3
    Letzter Beitrag: 30.09.08, 09:30
  4. Boolean
    Von Peter_Lustig im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 14.09.05, 11:16
  5. gültiger Boolean
    Von cacao im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 09.10.04, 12:12