[Java] Raute aus sternen legen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Themonkey, 27. November 2009 .

  1. 27. November 2009
    Raute aus sternen legen

    Hi ich bräuchte bei einer aufgabe mal hilfe also die aufgabe ist das man eine raute aus sternen ausgibt mit einer to string methode und das der konstruktor ein Feld vom
    Typ boolean der Größe nxn es soll wie z.B so aussehn
    *
    ***
    ****
    *****
    ****
    ***
    *
    naja halt nur zumindest so ähnlich
    ich habe es bis zu hälfte programmiert mit einer forschleife so das ich ein
    *
    ***
    ****
    *****
    erstell aber der unter teil der raute fehlt mir noch ich komm leider nicht drauf wie ich den rest
    *****
    ****
    ***
    *
    programmiere meine for schleife ist wie folgt für den oberenteil
    for(int i = 1;i<feld.length;i++)
    {
    for(int j = 1;j<feld.length;j++)
    {
    for (j=1; j<=(2*i-1); j++)
    System.out.print("*");

    }
    }

    for (int i = feld.length;i<0;i--)
    {
    for(int j =feld.length;j>0;j--)

    und leider weiß ich jetz nicht mehr weiter und sitz an dieser stelle zeit gestern fest ohne eine sinnvolle lösung zu finden könnt ihr mir vieleicht weiter helfen ??
     
  2. 27. November 2009
    AW: Raute aus sternen legen

    ich hab keine Ahnung was du mit deinem boolean konstruktor usw willst

    ich hab hier einfach mal was gemacht.....

    Spoiler
    Code:
    public class Sternchen {
     static int length=6;
     public static void main(String[] args) {
     for (int i=1;i<(2*length);i++) {
     if (i<length) {
     System.out.println(getStars(i));
     } else {
     System.out.println(getStars(2*length-i));
     }
     }
     }
     
     private static String getStars(int amount) {
     String stars="";
     for (int i=1;i<length-(amount/2);i++) {
     stars+=" ";
     }
     for (int i=1;i<=amount;i++) {
     stars+="*";
     }
     return stars;
     }
     
    }
    


    aber vielleicht kann man dir besser helfen, wenn du für deine Problembeschreibung komplette deutsche Sätze benutzt
     
  3. 28. November 2009
    AW: Raute aus sternen legen

    hehe sry ok dann versuch ich nochmal mein problem zu erklären.
    also das wo nach ich gesucht habe ist genau das was du da gepostet hast ein riesen thx aber leider fehlt das mit boolean =( das mit dem boolean hab ich eingebaut weil ich erst in der konsole des compliers sagen möchte wie groß mein feld werden soll und nicht schon in der klasse das er in deinem fall den wert 6 hat daher hab ich ein boolean erstellt.
    und ich würde gern die sterne mit einer tostring methode ausgeben die so aussehn würde
    Wenn eine Feldkomponente den Wert
    false hat wird ein Leerzeichen angehängt
    true hat, dann wird ein *angehängt.
    deswegen hab ich ein boolean gemacht gehabt
     
  4. 28. November 2009
    AW: Raute aus sternen legen

    hi

    jetzt versteh ich auch was du machen willst

    also ich würde es ungefähr so machen

    mainmethode {
    lies die größe der Raute ein
    erstelle die raute in einem boolean array
    erstelle aus dem boolean array einen string, true zu sternchen, false zu leerzeichen
    }

    methode um das boolean array zu erstellen:
    hier ist die frage, macht man 2 for-schleifen oder eine mit ner if abfrage
    dann wieder ne for schleife in der du die 2. zeile des arrays entweder true oder false setzt

    eine to string methode, die einfach mit 2 forschleifen das array durchläuft und entsprechen * oder leertaste ausgibt

    ich werde das grade mal in quellcode umsetzen, dann kann ichs dir vielleicht auch hier posten

    edit:

    Spoiler
    Code:
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class Sternchen {
    
     public static void main(String[] args) {
     //Einlesen einer Double Variable
     System.out.println("Bitte geben Sie die Größe der Raute an:");
     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     String input="";
     try {
     input = reader.readLine();
     } catch (IOException e) {
     e.printStackTrace();
     }
     double length = Double.parseDouble(input);
     //wegen Rundungsfehler müssen 0.5 aufgerechnet werden
     length=length/2+0.5;
     boolean[][] temp;
     //double variable zum int casten
     temp=createDiamond((int)length);
     System.out.println(booleanToString(temp));
     }
     
     private static boolean[][] createDiamond(int length) {
     boolean[][] ret = new boolean[length*2][length*2];
     int amountInRow;
     for (int x=1;x<=ret.length;x++) {
     if (x<(length)) {
     amountInRow=x;
     } else {
     amountInRow=length*2-x;
     }
     for (int y=1;y<=ret.length;y++) {
     if ((y>(length-amountInRow))&&(y<length*2-(length-amountInRow))) {
     ret[x-1][y-1]=true;
     } else {
     ret[x-1][y-1]=false;
     }
     }
     }
     return ret;
     }
     
     private static String booleanToString(boolean[][] starsBoolean) {
     String ret="";
     for (int x=0;x<starsBoolean.length;x++) {
     for (int y=0;y<starsBoolean.length;y++) {
     if (starsBoolean[x][y]) {
     ret+="*";
     } else {
     ret+=" ";
     }
     }
     ret+="\n";
     }
     return ret;
     }
     
    }
    
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.