Hausaufgabe Hilfe!

kneitzel

kneitzel

Top Contributor
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

temi

Top Contributor
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.
 
M

M17

Mitglied
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.


Java:
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

kneitzel

Top Contributor
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?
 
M

M17

Mitglied
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?
Da fällt mir leider nichts ein.
 
temi

temi

Top Contributor
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.
 
Zuletzt bearbeitet:
L

LimDul

Top Contributor
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

temi

Top Contributor
Zur Verdeutlichung vielleicht noch mal etwas anders. Hier dein Code, der einfach die Zahlen von 1 bis 100 hintereinander ausgibt.
Java:
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:
Java:
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

kneitzel

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

M17

Mitglied
Zur Verdeutlichung vielleicht noch mal etwas anders. Hier dein Code, der einfach die Zahlen von 1 bis 100 hintereinander ausgibt.
Java:
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:
Java:
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.
für einen Zeilenumbruch müsste ich dann % 10 == 0 einfügen?

Edit: war doch falsch
 
M

M17

Mitglied
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.
Java:
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

kneitzel

Top Contributor
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.
 
L

LimDul

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

M17

Mitglied
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
 
L

LimDul

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

Neue Themen


Oben