Quadrat aus Sternen mit while-Schleife

SirWitan

Mitglied
Ich habe mich länger mit dieser Aufgabe beschäftigt, aber ich komme einfach auf keine Lösung ;(

Zur Aufgabe: Implementieren Sie eine Prozedur, die eine
Zahl interaktiv entgegennimmt und einen
entsprechend großen quadratischen Rahmen
aus dem Symbol „*“ erzeugt. (Mit while-Schleife)

Ich habe noch nicht Mal einen wirklichen Ansatz, wie diese Aufgabe gehen soll, jedoch habe ich eine ähnliche Aufgabe, die ich zuvor bearbeitet habe: (Aufgabe: Mithilfe der Prozedur soll ein halber Tannenbaum auf der Konsole ausggeben werden [aus dem Symbol "*"]
Java:
import java.util.Scanner;

public class Aufgabe {

  public static void main(String[] args) {


  }

public static void tanne(){
    System.out.println();
    Scanner m = new Scanner(System.in);
    System.out.println("In welcher Größe soll der halbe Tannenbaum aus Sternen erstellt werden?");
    int n = m.nextInt();
    System.out.println();
    System.out.println("Hier die Lösung: ");
    System.out.println();
    int y = m.nextInt();
    String x ="*";
    int z = 1;
    while(z<=y){
      System.out.println(x);
      x=x+"*";
      z++;
    }
  }


Ich denke jedoch das hier 2 while-Schleifen notwendig werden, jedoch hab ich keinen Plan wie ich vorgehen soll und wäre für jede Hilfe dankbar!
 
B

bone2

Gast
-du brauchst soviele zeilen wie das quadrat groß werden soll
-zeile 1 und zeile n werden n * lang
-zeile 2 bis n-1 bestehen aus *; n-2 leerzeichen und *

also eine äußere zeilenschleife
eine innere abfrage (if zeile = 1 oder zeile = n)
dann zwei verschiedene innere schleifen, die eben eine durchgezogene oder mittlere linie bauen
 

SirWitan

Mitglied
Der Benutzer soll ja in die Konsole eine Zahl eintippen können, mithilfe von der dann das Quadrat entsteht. (Also keine konstante Variable, sondern eine frei Auswählbare, anhand von der dann das Quadrat entsteht)

Könntest du mir das nochmal anhand eines Java Codes erklären? So ist es etwas missverständlich für mich...
 

akimoon

Aktives Mitglied
Pseudo-Code:
x ist die eingegebene (als parameter übergebene zahl)
Am besten erstellst du hierzu eine Methode "zeichenQuadrat(int x)", die einen int-Wert erwartet..
x ist jetzt allerdings nicht gerade ein aussagekräftiger Name..
Kannst ja erstmal versuchen, ob es mit einem konstanten Wert klappt, und dann die Eingabe einbauen? :)

Java:
Eingegebene Zahl (x): 10
rufe zeichenQuadrat(x) auf

zeichneQuadrat(int x) macht:
  zeile=1
  solange zeile<=x
    wenn (zeile== 1 oder zeile == x)
      schreibe x mal "*"
    ansonsten
      schreibe "*"
      schreibe x-2 mal "leerzeichen"
      schreibe "*"
    springe in die nächste Zeile
    erhöhe zeile um eins
 
Zuletzt bearbeitet:

SirWitan

Mitglied
@akimoon: Danke für die Lösung :), jedoch konnte ich es mir nach 4 Stunden am Rechner auch mühsam selbst erklären!

@Andi_CH: Nein, zu den Leute zähle ich bestimmt nicht. Ich wollte nur rechtzeitig (war leider zu spät) nach Hilfe suchen um zumindest noch etwas abzugeben. Ich hoffe doch das ist erlaubt. Betteln werde ich bestimmt nicht, sowas ist einfach unwürdig... geschweige denn etwas anderes tun...

Es gab sogar eine Zeit wo ich in Informatik sogar recht gut war... jedoch sehe ich langsam das das ganze doch nicht meins ist... Ich sitze wöchentlich um die 7 Stunden am Rechner um die Aufgaben zu lösen aber es ist einfach zu kompliziert für mich geworden...
 

Andi_CH

Top Contributor
@Andi_CH: Nein, zu den Leute zähle ich bestimmt nicht. Ich wollte nur rechtzeitig (war leider zu spät) nach Hilfe suchen um zumindest noch etwas abzugeben.

Es gab sogar eine Zeit wo ich in Informatik sogar recht gut war... jedoch sehe ich langsam das das ganze doch nicht meins ist... Ich sitze wöchentlich um die 7 Stunden am Rechner um die Aufgaben zu lösen aber es ist einfach zu kompliziert für mich geworden...

Wer so direkt nach Java Code fragt - na ja

Informatikaufgaben lösen beginnt eben genau NICHT am Rechner (Ich fühle mich mal wieder als Don Quijote oder Prophet im eigenen Lande oder wie ein Lehrer vor einer Informatikerklasse)
 

Neue Themen


Oben