Kann mir jemand nen kleinen anstoss geben?

Status
Nicht offen für weitere Antworten.

Büroklammer

Mitglied
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

Top Contributor
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?


















Code:
//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_

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

Guckst du hier...

Code:
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

Code:
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.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben