raute ausgabe

java__neuling

Aktives Mitglied
hallo,

könnt ihr mir eventuell helfen.
ich verstehe die logik das folgenden quellcodecs nicht.
genauer gesagt die logik die sich hinter der if-bedingung verbirgt.

kann mir jemand auf die sprügen helfen?
programm läuft zwar aber ich will auch wissen warum ;-)

Java:
public class rautetest {

  public static void main(String[] args)
  {



int hoehe = 8;
int grenze = hoehe /2; //4
int laenge = hoehe * 2; //16

for (int i = 0; i < grenze; i++) {


	for (int j = 0 ; j < laenge; j++) {

		if ( (j > (laenge/2) - i) && (j < (laenge/2) + i) )
		{
			System.out.print("+");
		}
		else
		{
			System.out.print(" ");
		}
									   }
		System.out.println();


System.out.println();

}



 }

}

vielen dank!
 
Zuletzt bearbeitet von einem Moderator:

java__neuling

Aktives Mitglied
sorry......

Java:
public class rautetest {

  public static void main(String[] args)
  {



int hoehe = 8;
int grenze = hoehe /2; //4
int laenge = hoehe * 2; //16

for (int i = 0; i < grenze; i++) {


	for (int j = 0 ; j < laenge; j++) {

		if ( (j > (laenge/2) - i) && (j < (laenge/2) + i) )
		{
			System.out.print("+");
		}
		else
		{
			System.out.print(" ");
		}


									   }
		System.out.println();

System.out.println();

}

    }
}
 

XHelp

Top Contributor
Wo genau sind deine Verständnisprobleme?
Du kannst ja das Programm auf dem Zettel durchspielen, dann wird es vllt verständlicher.
Generell kannst du mit der if entscheiden, ob die Stelle, wo gleich ein Zeichen gedruckt wird sich in der Mitte der Zeile +-i befindet befindet.
 

bandy

Bekanntes Mitglied
das verstehe ich nicht. hört sich jetzt zwar komisch an aber ich habe bereits knapp eine stunde investiert und auch mal mit stift und blatt papier versucht aber irgendwie raff ich es nicht......


Java:
public class rautetest {
 
  public static void main(String[] args)
  {
 
for (int i = 0; i < 4; i++) {
 
 
    for (int j = 0 ; j < 16; j++) {
 
        if ( (j > (16/2) - i) && (j < (16/2) + i) )
        {
            System.out.print("+");
        }
        else
        {
            System.out.print(" ");
        }
 
 
                                       }
        System.out.println();
 
System.out.println();
 
}
 
    }
}


Ist es so einfacher?

Ich denke bevor man das verstehen will, soll man sich erst fragen was der Sinn des Programms ist, oder? Was willst du mit dem Programm erreichen?

1.Du hast zwei Schleifen, die erste macht 4 Durchlaeufe, die zweite Schleife macht 16 Durchlaeufe zu jeden Durchlauf der ersten Schleife.
2.Die zweite Schleife uberprueft bei jedem Durchlauf, ob (j > (16/2) - i) && (j < (16/2) + i)
d.h. ob j groesser 8 minus i ist und ob j kleiner 8 plus i ist, wenn das der Fall ist wir mit System.out.print("+"); ein Plus ausgedruckt, wenn nicht geht es in else-Zweig weiter und es wird das hier System.out.print(" ");, eine leere Zeichenkette ausgedruckt, das war es:eek:
 

java__neuling

Aktives Mitglied
1.Du hast zwei Schleifen, die erste macht 4 Durchlaeufe, die zweite Schleife macht 16 Durchlaeufe zu jeden Durchlauf der ersten Schleife.
2.Die zweite Schleife uberprueft bei jedem Durchlauf, ob (j > (16/2) - i) && (j < (16/2) + i)
d.h. ob j groesser 8 minus i ist und ob j kleiner 8 plus i ist, wenn das der Fall ist wir mit System.out.print("+"); ein Plus ausgedruckt, wenn nicht geht es in else-Zweig weiter und es wird das hier System.out.print(" ");, eine leere Zeichenkette ausgedruckt, das war es:eek:

ja, was das programm letzentlich macht sehe ich ja.
aber was ich eben nicht so richtig verstehe ich wie eine raute entsteht d.h. warum durch diese merkwürdige if bedinung in der ersten zeile ein zeichen steht und in der zweiten zeile 2, in der dritten 3 unsw....wundert mich irgendwie.
ist diese if anweisung für euch total verständlich?
was das programm letzentlich macht weiß ich aber warum dann gerade eine raute entseht verstehe ich nicht!........

kann mir jemand das noch einmal von der logik her erklären?
 
S

SlaterB

Gast
das Programm soll genau das machen, was du willst,
es soll eine Zeile mit 1 + machen, dann eine Zeile mit 2 +, dann mit 3, 4, 5 usw.
man kann nun jede Zeile einzeln schreiben oder die Struktur erkennen und eine Schleife schreiben

> zeile mit 1;
> zeile mit 2;
> zeile mit 3;
> zeile mit 4;
> zeile mit 5;

ist dasselbe wie

> schleife für i von 1 bis 5: zeile mit i

einfach oder?
das ist das ganze Grundkonzept, alle komplizieren ifs oder ineinander verschachtelte Schleifen sorgen nur für Spezialisierungen davon

ist doch klar dass bei
> schleife für i von 1 bis 5: zeile mit 5-i
was anderes rauskommt als bei
> schleife für i von 1 bis 5: zeile mit i
oder auch
> schleife für i von 1 bis 5: zeile mit i dann i/2 Leerzeichen, dann 2x i


man muss nur die Bedingung genau genug formulieren, dann ist fast alles möglich,
welches if nun genau für eine Raute zuständig ist oder andere Muster brauch man nicht wissen,
da gibts auch keine vordefinierte Logik, ausprobieren bzw. Kopf einschalten,
mehr kann man da nicht machen, ohne gewisse Form von Kreativität nicht zu lösen
 
Zuletzt bearbeitet von einem Moderator:

bandy

Bekanntes Mitglied
ja, was das programm letzentlich macht sehe ich ja.
aber was ich eben nicht so richtig verstehe ich wie eine raute entsteht d.h. warum durch diese merkwürdige if bedinung in der ersten zeile ein zeichen steht und in der zweiten zeile 2, in der dritten 3 unsw....wundert mich irgendwie.
ist diese if anweisung für euch total verständlich?
was das programm letzentlich macht weiß ich aber warum dann gerade eine raute entseht verstehe ich nicht!........

kann mir jemand das noch einmal von der logik her erklären?

Ich habe das Programm nicht ausprobiert, aber ich denke es ist nicht erforderlich, es ist einfach....


Nun zur Logik. Sehe dir das hier noch einmal an "((j > (16/2) - i) && (j < (16/2) + i))":rtfm:

Beim ersten Durchlauf haben j und i den Wert 0

D.h. du hast so etwas if((0 > (8) - 0) && (0 < (8) + 0)) man kann dies auch noch so ausschreiben
if((0 > 8) && (0 < 8)) ==> Ergebnis ist false "+" wird nicht gedruckt

Dann beim zweiten Durchlauf aendert sich der Wert von j
D.h. du hast so etwas if((1 > (8) - 0) && (1 < (8) + 0)) man kann dies auch noch so ausschreiben
if((1 > 8) && (1 < 8)) ==> Ergebnis ist false "+" wird nicht gedruckt

Dann beim dritten Durchlauf aendert sich der Wert von j
D.h. du hast so etwas if((2 > (8) - 0) && (2 < (8) + 0)) man kann dies auch noch so ausschreiben
if((2 > 8) && (2 < 8)) ==> Ergebnis ist false "+" wird nicht gedruckt Warum nicht????
Weil (2>8) ist false und (2<8) ist true, muessen aber beide true sein und dann wird plus gedruckt!
So geht es bis j den Wert 15 erreicht hat, dann endet die Schleife und es geht mit der ersten Schleife weiter, i bekommt den Wert 1 und die zweite Schleife beginnt von vorne, allerdings mit anderen Werten.

Nun sieht es so aus:


D.h. du hast so etwas if((0 > (8) - 1) && (0 < (8) + 1)) man kann dies auch noch so ausschreiben
if((1 > 7) && (1 < 9)) ==> Ergebnis ist false "+" wird nicht gedruckt
So geht es wieder weiter bis j den Wert 15 hat und geht es wieder zur ersten Schleife, diese aendert den Wert auf 2 und endet dan wenn es den Wert 3 hat und zweite Schleife mit neuen Werten bei 15 Durchlauf endet.
 
Zuletzt bearbeitet:

java__neuling

Aktives Mitglied
okay, super vielen dank!

habt ihr sehr frein gemacht!!! ;-)

eine ganz andere frage habe ich aber noch, will nicht dafür exra ein neues topic aufmachen.

will gerade mittels javadoc die api erzeugen.
meine javadateien bestehen aber aus unterschiedlichen klasse die ugelich noch in unterschiedlichen verzeichnissen liegen.

wenn ich jetzt die javadoc erzeuge fehlen mir die ganzen restlichen ganzen klassen.
i der html datei werden auf der rechten seite nur die klasse aus den einen verzeichnis angeziegt


normalweise erstelle ich die javadoch immer so

javadoc *.java

leider nutze liegen diesmal aber nicht alle dateien in einen verzeichnis

könnt ihr noch einmal helfen?!
 

marv

Mitglied
Hallo zusammen,

ich habe noch eine Frage zu der Raute, ich muss die gleiche Aufgabe lösen und es ist natürlich jetzt einfach, wenn ich den Quellcode hier rauskopiere compiliere und dann ausführe.

Ich möchte aber verstehen, wie ich an eine solche Aufgabe herangehe?

Kann mir diesbezüglich jemand auf die Sprünge helfen und mir sagen ich ich aus der Aufgaben stellung "Raute auf Konsole ausgeben, die oben genannte Schleife "erarbeite"? Wie gehe ich an die Aufgabe ran?

Würde ich echt freuen wenn mir jemand helfen kann.

Vielen Dank und viele Grüße

Marv
 
S

SlaterB

Gast
eine Schleife ist etwas was wiederholt wird mit ansteigender Variable, ob 0, 1, 2, 3 oder 0, 2, 4, 6 oder was immer man sonst braucht,
von da ist der Weg zu einem Programm, welches 0, 1, 2, 3 Sterne ausgibt, so kurz dass es grundsätzlich nichts 'heranzugehen' gibt,

man muss nur eine Schleife oder mehrere setzen und notfalls anpassen bis es läuft,
Variationen wie Anstieg und dann Abstieg kann man mit mehreren Schleifen oder if/ else, + und - Rechnung bestens hinbekommen,
da ist nichts dabei

ausprobieren ist vielleicht noch ein Stichwort, sowas muss man nicht vorher halbwegs fertig im Kopf haben wie etwa komplexe Suchalgorithem,
einfach überall mal ein Minus oder *3 dazubasten und schauen was sich verändert
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ASCII - Raute Java Basics - Anfänger-Themen 18
Y Raute umdrehen Java Basics - Anfänger-Themen 10
S Raute - for-Schleife Java Basics - Anfänger-Themen 2
B Raute Java Basics - Anfänger-Themen 10
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben