# Kann mir jemand nen kleinen anstoss geben?



## Büroklammer (20. Nov 2003)

Also ich muss folgende Aufgabe lösen:

Erstellen Sie eine Anwendung, welche die Anzahl der Sternchen auf einer Quadratseite einliest und
dann ein Quadrat mit dieser Quadratseite ausgibt. Die Anzahl der Sternchen soll zwischen 1 und 20
sein können.

Nun hab ich aber hinten und vorne keine Ahnung wie ich das lösen soll. Kann mir da jemand ein bisschen helfen? Ne Art Anstoss geben?


----------



## Nobody (20. Nov 2003)

was das mit dem einlesen auf sich hat, versteh ich nicht so ganz (soll da ein bild die anzahl der sternchen eingelesen werden oder was???)

so nun die intension und wenn du kein plan hast steht etwas weiter unten der code:
du erstellst ein quadrat aus zeichen zb *. bei 4 * sieht das dann so aus (in der console, textarea..):

* * * *
* * * *
* * * *
* * * *

das ganze wird in eine stringbuffer ertsellt, da du ihn sehr oft veränderst (string zu langsam und müllt dabei den speicher voll). nun läufst du 2 ineinander geschachtelte schleifen ab die diese dem string buffer hinzufügen. und zum schluss gibst du in der main methode das ganze mittels: System.out.print aus

sollte das mit den leerzeichen nicht ganz passen, dann mach solange rum bis es passt.
soll nur der rand aus sternchen bestehen, musst du zum anfang und schluss eine ganze zeile voll * ausgeben lassen und dazwischen nur 1 stern viele leerzeichen und dann wieder 1 stern.

eigentlich ganz einfach oder?



















```
//das ganze ist eingelesen und steht in n (int)
public StringBuffer bestimmen(int n){
  StringBuffer sb = new StringBuffer();
  if(n<=20 && n>=1){
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
        sb.append("* ");
      }
      sp.append(System.getProperty("line.separator"));
    }
  }
  return sb;
}
```


----------



## schoppenhauer_entfernt_ (17. Dez 2003)

Wenn ich das jetzt richtig verstanden habe, dann geht das aber auch einfacher.

Guckst du hier...


```
import java.io.*;
import java.util.*;

public class Quadrat {
  static int Seitenlaenge;
  
  public static void main (String args[]) {
    BufferedReader Eingabe = new BufferedReader ( new InputStreamReader (
                                                  System.in));
    try {
      System.out.println("Zahl eingeben...");
      Seitenlaenge = Integer.parseInt(Eingabe.readLine());
    } catch (Exception e) {
      //Fehlerbehandlungsroutine einfügen
    }

      //Bis hierhin ist alles nur eine Eingaberoutine. Die Zahl soll nun in der Integer-Variable "Seitenlaenge"
      //gespeichert sein. Ab hier beginnt das eigentliche Ausgabeprogramm.
    String Ausgabe = new String("");
    for (int i = 0; i < Seitenlaenge; i++) Ausgabe += "*";
    for (int i = 0; i < Seitenlaenge; i++) System.out.println(Ausgabe);
  }
}
```
Nichts gegen die vorherige Möglichkeit. Die geht sicher auch. Aber bei mir sind es im Prinzip nur drei Zeilen, die für die Ausgabe zuständig sind, und sonst nur eingaberoutine. Wenn du nur eine Ausgaberoutine haben willst, wie im Vorherigen Beispiel, dann schreibe nur


```
public void Sternquadrat ( int Seitenlaenge ) {
    String Ausgabe = new String("");
    for (int i = 0; i < Seitenlaenge; i++) Ausgabe += "*";
    for (int i = 0; i < Seitenlaenge; i++) System.out.println(Ausgabe);}
```

Dabei muss Seitenlaenge der Wert der Anzahl der Sterne sein. Aber das obige Beispiel ist vollständig mit Eingaberoutine, etc.


----------



## exorzist (15. Jan 2004)

fehlt nur noch die einschränkung, dass die sterne zwischen 1 und 20 liegen müssen


----------

