Forum / Grundlagen des Programmierens / 1. Hausübung

1. Hausübung

Ok, ich habe eine relativ einfache Frage zur Aufgabe 1.3. Man soll dort mit Hilfe von Schleifen ein rechteckmuster erzugen. Mein Programm hat aber einen kleinen Fehler.

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Geben Sie bitte ein Zeichen ein:");
        String str = sc.nextLine();
        System.out.println("Geben Sie die Anzahl der Spalten ein:");
        int i = sc.nextInt();
        System.out.println("Geben Sie die Anzahl der Zeilen ein:");
        int n = sc.nextInt();
      while (i > 0) {
      while (n > 0) {System.out.print(str); System.out.println(str);
      
      i--;n--;
                  }
\n~~~

Das ist mein aktueller Programmcode den ich verwende. Habe das Programm folgendermasen gerunt:
Geben Sie bitte ein Zeichen ein:
x
Geben Sie die Anzahl der Spalten ein:
5
Geben Sie die Anzahl der Zeilen ein:
7
xx
xx
xx
xx
xx
xx
xx

wo liegt hier mein Fehler im Code? so kompliziert is das gar neda ber mir fällt keine lösung grad ein bin für jede HIlfe dankbar
Wolfgang ±0

Ich hab es so gemacht wie in der Angabekonvention.

Projekt erstellt und dann für jede Aufgabe immer eine neue JavaClass hinzugefügt. Sind im Netbeans alle unter <default packages> angeführt.

Georg ±0

gleichfalls, hab ein package und 7 classes, da ich die aufgabe 3 in 3 klasen unterteilt hab

Maximilian ±0

Kann mir jemand erklären, wie ich bei Beispiel 1.2 mittel if/else erneut den BMI ausreche, bzw das Programm beende?

Wolfgang ±0

Du packst um das ganze Programm eine do-while schleife, wo am Ende im while-teil geprüft wird ob neu begonnen werden soll. Vor der Prüfung machst du eine Abfrage: Neustarten ja/nein. Wenn ja weißt du beispielsweise einer variable den wert 1 zu. im while-teil steht dann variable == 1 . Somit startet er neu. Wenn man Nein auswählt, wird der Variable der Wert 2 zugewießen, somit ist die do-while-bedingung nicht mehr erfüllt und er bricht ab.

Geht natürlich auch mit boolschen true/false Variablen.

Maximilian ±0

Geschafft! Danke für die Hilfe!

Alexander ±0

Hier meine vollständige HÜ, hoffe es hilft wem. Wenn jemandem Fehler auffallen bitte mitteilen.

Btw. ohne Gewähr, hatte nicht die Zeit zur genauen Kontrolle.

Grüße Alex

Marko ±0

Hier noch eine zweite Version als Gegenkontrolle ;)

lg, Marko

Hannes ±0

@marko du hast bei beispiel 5 mit 210GPa gerechnet. ich glaube, richtig wäre aber 210E9.

Georg ±0

beides falsch^^ man muss mit 210*10^3 Pa rechnen, da man die Pa in N/mm^2 umwandeln muss und dabei werden 6 von den 9 nullen "verbraucht"

Marko ±0

Danke für die Korrektur!! habs jetzt eiunfach auf 210000 geändert ^^

Christoph ±0

Ich habe eine Frage zu Bsp 1.3: Das ist mein Quellcode

public static void main(String[] args) {
        // TODO code application logic here
         Scanner sc = new Scanner(System.in);
        System.out.println(&quot;Geben Sie das Zeichen ein:&quot;);
        String Zeichen = sc.nextLine();
        System.out.println(&quot;Geben Sie die Anzahl der Zeilen ein:&quot;);
        int Zeilenanzahl = sc.nextInt();
        System.out.println(&quot;Geben Sie die Anzahl der Spalten ein:&quot;);
        int Spaltenanzahl = sc.nextInt();
        
        int i=0;
        int j=0;
        
        do{
            do{
            System.out.print(Zeichen);
            i++;}
        while(i&lt;Spaltenanzahl);
        
            System.out.println(Zeichen);
            j++;}
            while(j&lt;Zeilenanzahl);
        }
\n~~~

und das ist das Ergebnis des Programms:
Geben Sie das Zeichen ein:
C
Geben Sie die Anzahl der Zeilen ein:
3
Geben Sie die Anzahl der Spalten ein:
4
CCCCC
CC
CC


Kann mir jemand erkl&auml;ren, wo mein Fehler ist? Danke :)
Christoph ±0

Könnte mir jemand die Dateistruktur erklären? Zur Zeit sieht es bei mir so aus:

<default package>

  • Bsp1_xxxx_1.java

pkgxxxx_1 -Main.java

Main.java ist bei mir unverändert und wurde beim erstellen des Projekts hinzugefügt, allerdings wird nun meine Bsp1 Datei nicht richtig ausgeführt. Wenn ich das Hakerl beim Erstellen des Projektes bei "Create Main Class" weggeben, bekomme ich dann beim Ausführen von Bsp1 die Fehlermeldung, dass er keine Main class findet. Wie funktioniert es richtig?

Edit: Ausführen funktioniert schon, jedoch nur mit Rechtsklick-Run und nicht mit F6 bzw. dem grünen Pfeil oben.. Ist das normal so?

Dominik ±0

sieht wer meine fehler? beim 3. bsp bei der do-while Schleife

mein code

    public static void main(String[] args) {
        System.out.println(&quot;Geben sie ein beliebiges Zeichen ein:&quot;)
        Scanner sc = new Scanner (System.in); 
        String Zeichen = sc.nextLine();
               
        System.out.println(&quot;Geben sie die Anzahl der Zeilen ein:&quot;);
        int m = sc.nextInt();
        
        System.out.println(&quot;Geben sie die Anzahl der Spalten ein:&quot;)
        int n = sc.nextInt();
        System.out.println(&quot;Sie erhalten:&quot;);
    
        int y = 0, x = 0;
        do{ y++; 
        do{System.out.print(Zeichen + &quot; &quot;);
            x++;
        } 
        while (x &lt; n-1);
        System.out.println(Zeichen);
        } while (y &lt; m);
    } 
        
}
\n~~~

und ich bekomme nur in der 1. Zeile die Richtigen Spalten:
run:
Geben sie ein beliebiges Zeichen ein:
2
Geben sie die Anzahl der Zeilen ein:
3
Geben sie die Anzahl der Spalten ein:
4
Sie erhalten:
2 2 2 2
2 2
BUILD SUCCESSFUL (total time: 3 seconds)
Michael ±0

sieht wer meine fehler? beim 3. bsp bei der do-while Schleife

mein code

und ich bekomme nur in der 1. Zeile die Richtigen Spalten:

Du musst das x vor der inneren do/while Schleife auf 0 setzen! LG Michael

Dominik ±0

Danke, jz funkts!!

Sorry, die Kommentarfunktion ist geschlossen.