Was mache ich hier falsch? Ich möchte das ganze kleine 1x1 ausgeben.?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Die Methode musst du schon mit einer Ganzzahl aufrufen, nicht einfach mit einem Buchstaben.

Außerdem initialisierst du z gar nicht.


Informatik30 
Beitragsersteller
 16.03.2020, 16:33

Wie meinen Sie das ich das mit einer Ganzzahl aufrufen muss? Und wo genau muss ich z Initialisieren?

Lamanini  16.03.2020, 16:57
@Informatik30

Lad bitte den Code der Funktion mal hoch, mit dem Bild ist es schwierig zu erklären.

Informatik30 
Beitragsersteller
 16.03.2020, 17:06
@Lamanini

public void act()

{

reihe1c(0);

  public void reihe1c (int r){

    for (int z=1; z<=10; z++){

      for (int i=r; i<=r*10; i=i+r){

        System.out.print(i+" ");

 }}}

Lamanini  16.03.2020, 17:31
@Informatik30

Meinst du vielleicht sowas?

public void reihe1c() {

        for (int i = 1; i <= 10; i++) {
            for (int j = 1; j <= 10; j++) {
                System.out.print(i*j + "\t");
            }
            System.out.println();
        }
    }
Informatik30 
Beitragsersteller
 16.03.2020, 17:55
@Lamanini

Dies funktioniert leider nicht, es zeigt keinen Fehler an, jedoch wird auch nichts ausgegeben.

Lamanini  16.03.2020, 18:03
@Informatik30

Komisch, bei mir funktioniert es einwandfrei.

Probier mal \t durch ein Leerzeichen zu ersetzen.

Möchtest du die Multiplikationsreihe von r ausgeben (dann reicht die innere Schleife)

oder möchtest du das GESAMTE 1x1 ausgeben? Dann braucht deine "reihe1c" kein Argument. Du musst dann in der äußeren Schleife r anstatt z verwenden.


Informatik30 
Beitragsersteller
 16.03.2020, 16:36

Ich möchte das gesamte 1x1 ausgeben. Soll ich also alle z zu r tauschen? Und ist mit dem Argument (int r) gemeint?

  1. Formatier bitte den Kram mit Strg+Alt+F
  2. Du übergibst einen char bei reihelc(r); erwartet wird ein int.
  3. Du musst z initialisieren in deiner for-Schleife.

Außerdem ist deine "act()"-Methode nicht sinnig. Du erstellt eine Methode die eine Methode aufruft. Wieso?

Erstelle mal lieber einen constructor:

public Actor(int i){

this.reihenlc(i);

}

Übergib mal die Zahl 0 statt r, also this.reihelc(0);

Außerdem mag ich auch nicht, wie du das ganze umgesetzt hast (eigentlich wäre es sinniger eine Zahl zu übergeben, die beschreibt, welche Zahlen ausgegeben werden müssen).

Und schreib mal dein Programm in Englisch. Das mit dem halb-deutschen ist auch nicht so schön.

Viel Glück!


Informatik30 
Beitragsersteller
 16.03.2020, 16:44
  1. Das Formatieren übernimmt das Programm selbst, ich kann leider nichts machen
  2. Wie meinst du das mit char, also ich muss dies mit dem Parameter r machen.
  3. Ja, stimmt ich muss es Initialisieren, wo genau muss ich das tun?

Wir lernen dies gerade in der Schule (Online - wegen dem Coronavirus), von einem constructor habe ich noch nie etwas gehört.

Wenn ich reihe(0); mache erhalte ich unendlich viele 0

Vielen Dank:)

Im aufruf der Methode reihe1c musst du eine Ganzzahl mitgeben.

public void act() {
  reihe1c(0);
}
Woher ich das weiß:Studium / Ausbildung – Fachinformatiker für Systemintegration / Freelance als AWE

Informatik30 
Beitragsersteller
 16.03.2020, 16:37

Das habe ich gemacht, es ergibt auch Sinn, jedoch bekomme ich jetzt unendlich viele 0