Threads Executor Framework - Aufgabe auf n Threads aufteilen

zac12

Mitglied
Guten Abend Zusammen,
Ich arbeite seit einiger Zeit an einem Problem, für welches ich absolut keine Lösung finde. Da ich mit Multithreading noch unerfahren bin. Ich will ein Programm entwerfen, welches für ein Menge von Zahlen z.B 10 - 20 die jeweilige Anzahl von Divisoren errechnet z.B für 11->2 Divisoren(1,11) für 12->6 Divisoren (1,2,3,4,6,12) und das ganze mit n Threads welche asynchrone mit einem newFixedThreadPool und dem ExecutorService sowie dem callable Interface arbeiten. Mir ist aus der Literatur nicht klar geworden wie ich eine n Thread Anwendung am Besten designe, da die meisten Beispiele immer mit 1 oder 2 Threads aufgezeigt werden. Somit meine Frage an euch wie man so etwas am besten lösen kann?,

Ich versuchte bereits einige Dinge aus, der letzte Stand der Dinge habe ich nun dazu gepostet, dieser ist jedoch noch Meilen davon entfernt lauffähig zu sein. Jedoch sollte dieser helfen, das Problem oder die Lösungsrichtung etwas aufzuzeigen.

Es würde mich extremst freuen, wenn ich hilfreiches Feedback erhalten würde.

Besten Dank im voraus.

Java:
public class CalculateDivisor {

    long von, bis;
    int threadCount;


    public CalculateDivisor(long von, long bis, int threadCount) {
        this.von = von;
        this.bis = bis;
        this.threadCount = threadCount;

    }


    public String call() throws Exception {
        long countOfDivisor;
        /*
        /*Berrechnung
        /***/
        return countOfDivisor;
    }
   
   
   
   
    public DvisorResult calculate() throws InterruptedException, ExecutionException {
       
        //Get ExecutorService from Executors utility class, thread pool size is 10
        ExecutorService executor = Executors.newFixedThreadPool(threadCount);
        //create a list to hold the Future object associated with Callable
        List<Future<Long>> list = new ArrayList<Future<Long>>();
        //Create MyCallable instance
        Callable<String> callable = new MyCallable();
        for(long i=von; i< bis; i++){
            //submit Callable tasks to be executed by thread pool
            Future<String> future = executor.submit(callable);
            //add Future to the list, we can get return value using Future
            list.add(future);
        }
        for(Future<Long> fut : list){
            try {
                //print the return value of Future, notice the output delay in console
                // because Future.get() waits for task to get completed
                System.out.println(fut.get());
            } catch (InterruptedException | ExecutionException e) {
                e.printStackTrace();
            }
        }
        //shut down the executor service now
        executor.shutdown();
   
          

        return new DivisorResult(0, 0);
    }
   


    public static void main(String[] args) throws InterruptedException,
            ExecutionException {
        if (args.length != 3) {
            System.out
                    .println("Usage: CalculateDivisor <intervalStart> <intervalEnd> <threadCount>");
            System.exit(1);
        }
        long von = Long.parseLong(args[0]);
        long bis = Long.parseLong(args[1]);
        int threads = Integer.parseInt(args[2]);

        CalculateDivisor cp = new CalculateDivisor(von, bis, threads);
        System.out.println("Ergebnis: " + cp.calculate());
    }

}


class DivisorResult {
    // das eigentlich ergebnis - die Zahl mit der max. Anzahl von Divisoren
    long result;

    // Anzahl der Divisoren von Result
    long countDiv;

    public DivisorResult(long r, long c) {
        result = r;
        countDiv = c;
    }

    public long getResult() {
        return result;
    }

    public long getCountDiv() {
        return countDiv;
    }

    @Override
    public String toString() {
        return "Zahl mit maximaler Anzahl Divisoren: " + result + " ("
                + countDiv + " Divisoren)";
    }

}
 

AndyJ

Bekanntes Mitglied
Das wuerde ich mit dem ForkJoin framework realisieren (kannst auch die Stream API nehmen, aber ich persoenlich finde die nicht so intuitiv). Beim ForkJoin framework implementierst du eine RecursiveAction oder einen RecursiveTask, je nachdem ob du auf einer zentralen Datenstruktur arbeitest oder das Ergebnis zurueckgeben willst.
In deiner Implementierung wird das Problem entweder geteilt (wenn es noch zu gross ist) oder direkt berechnet (unterhalb des Schwellenwertes). Beispiele dafuer sind direkt in den JavaDocs zu finden.

Dann erzeugst du einen ForkJoinPool:

Code:
ForkJoinPool forkJoinPool = new ForkJoinPool(Runtime.getRuntime().availableProcessors());


und packst dein Problem in einen deiner Tasks und laesst das laufen:

Code:
DeineRecursiveAction task = new DeineRecursiveAction(input);
this.forkJoinPool.invoke(task);

Das Framework erzeugt soviele Threads wie du angibst, idealerweise der Anzahl Cores entsprechend. Die Tasks werden vom Framework auf die Threads verteilt, so dass alle Threads gleichmaessig beschaeftigt sind.

Die Stream API benutzt das ForkJoin Framework, so ist da eigentlich kein grosser Unterschied. Wahrscheinlich brauchst du weniger Code zu schreiben, aber man hat auch etwas weniger Kontrolle.

Cheers,
Andy
 

Flown

Administrator
Mitarbeiter
Ich glaube hier ist es nicht gerade angebracht mit dem F/J-Framework zu arbeiten, wenn man mit Callable und einfachen ExecutorService arbeiten möchte.

@zac12 Was soll denn hier herauskommen bei deiner Aufgabe? Was soll dein Programm machen?
 

zac12

Mitglied
Ich glaube hier ist es nicht gerade angebracht mit dem F/J-Framework zu arbeiten, wenn man mit Callable und einfachen ExecutorService arbeiten möchte.

@zac12 Was soll denn hier herauskommen bei deiner Aufgabe? Was soll dein Programm machen?

Besten Dank für die Antwort, genau es sollte mit dem Callable und ExecutorService gelöst werden.
Das Programm soll n Threads generieren, welche von einem Intervall von Zahlen z.B 100 - 115 diejenige Zahl findet mit den meisten Divisoren indem man für jede Zahl die Berechnung durchführt. Die Berechnungen sollen von unterschiedlichen Threads über das Executor Framework und Callable geschehen.
Da ich mit n Threads arbeiten muss und somit eine Liste von Callable und Future Elementen benötige, welche unabhängig von der Anzahl Threads immer das ganze Intervall durchrechnet, drehe ich mich etwas im Kreis, da ich nicht weiss wie man so etwas am korrektesten löst.

@AndyJ Danke für den Hinweis mit dem ForkJoin Framework!! absolut interessante Sache, leider darf & kann ich es in diesem Kontext nicht verwenden.
Java:
public class CalculateDivisor {

    long von, bis;
    int threadCount;

    /**
     * @param von
     *            untere Intervallgrenze
     * @param bis
     *            obere Intervallgrenze
     * @param threadCount
     *            Abzahl der Threads, auf die das Problem aufgeteilt werden soll
     */
    public CalculateDivisor(long von, long bis, int threadCount) {
        this.von = von;
        this.bis = bis;
        this.threadCount = threadCount;

    }
   
    public static DivisorResult amountOfDivisible() {
        long divisor, n=50,  maxnumber = 0, divisorNumber = 0, maxDivisors = 0;
   
        for ( divisor = 1; divisor <= n; divisor++ ) { //increases divisor until divisor=n
           
            if ( n % divisor == 0 )     //count divisors of n
                divisorNumber++;
        }
        if ( divisorNumber > maxDivisors) { //compare current divisors of n with maxDivisor
            maxDivisors = divisorNumber;
            maxnumber = n;                  //save n as number with max divisor
        }
        return new DivisorResult(maxnumber,maxDivisors);
    }

    /**
     * Berechnungsroutine
     *
     * @return
     * @throws InterruptedException
     * @throws ExecutionException
     */
    @SuppressWarnings("unchecked")
    DivisorResult calculate() throws InterruptedException, ExecutionException {
        
        // Prepare to execute and store the Futures
        ExecutorService executor = Executors.newFixedThreadPool(threadCount);
        //List<Future<DivisorResult>> taskList =   new ArrayList<Future<DivisorResult>>();
        List<Callable<DivisorResult>> threadList = new ArrayList<Callable<DivisorResult>>();
        // Create a a List with n tasks
        for(long i=1; i<=threadCount; i++){
            threadList.add((new Callable<DivisorResult>(){
                @Override
                public DivisorResult call() {
            return CalculateDivisor.amountOfDivisible();
        }}));
        }
     
        List<Future<DivisorResult>> taskList= executor.submit(threadList);
      
        // Wait until all results are available and combine them at the same time
        for (int j = 0; j < threadNum; j++) {
            FutureTask<Integer> futureTask = taskList.get(j);
        //
        }
        executor.shutdown();
          

        return new DivisorResult(0, 0);
    }
   
   
   
   
   

    public static void main(String[] args) throws InterruptedException,
            ExecutionException {
        if (args.length != 3) {
            System.out
                    .println("Usage: CalculateDivisor <intervalStart> <intervalEnd> <threadCount>");
            System.exit(1);
        }
        long von = Long.parseLong(args[0]);
        long bis = Long.parseLong(args[1]);
        int threads = Integer.parseInt(args[2]);

        CalculateDivisor cp = new CalculateDivisor(von, bis, threads);
        System.out.println("Ergebnis: " + cp.calculate());
    }

}


class DivisorResult {
    // das eigentlich ergebnis - die Zahl mit der max. Anzahl von Divisoren
    long result;

    // Anzahl der Divisoren von Result
    long countDiv;

    public DivisorResult(long r, long c) {
        result = r;
        countDiv = c;
    }

    public long getResult() {
        return result;
    }

    public long getCountDiv() {
        return countDiv;
    }

    @Override
    public String toString() {
        return "Zahl mit maximaler Anzahl Divisoren: " + result + " ("
                + countDiv + " Divisoren)";
    }

}
 

mrBrown

Super-Moderator
Mitarbeiter
Das Programm soll n Threads generieren, welche von einem Intervall von Zahlen z.B 100 - 115 diejenige Zahl findet mit den meisten Divisoren indem man für jede Zahl die Berechnung durchführt. Die Berechnungen sollen von unterschiedlichen Threads über das Executor Framework und Callable geschehen.
Da ich mit n Threads arbeiten muss und somit eine Liste von Callable und Future Elementen benötige, welche unabhängig von der Anzahl Threads immer das ganze Intervall durchrechnet, drehe ich mich etwas im Kreis, da ich nicht weiss wie man so etwas am korrektesten löst.

Warum sollte denn jeder Thread das ganze Intervall durchrechnen? ;)
Aufteilen auf die einzelnen Threads kannst du das Berechnen der Teiler für jeweils einen Wert. Also, Thread 1 berechnet Teiler für 100, Thread 2 für 101, usw...

Du musst also m (Anzahl zu berechnender Werte) Callables erstellen, die jeweils die Teiler des ihnen zugewiesenen Wertes berechnen - der Teil fehlt bisher.
Die Liste übergibst du dann dem ExecutorService, der dir dann eine Liste von Future zurückgibt - hast du im wesentlichen schon.

Über diese musst du dann nur noch iterieren -machst du schon- und die Ergebnisse einsammeln und das maximum raussuchen - das machst du noch nicht, bisher ignorierst du das berechnete, und gibst einfach 0,0 zurück.


Generell: lass static und @SuppressWarnings weg, das macht es beides nur schwerer für dich ;)
 

zac12

Mitglied
Warum sollte denn jeder Thread das ganze Intervall durchrechnen? ;)
Aufteilen auf die einzelnen Threads kannst du das Berechnen der Teiler für jeweils einen Wert. Also, Thread 1 berechnet Teiler für 100, Thread 2 für 101, usw...

Du musst also m (Anzahl zu berechnender Werte) Callables erstellen, die jeweils die Teiler des ihnen zugewiesenen Wertes berechnen - der Teil fehlt bisher.
Die Liste übergibst du dann dem ExecutorService, der dir dann eine Liste von Future zurückgibt - hast du im wesentlichen schon.

Über diese musst du dann nur noch iterieren -machst du schon- und die Ergebnisse einsammeln und das maximum raussuchen - das machst du noch nicht, bisher ignorierst du das berechnete, und gibst einfach 0,0 zurück.


Generell: lass static und @SuppressWarnings weg, das macht es beides nur schwerer für dich ;)

Danke für dein Feedback!, Vielleicht habe ich es etwas undeutlich geschrieben, aber es ist genau so wie du erwähnt hast, nämlich das nicht jeder Thread das Intervall Rechnen soll sondern nur die ihm zugewiesenen Werte:
->Du musst also m (Anzahl zu berechnender Werte) Callables erstellen, die jeweils die Teiler des ihnen ->zugewiesenen Wertes berechnen - der Teil fehlt bisher.
- Genau dort ist auch der Punkt wo ich nun stecken geblieben bin. Wie ich am besten die Werte Verteilung in die Callables mache.

Bei der Liste, welche die entsprechenden Callables aufruft, habe ich das Problem das dort ein Syntax Fehler auftaucht, welcher mich etwas ausbremst:
The method submit(Callable<T>) in the type ExecutorService is not applicable for the arguments (List<Callable<DivisorResult>>)

->Über diese musst du dann nur noch iterieren -machst du schon- und die Ergebnisse einsammeln und ->das maximum raussuchen - das machst du noch nicht, bisher ignorierst du das berechnete, und gibst ->einfach 0,0 zurück.
Diesen Teil habe ich noch nicht fertig implementiert, sollte aber sobald ich das Multithreading zum laufen gebracht habe lösbar sein.

Ich Danke dir vielmal für dein Feedback, der aktuelle Stand entspricht immer noch dem vorangegangenen Code.
 

mrBrown

Super-Moderator
Mitarbeiter
- Genau dort ist auch der Punkt wo ich nun stecken geblieben bin. Wie ich am besten die Werte Verteilung in die Callables mache.
Naja, jeder Wert ein Callable, im Zweifel eine for-Schleife von 100-115 und für jeden ein Callable erstellen.

Am einfachsten, indem du Callable in einer eigenen Klasse implementierst, die als variable den int bekommt, für den sie Teiler berechnen soll ;)

Bei der Liste, welche die entsprechenden Callables aufruft, habe ich das Problem das dort ein Syntax Fehler auftaucht, welcher mich etwas ausbremst:
The method submit(Callable<T>) in the type ExecutorService is not applicable for the arguments (List<Callable<DivisorResult>>)
ExecutorService#invokeAll ;)
 

zac12

Mitglied
Danke für dein Feedback:)
Naja, jeder Wert ein Callable, im Zweifel eine for-Schleife von 100-115 und für jeden ein Callable erstellen.



Am einfachsten, indem du Callable in einer eigenen Klasse implementierst, die als variable den int bekommt, für den sie Teiler berechnen soll ;)


ExecutorService#invokeAll ;)

Ich möchte aber n Threads erstellen, dies kann muss aber nicht der Anzahl von zu berechnenden Zahlen entsprechen. für das Intervall 100-115 könnten auch nur 5 Threads oder 7 erstellt werden. Somit kann ich die entsprechenden Werte nicht direkt einem Callable mitgeben.

:) Danke-> invokeALL:)
 

mrBrown

Super-Moderator
Mitarbeiter
Ich möchte aber n Threads erstellen, dies kann muss aber nicht der Anzahl von zu berechnenden Zahlen entsprechen. für das Intervall 100-115 könnten auch nur 5 Threads oder 7 erstellt werden. Somit kann ich die entsprechenden Werte nicht direkt einem Callable mitgeben.
Doch, Anzahl der Threads ist unabhängig von der Anzahl der Callables ;)

Der ExecutorService nutzt eine gewisse Anzahl an Threads, die Callables werden dann passend drauf verteilt, wenns nur ein Thread ist, laufen zB alle nach einander ab
 

zac12

Mitglied
Doch, Anzahl der Threads ist unabhängig von der Anzahl der Callables ;)

Der ExecutorService nutzt eine gewisse Anzahl an Threads, die Callables werden dann passend drauf verteilt, wenns nur ein Thread ist, laufen zB alle nach einander ab


Danke, dies war mein riesiger Denkfehler!, zusammen mit dem invokeAll!
Danke nun funktioniertes wie es soll!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Executor Java Basics - Anfänger-Themen 3
D Cannot find JUnit.framework Java Basics - Anfänger-Themen 1
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
T Neuling erbittet Meinung zu Framework Java Basics - Anfänger-Themen 11
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
O Framework/Library Java Basics - Anfänger-Themen 5
O Framework Java Basics - Anfänger-Themen 2
N Umgang mit Domain Framework Java Basics - Anfänger-Themen 2
D Erste Schritte Welches Framework passt zu mir ? Java Basics - Anfänger-Themen 1
M Java Media Framework installieren - Win 7 Java Basics - Anfänger-Themen 6
F Java Media Framework Java Basics - Anfänger-Themen 5
D script.aculo.us requires the Prototype JavaScript framework >= 1.6.0.2 Java Basics - Anfänger-Themen 2
Dit_ Framework was ist das ? Java Basics - Anfänger-Themen 6
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
2 Framework mit Annotations Java Basics - Anfänger-Themen 22
X Ist das Spring Framework Einsteigerfreundlich? Java Basics - Anfänger-Themen 2
M Webseiten mit oder ohne Framework Java Basics - Anfänger-Themen 5
G Framework für eine Flexible Oberfläche! Java Basics - Anfänger-Themen 9
M Was ist ein FrameWork Java Basics - Anfänger-Themen 5
T Frage zu Vererbung beim Collection-Framework Java Basics - Anfänger-Themen 4
G Framework für Kategorien Java Basics - Anfänger-Themen 2
V Web Framework Java Basics - Anfänger-Themen 4
G Was ist ein Framework Java Basics - Anfänger-Themen 1
V Framework usw Java Basics - Anfänger-Themen 7
B Browsergame - welches Framework? Java Basics - Anfänger-Themen 2
M Source Code von Collection Framework, etc. Java Basics - Anfänger-Themen 3
G Collection Framework Java Basics - Anfänger-Themen 8
L [Web/Servlets] welches Framework verwenden? Java Basics - Anfänger-Themen 10
B schon mal mit JavaBeans Activation Framework gearbeitet? Java Basics - Anfänger-Themen 2
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Mikejr Java Berg aufgabe Java Basics - Anfänger-Themen 6
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Ich zerbreche mit den kopf an einer Aufgabe Java Basics - Anfänger-Themen 61
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
T Informatik Studium Aufgabe Java Basics - Anfänger-Themen 4
T Aufgabe Informatik Studium Java Basics - Anfänger-Themen 10
I matrix aufgabe Java Basics - Anfänger-Themen 22
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
9 Aufgabe Bruttorechner Java Basics - Anfänger-Themen 14
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
StevenGG Aufgabe im Studium Java Basics - Anfänger-Themen 36
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
J OOP-Aufgabe Java Basics - Anfänger-Themen 15
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 18
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben