# Ausgabe an der Konsole



## ataberlin (15. Nov 2017)

Hallo, 
bin neu hier und hoffe auf Unterstützung
Und zwar habe ich das Problem, dass ich die Vielfache berechnen muss von zwei Zahlen unter 1000. So weit, so gut. Das Problem ist, dass die Ausgabe an der Konsole auch die Zahlenreihe bzw. die ganzen Vielfachen nacheinander auflisten soll und die Werte, die eingelesen werden, ausgegeben werden sollen. Ich schaffe es nicht wert1, wert2 ud die ganzen Vielfachen die vorkommen auszugeben. 

Vielen lieben Dank im Voraus!!!

Das habe ich bis jetzt:

import Prog1Tools.*;

public class Rechnen {

    public int vielfacheZwei() {

        int wert1 = IOTools.readInt("Geben Sie den ersten Wert ein:");
        int wert2 = IOTools.readInt("Geben Sie den zweiten Wert ein:");
        int summe = 0;
         for (int i = 0; i < 1000; i++) {
            if (i % wert1 == 0 | i % wert2 == 0) {
                summe += i;
            }

        }
        return summe;
    }

    public static void main (String [] args){

        Rechnen a = new Rechnen();

        System.out.println("Alle Vielfachen von" + wert1 + "oder" + wert2 + "unter 1000 sind:" (hier muss die Zahlenreihe) + "und die Summe ist: " + a.vielfacheZwei());
    }

}


----------



## Robat (15. Nov 2017)

Sollen nur die vielfachen ausgegeben werden die vielfache von a und b sind? Oder sollen beide Reihen einzeln ausgegeben werden?


----------



## Elenteria (15. Nov 2017)

Ahoi, 
Also dein Problem ist das deine Methode zuviel auf einmal zurückgeben muss, nämlich die Eingaben, die Liste mit den Vielfachen und die Summe. 
Du solltest dein Programm anders aufteilen dann ist die Sache schon wesentlich einfacher.
Du hast hier 3 Teilaufgaben
1. Zahlen einlesen
2. Liste mit allen Vielfachen berechnen.
3. Summe Berechnen.
(4. Ausgabe auf die Konsole)
Wenn du für jede dieser Teilaufgaben eine eigene Methode schreibst wird dir sicher einiges klarer.


----------



## Robat (15. Nov 2017)

Sagt ja niemand dass die Vielfachen in einer Liste gespeichert werden sollen. Reicht ja wenn die Vielfachen ausgegeben werden


----------



## ataberlin (15. Nov 2017)

Also zum Beispiel wenn man 3 und 5 eingibt sollen ja von den die vielfachen berechnet werden. 
In der Ausgabe müsste dann stehen 
Alle Vielfachen von 3 und 5 unter 1000 sind: 3,5,6,9,10,12,15,18,20,23,25,28,30 usw.  und die Summe ist :


----------



## Robat (15. Nov 2017)

Okay. Und mit `summe` ist die Summe der einzelnen Vielfachen gemeint, richtig?
Ist der Aufbau der Klasse so vorgegeben? Du hast in der main-Methode nämlich kein Zugriff auf die eingegeben Zahlen.. daher kannst du sie dort auch nicht ausgeben lassen.
Sicherlich wäre es besser die Zahlen in der main-Methode einzulesen und diese der `vielfacheZwei()` Methode zu übergeben.


----------



## ataberlin (15. Nov 2017)

Wie würde es denn gehen, dass ich die eingelesenen Werte von der main-Methode in die andere übertrage? Müsste sich dafür die Methode vielfacheZwei() ändern? Müssten Parameter rein oder reicht es die ersten zwei Zeilen der vielfachenZwei()- Methode einfach in die Main-Methode „verschiebe“?


----------



## Robat (15. Nov 2017)

Du müsstest der `vielfacheZwei()` Methode 2 Parameter geben, die 2 Zahlen in die main-Methode verschieben und dann die Methode wie folgt aufrufen: `vielfacheZwei(zahl1, zahl2);`


----------



## ataberlin (15. Nov 2017)

Rufe ich somit die Zahlenreihe auf oder die Summe? Die Methode vielfacheZwei berechnet ja dann die Summe oder nicht?


----------



## Robat (15. Nov 2017)

Das müsstest du eigentlich wissen.. Ich kenne die Aufgabe nicht. 

Meiner Meinung nach soll die Methode die Vielfachen ausgeben und die Summe zurück geben.


----------



## ataberlin (15. Nov 2017)

Naja die vielfacheZwei() Methode ist ja von mir. Das Problem ist halt die Ausgabe an der Konsole, dass da die Zahlenreihe fehlt. Ich krieg das nicht mit System.out.println auf die Reihe. Glaube weil die Methode-vielfacheZwei nur die Summe zurückgibt und ich die anderen Werte somit nicht in dieMain-Methode reinkriege. Mir fehlt für die Vervollständigung der Aufgabe lediglich der Schritt um alle Vielfachen von den eingelesen Zahlen auszugeben und am Ende muss die Summe der Vielfachen stehen. Letzteres bekomme ich ja hin. Davor den Teil leider nicht, bin auch leider erst ein Java-Anfänger.


----------



## Robat (15. Nov 2017)

Sagt ja keiner dass die Vielfachen gespeichert / zurück gegeben werden müssen oder?
Gib die vielfachen doch direkt aus.


----------



## ataberlin (15. Nov 2017)

Wie müsste es denn aussehen? Also was müsste in der Zeile System.out.println in der Main-Methode stehen? Vielen Dank für die Hilfe


----------



## thet1983 (15. Nov 2017)

wenn ich mich einmischen darf: such mal nach *FizzBuzz, Java*
da kannst dir sicher was abschauen..


----------



## Robat (15. Nov 2017)

Hier mal bisschen Pseudocode: 

```
vielfacheZwei(a : int, b : int) : int
     summe : int
     print 'Vielfachen von ' + a + ' und ' + b + ' sind: '
     FOR i = 0 TO 100
         IF i mod a AND i mod b
             summe += i;
             print i + ' '
     return summe
```


----------



## ataberlin (15. Nov 2017)

Vielen Dank
Es hat mir sehr weiter geholfen...
Danke!!!


----------



## ataberlin (15. Nov 2017)

Wenn ich es so Ausgebe steht da allerdings in der Konsole: 
Vielfachen von 3 und 5 sind: '0, 3, 5, 6, 9, 10, 12, 15, 18, 20,......., 233168

Da müsste stehen :
Vielfachen von 3 und 5 sind: '0, 3, 5, 6, 9, 10, 12, 15, 18, 20,.......,* und die Summe ist:* 233168

Allerdings weiß ich nicht wo ich dies einzufügen habe... Ich hab das versucht und da wurden allerdings nacheinander die Zahlen addiert.
So sah es aus was ich eingefügt habe: System.out.print("und die Summe ist: + summe);


```
public class test {

    public int vielfacheZwei(int a, int b) {
       
       
        int wert1 = IOTools.readInt("Geben Sie den ersten Wert ein:");
        int wert2 = IOTools.readInt("Geben Sie den zweiten Wert ein:");
        int summe = 0;
        System.out.print("Vielfachen von " + wert1 + " und " + wert2 +  " sind: '");
         for (int i = 0; i < 1000; i++) {
            if (i % wert1 == 0 | i % wert2 == 0) {
                summe += i;
                System.out.print(i + ", ");
                }
         }
         return summe;
         
    }     
   
   
   
         public static void main (String [] args){
             
            test a = new test();
             
            System.out.println(a.vielfacheZwei(0, 0));
             
           

         }

}
```


----------



## Robat (15. Nov 2017)

```
test a = new test();
int wert1 = IOTools.readInt("Geben Sie den ersten Wert ein:");
int wert2 = IOTools.readInt("Geben Sie den zweiten Wert ein:");
int summe = a.vielfacheZwei(wert1, wert2);
System.out.println(" und die Summe ist: " + summe);
```


----------



## ataberlin (15. Nov 2017)

Danke!


----------

