Hallo liebe Java Community
Ich beschäftige mich nun seit 2 Wochen autodidaktisch mit Java, da ich Kenntnisse von
Programmiersprachen für die immer rascher vernetzte Gesellschaft als ein Muss betrachte.
Bis hierher habe ich keine grösseren Probleme gehabt, doch nun bin ich in einen logischen Sumpf geraten.
Die Aufgabe:
Schreiben Sie ein Programm, das einen Baum aus Sternen auf den Bildschirm ausgibt:
*
***
*****
*******
*********
***********
*************
***************
***
***
***
Unglücklich formatiert; ich weiss.
Diese Aufgabe will ich mit While-Schleifen meistern. Soweit bin ich gekommen (folgender Code ist fehlerfrei compilierbar):
Dieses Programm gibt eine umgekehrte Piramidenhälfte ohne Baumstamm aus. Die Baumbreitenhälfte soll kann der Benutzer eingeben. Alao vereinfacht gesagt so etwas:
***********
*********
*******
*****
***
*
usw.
Konkret habe ich nun folgendes Problem: Ich kriege es hin eine While Schleife zu coden die die korrekte Zahl Sterne ausgibt. Doch ich weiss nicht wie ich das Setzen der Leerzeichen vor und nach den Schleifen einbauen soll. Folgendes Grundgerüst habe ich mir überlegt:
...
BLUB = 1;
while ((N-3) >= zaehler1 ) // (N-3) ist die genaue Anzahl Zeilen für einen Baum mit Baumbreite N
{
While()
{
//Leerzeichen ausgeben
}
While(zaehler1> = BLUB)
{
System.out.println("*"); // Gibt die Sterne (*) aus.
BLUB = BLUB +0.5;
}
While()
{
//Leerzeichen ausgeben
}
zaehler1 = zaehler1+1;
BLUB = 1;
System.out.println();
}
Also: Die äusserste Schleife legt fest wie viele Zeilen erstellt werden. Die erste und dritte While Schleife gibt die Leerzeichen aus. Die zweite Schleife gibt die Sterne aus.
Nun die Frage: Wie kann ich die 1. und 3. Schleife mit dem inkrement zaehler1 so verknüpfen dass die
Leerzeichen nach der Bedingung (Leerzeichen = N - Sterne ) ausgegeben werden...?
Oder ist der Ansatz komplett falsch?
Ich bin dankbar für jede Hilfe und wünsche euch allen schöne Osterfeiertage...
Ich beschäftige mich nun seit 2 Wochen autodidaktisch mit Java, da ich Kenntnisse von
Programmiersprachen für die immer rascher vernetzte Gesellschaft als ein Muss betrachte.
Bis hierher habe ich keine grösseren Probleme gehabt, doch nun bin ich in einen logischen Sumpf geraten.
Die Aufgabe:
Schreiben Sie ein Programm, das einen Baum aus Sternen auf den Bildschirm ausgibt:
*
***
*****
*******
*********
***********
*************
***************
***
***
***
Unglücklich formatiert; ich weiss.
Diese Aufgabe will ich mit While-Schleifen meistern. Soweit bin ich gekommen (folgender Code ist fehlerfrei compilierbar):
Java:
import java.io.*;
class Baum //Dieses Programm berechnet X hoch N
{
public static void main( String [] args) throws IOException
{
BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
String Einlesen;
int N;
int zaehler1 = 1;
int zaehler2;
int N2;
System.out.println("Geben sie nun die Baumbreite ein! (ungerade ZAHL!)");
Einlesen = stdin.readLine();
N = Integer.parseInt(Einlesen);
while ( N >= 1)
{
while ( N >=zaehler1)
{
System.out.print("*");
zaehler1 = zaehler1 + 1;
}
N = N - 2;
zaehler1 = 1;
System.out.println();
}
}
}
Dieses Programm gibt eine umgekehrte Piramidenhälfte ohne Baumstamm aus. Die Baumbreitenhälfte soll kann der Benutzer eingeben. Alao vereinfacht gesagt so etwas:
***********
*********
*******
*****
***
*
usw.
Konkret habe ich nun folgendes Problem: Ich kriege es hin eine While Schleife zu coden die die korrekte Zahl Sterne ausgibt. Doch ich weiss nicht wie ich das Setzen der Leerzeichen vor und nach den Schleifen einbauen soll. Folgendes Grundgerüst habe ich mir überlegt:
...
BLUB = 1;
while ((N-3) >= zaehler1 ) // (N-3) ist die genaue Anzahl Zeilen für einen Baum mit Baumbreite N
{
While()
{
//Leerzeichen ausgeben
}
While(zaehler1> = BLUB)
{
System.out.println("*"); // Gibt die Sterne (*) aus.
BLUB = BLUB +0.5;
}
While()
{
//Leerzeichen ausgeben
}
zaehler1 = zaehler1+1;
BLUB = 1;
System.out.println();
}
Also: Die äusserste Schleife legt fest wie viele Zeilen erstellt werden. Die erste und dritte While Schleife gibt die Leerzeichen aus. Die zweite Schleife gibt die Sterne aus.
Nun die Frage: Wie kann ich die 1. und 3. Schleife mit dem inkrement zaehler1 so verknüpfen dass die
Leerzeichen nach der Bedingung (Leerzeichen = N - Sterne ) ausgegeben werden...?
Oder ist der Ansatz komplett falsch?
Ich bin dankbar für jede Hilfe und wünsche euch allen schöne Osterfeiertage...