Programmablaufplan |
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Welche Werte haben i und j im Vergleich zueinander, wenn statt eines * ein + ausgegeben werden soll?
|
|
28.10.2017 11:06 |
|
|
InformatikJava12 unregistriert
|
|
Also wsl brauche ich eine zusätzliche Bedingung und ich muss die Anweisung + zeichnen noch einbauen. Die Frage ist jetzt wie und wo:Ich komme leider nicht weiter. Gibst du mir noch ein Tipp bitte
|
|
28.10.2017 11:38 |
|
|
InformatikJava12 unregistriert
|
|
Kanst du mir vllt sagen, wo ich den Vergleich zwischen i und j einbauen soll?
|
|
28.10.2017 13:24 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
An der Stelle, an der jetzt immer der * ausgegeben wird, musst Du i und j vergleichen und statt einem * eventuell ein + ausgegeben.
Wie wäre denn i und j bei dem + ganz links oben, wie beim zweiten +, wie beim 3.? Fällt Dir etwas auf, wenn Du die i und j be diesen Paaren miteinander vergleichst?
|
|
28.10.2017 13:59 |
|
|
InformatikJava12 unregistriert
|
|
Also beim 1. Durchlauf bis zeichne * ist i=2 und j=1. D.h wenn j<i ist dann soll er + zeichnen, wenn nicht geht es normal weiter mit j=j+1. Aber das hilft dann nicht. Beim 2. Durchlauf würde er dann i=3 sein und j=1. Es würden also dann 2 + gezeichnet. Das + muss ja irgendwie weiterwandern. Ich komme noch nicht dahinter?
|
|
28.10.2017 14:15 |
|
|
InformatikJava12 unregistriert
|
|
Also in der 1. Zeile an der 1. Stelle ist j=1 und i=2
In der 2. Zeile 2. Stelle ist j=2; i=3
3. Zeile und 3. Stelle: j=3;i=4
D.h j ist immer um 1 kleiner als i
Wie drücke ich das aus, dass sich und j immer nur um 1 unterscheiden?
|
|
28.10.2017 14:23 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Genau, immer eins größer.
Du kannst einfach schreiben, "wenn i = j + 1"
Allerdings finde ich es etwas ungünstig, dass i schon ganz am Anfang der äußeren Schleife erhöht wird, aber j erst nach der Ausgabe. Ich würde das erhöhen von i auch jeweils am Ende der äußeren Schleife machen, also in dem Diagramm in den linken Ast, dort wo auch "gehe in die nächste Zeile" steht.
Dann wäre i nämlich in der Diagonalen immer gleich j und nicht eins höher. Dann wäre auch i die Zeilenzahl und j die Spaltenzahl.
Funktionieren tuts natürlich auch so wie hier, dass i immer eins größer als die Spaltenzahl ist.
Gruß
Marco
|
|
28.10.2017 23:16 |
|
|
InformatikJava12 unregistriert
|
|
Ok vielen Dank
Also reicht es auch einfach die Bedinung j=i+1 einfach nach dem j=<5 einzufügen, wobei ich das j=<4 setzen muss für 4 Elemente oder?
|
|
28.10.2017 23:30 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Ich denke, Du musst so wie so immer mit 4 vergleichen, nie mit 5 und auch nicht mit 3 (sowohl i als auch j)
Wenn Du mit 1 anfängst, dann hast Du nach dem ersten Schleifendurchlauf eine 2 und eine Zeile (oder Spalte) ausgegeben.
Der Vergleich ist positiv und die machst nochmal die Ausgabe und zählst 2 auf 3 hoch.
Damit ist der Vergleich immer noch wahr und Du gibst eine dritte Zeile/Spalte aus und zählst auf 4 hoch.
Jetzt hättest Du erst 3 Zeilen oder Spalten ausgegeben und würdest bei einem Vergleich auf i<=3 oder auch j<=3 aber schon aussteigen, so dass eine Zeile/Spalte fehlen würde.
Erst wenn Du dieses eine Mal noch durch läufst, sind es genau 4 und die Zählvariable hat einen Wert von 5. Erst jetzt darf der Vergleich unwahr sein und muss aus der Schleife gesprungen werden.
Gruß
Marco
|
|
29.10.2017 13:46 |
|
|
InformatikJava12 unregistriert
|
|
|
29.10.2017 15:21 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Du schreibst in der einen Entscheidungs-Raute: "i durch p teilbar", aber müsste es nicht umgekehrt sein?
Ansonsten sind die Pfeile in der unteren/linken Ecke etwas verunglückt.
Ansonsten
Gruß
Marco
|
|
30.10.2017 08:52 |
|
|
InformatikJava12 unregistriert
|
|
Perfekt dankeschön
Ich hätte noch eine kleine Frage. Wie kann ich im Java Programm realisieren, dass eine Jahreseingabe ein Schaltjahr ist oder nicht ohne die Modulooperation zu verwenden.
Die Bedingung weis ich: Ein Jahr ist ein Schaltjahr, wenn es durch 4 teilbar ist aber nicht durch 100, es sei denn es ist zusätzlich durch 400 teilbar.
Also ich skizziere meine Idee;
Also sei z die eingegebene Jahreszahl. Dann soll das Programm prüfen, ob rest = z- z*4 = 0 unnd rest = z-z*100 ungleich 0. Wie kann ich das in Java am besten realisieren? Mit if und else wsl aber dann wie genau
|
|
30.10.2017 11:18 |
|
|
as_string
Haudegen
Dabei seit: 06.11.2013
Beiträge: 638
Herkunft: Heidelberg
|
|
Hallo!
Mir wäre es deutlich lieber, wenn Du für jede Frage einen neuen Thread aufmachen könntest. Besonders diese letzte Frage hat ja gar nichts mit den ersten beiden zu tun.
In der Klasse GregorianCalendar der Java Standardbibliothek gibt es eine Methode isLeapYear().
Schau z.B. mal hier
https://www.tutorialspoint.com/java/util..._isleapyear.htm
Gruß
Marco
|
|
30.10.2017 16:29 |
|
|
|