# Hausaufgabe Hilfe!



## M17 (20. Nov 2020)

Guten Tag, 

Ich habe kurzfristige Hausaufgaben bekommen, die ich bis heute 23 Uhr abgeben muss. 

Jedoch lerne ich Java erst seit knapp 1 Woche und kann mit den Fragen nichts anfangen.

Bin total aufgeschmissen .

Könnte mir da jemand helfen, die Aufgaben zu lösen?










						Bilder-Upload - Kostenlos Fotos hochladen und ins Netz stellen
					

Kostenlos Bilder hochladen. Bilder Upload ohne Anmeldung




					www.bilder-upload.eu


----------



## kneitzel (20. Nov 2020)

Hast Du schon irgendwelche Ansätze? Wenn Du Dich 1 Woche mit Java beschäftigst, dann sollte das schon ausreichend sein, denn viel brauchst Du nicht ... Wie weit bist Du bei der ersten Aufgabe denn gekommen?


----------



## temi (20. Nov 2020)

Ein paar Ideen und Lösungsvorschläge solltest du schon selbst einbringen und irgendetwas wirst du in der Woche schon gelernt haben, sonst würdest du ja die Aufgabe nicht bekommen.

So als Tipp: "Zahlen von .. bis ..", also ein fester Startwert und ein fester Endwert, deutet immer ganz stark auf eine bestimmte Art Schleife hin. Damit sollte es erst mal ganz einfach sein, die Zahlen einfach nur auszugeben. Danach machst du dir Gedanken über die Formatierung.


----------



## M17 (20. Nov 2020)

kneitzel hat gesagt.:


> Hast Du schon irgendwelche Ansätze? Wenn Du Dich 1 Woche mit Java beschäftigst, dann sollte das schon ausreichend sein, denn viel brauchst Du nicht ... Wie weit bist Du bei der ersten Aufgabe denn gekommen?



Wir haben aktuell Online Unterricht . Die Woche erst 2h Java gehabt.


Bei der 1. Aufgabe bin ich soweit gekommen, sodass ich die Zahlen von 0-100 ausgeben kann ,weiß jedoch nicht ,wie ich die in diesen Blockformat kriege.



```
package aufgabe1;
public class EinsBisHundert {

    public static void main(String[] args) {
                        
        for(int i = 1; i < 101; i++) {

            System.out.print(i);

            if(i != 100) {
                
                System.out.print(", ");
            }
        }
    }
}
```


----------



## kneitzel (20. Nov 2020)

Das ist doch ein erster, guter Anfang.

Also kannst Du dir überlegen: Wie viele Leerzeichen müssen vor welche Zahl? Kannst Du da Regeln festlegen?
Also so Regeln wie:
- für Zahlen von 1 bis ... müssen ... Leerzeichen davor
- für Zahlen von ... bis ... müssen ... Leerzeichen davor
- ...
Jede Zahl von 1 bis 100 muss da dann eine Regel haben... 

Wenn Du das kannst, dann kannst Du das ja evtl. in if Anweisungen prüfen und dann die entsprechenden Leerzeichen ausgeben.

Der nächste Schritt wäre der Zeilenumbruch: Wann gibst Du den Zeilenumbruch aus? Kannst Du da eine Regel definieren?


----------



## M17 (20. Nov 2020)

kneitzel hat gesagt.:


> Das ist doch ein erster, guter Anfang.
> 
> Also kannst Du dir überlegen: Wie viele Leerzeichen müssen vor welche Zahl? Kannst Du da Regeln festlegen?
> Also so Regeln wie:
> ...


Da fällt mir leider nichts ein.


----------



## temi (20. Nov 2020)

Ergänzend zu meinem Vorredner suchst du etwa Folgendes innerhalb der Schleife:

Wenn die Zahl kleiner ist als ???, dann gebe ein Leerzeichen aus.
Gebe die Zahl aus.
Gebe ein Leerzeichen aus, um die Zahlen voneinander zu trennen.
Wenn die Zahl gleich ??? ist, dann gebe einen Zeilenumbruch aus.

Das kannst du noch komplettieren und auch so gerne aufschreiben. Danach nur noch in Java übersetzen, aber das ist einfach.


----------



## LimDul (20. Nov 2020)

Dann mal das mal auf einem Karo-Muster ab (jeder Ziffer in Kästchen) und zähl die leeren Kästchen zwischen zwei Zahlen


----------



## temi (20. Nov 2020)

Zur Verdeutlichung vielleicht noch mal etwas anders. Hier dein Code, der einfach die Zahlen von 1 bis 100 hintereinander ausgibt.

```
public class EinsBisHundert {

    public static void main(String[] args) {
                       
        for(int i = 1; i < 101; i++) {
            System.out.print(i);
        }
       
    }
}
```

Jetzt wollen wir wenigstens schon mal einen Zwischenraum einbauen:

```
public class EinsBisHundert {

    public static void main(String[] args) {
                       
        for(int i = 1; i < 101; i++) {
            System.out.print(i); // gebe die Zahl aus (ohne Zeilenumbruch!)
            System.out.print("   "); // und gebe drei Leerzeichen aus (auch ohne Zeilenumbruch!)
        }
       
    }
}
```

Jetzt könnte man noch eine Regel einfügen, die prüft, ob es sich bei der Zahl um die 10 handelt und danach einen Zeilenumbruch ausgeben mit `println()`

Diese Regel lässt sich allgemeiner fassen, indem man prüft, ob es sich um 10 oder ein Vielfaches von 10 handelt. Immer dann wird ein Zeilenumbruch benötigt.

Sobald das funktioniert, hast du die Zahlen von 1 bis 100, jeweils 10 Zahlen in einer Zeile. 

Danach fehlt nur noch das ein oder andere Leerzeichen, wieder abhängig von der Zahl.


----------



## kneitzel (20. Nov 2020)

Da die Zahlen rechtsbündig sein sollen, musst Du Leerzeichen vor der Zahl schreiben, nicht nach der Zahl.


----------



## M17 (20. Nov 2020)

temi hat gesagt.:


> Zur Verdeutlichung vielleicht noch mal etwas anders. Hier dein Code, der einfach die Zahlen von 1 bis 100 hintereinander ausgibt.
> 
> ```
> public class EinsBisHundert {
> ...


für einen Zeilenumbruch müsste ich dann % 10 == 0  einfügen?

Edit: war doch falsch


----------



## kneitzel (20. Nov 2020)

M17 hat gesagt.:


> für einen Zeilenumbruch müsste ich dann % 10 == 0  einfügen?
> 
> Edit: war doch falsch


Doch, das ist richtig! Zeilenumbruch kommt nach der Zahl, wenn zahl % 10 == 0. Also Idee super, wenn es nicht geht: Einmal zeigen, dann schauen wir warum es nicht geht.


----------



## M17 (20. Nov 2020)

kneitzel hat gesagt.:


> Doch, das ist richtig! Zeilenumbruch kommt nach der Zahl, wenn zahl % 10 == 0. Also Idee super, wenn es nicht geht: Einmal zeigen, dann schauen wir warum es nicht geht.




```
package aufgabe1;

public class EinsBisHundert {

    public static void main(String[] args) {
                        
        for(int i = 1; i < 101; i++) {
            System.out.print(i); // gebe die Zahl aus (ohne Zeilenumbruch!)
            System.out.print("   "); // und gebe drei Leerzeichen aus (auch ohne Zeilenumbruch!)
            System.out.println(% 10 ==0);
        }
        
    }
}
```


----------



## kneitzel (20. Nov 2020)

Was du da machst ist: du gibst aus, ob die Zahl % 10 == 0 ist.

Aber du willst doch: wenn Zahl %10 == 0, dann gib einen Zeilenumbruch aus.

Edit: nicht ganz richtig - du hast da ja kein i, also fehlt bei dir vor dem % der erste Operand.


----------



## LimDul (20. Nov 2020)

*WENN* i % 10  == 0 *DANN* gib einen Zeilenumbruch aus - nicht "Gib irgendwas modul 10 aus"


----------



## M17 (20. Nov 2020)

kneitzel hat gesagt.:


> Was du da machst ist: du gibst aus, ob die Zahl % 10 == 0 ist.
> 
> Aber du willst doch: wenn Zahl %10 == 0, dann gib einen Zeilenumbruch aus.
> 
> Edit: nicht ganz richtig - du hast da ja kein i, also fehlt bei dir vor dem % der erste Operand.


auch mit i % kriege ich etwas ganz anderes ausgegeben.
Ausgabe:
1   false
2   false
3   false
4   false
5   false


----------



## LimDul (20. Nov 2020)

Du willst nicht i%10 ausgeben, sondern wenn das 0 ergibt einen Zeilenumbruch (IF-Bedingung)


----------



## White_Fox (20. Nov 2020)

Du suchst das hier:




__





						If-Anweisung in Java: Erklärung + Beispiele
					

Die If-Anweisung dient dazu einen Ausdruck auszuwerten und je nach Ergebnis weiter zu verfahren. Der Ausdruck muss dabei einen Wert vom Datentyp boolean haben und ...



					www.java-programmieren.com
				




Und das:




__





						Java Standard: Operatoren – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher
					






					de.wikibooks.org


----------

