# Java Übungsaufgaben und Musterlösungen im Netz ?



## Bullz (10. Sep 2012)

hallo, programmieren lernt man bekanntlich ja nicht beim Buch lesen sondern beim selber tun. 

habe schon einige Sites im Internet angefunden die zum Teil noch sehr alte Java Übungen angeboten haben. 3.0 ...  sage nicht dass das schlecht sein muss aber aktuellere Codebeispiele wären mir lieber...

vielleicht kennt wer von euch ( deutschsprachige ) Sites die Übungsaufgaben mit Lösungen für Java anbieten ...


----------



## Gonzo17 (10. Sep 2012)

Auf jeden Fall kannst du dir im Forum hier mal folgende Seite anschauen: http://www.java-forum.org/java-faq-beitraege/8431-ubersicht-faq.html

Ist zwar weniger eine Übung, aber kann trotzdem helfen, wenn du bestimmte Dinge lernen willst.

Ansonsten kannst du dir überlegen ob die Anschaffung eines Buches sinnvoll wäre. Manche Bücher haben Übungen, die passend zu dem aktuell behandelten Stoff gestellt werden. Ansonsten könntest du ja auch einfach den Weg gehen, dass du dir ein kleines Projekt suchst (zum Beispiel ein Adressbuch) und die dort anstehenden Aufgaben Schritt für Schritt selbst löst, bei Problemen eben zu dem entsprechenden Thema Informationen suchst.


----------



## Bullz (10. Sep 2012)

danke für den link ....  Beispiele habe ich dort aber keine gefunden.

habe auf amazon schon ein Buch bestellt. Programmieren lernen mit Java ... wo viele Beispiele drin sein sollten ...

nur hätte ich gern jetzt schon etwas um loszulegen ^^


----------



## Brixto (10. Sep 2012)

Du kannst dir mal CodingBat ansehen, hat mir für den Anfang sehr geholfen.
Jedoch sind hier nur Aufgaben zur Syntax und "einfachen" Datentypen, und zu OOP gibt es keine Aufgaben.
Aber ein Buch hast du ja schon bestellt ;-)


----------



## Bullz (10. Sep 2012)

joa super sowas ist schon klasse. Vielleicht kennt wer ja noch etwas


----------



## ARadauer (11. Sep 2012)

Ich bin der Meinung, dass es sehr schwer ist etwas zu lernen, wenn man die Musterlösung hat, überhaupt beim Programmieren. Du wirst es nicht schaffen, dir das bei zu bringen, dadurch dass du dir fremden Code ansiehst. Dadurch wird man vielleicht später mal besser und lernt was dazu, aber das Handwerk lernt man nur durchs machen und nicht durchs ansehen wie was gemacht wurde...


----------



## Bullz (11. Sep 2012)

ARadauer hat gesagt.:


> Ich bin der Meinung, dass es sehr schwer ist etwas zu lernen, wenn man die Musterlösung hat, überhaupt beim Programmieren. Du wirst es nicht schaffen, dir das bei zu bringen, dadurch dass du dir fremden Code ansiehst. Dadurch wird man vielleicht später mal besser und lernt was dazu, aber das Handwerk lernt man nur durchs machen und nicht durchs ansehen wie was gemacht wurde...



das ist mir klar  ich schau mir die Musterlösung auch nicht an... nur dann falls ich nicht weiterkomme. Aber bevor das passiert würdet ihr noch kräftig von meinen Probs hören


----------



## Templarthelast (11. Sep 2012)

Es gibt dieses Buch "Java 7: Übungen". Es würde zwar deine Anforderungen erfüllen, allerdings würde ich dir von der Nutzung dieses Buches anraten, denn mir hat es nicht wirklich geholfen. Stattdessen würde ich anfangen kleine Spiele zu programmieren. Dies hat den Vorteil, dass man schnell etwas "zum anfassen" hat und sich diese Systeme auch leicht erweitern lassen. Falls du bei einem Problem nicht weiter kommen solltest, kann man mit ein wenig Engament und eine Menge Sysouts die meisten Probleme lösen bzw. einfach hier mal fragen. 
Wie auch schon von ARadauer beschrieben solltest ud einfach anfangen zu programmieren, anstatt genaue Aufgaben zu lösen. Dabei ist es meiner Meinung nach am wichtigsten, das "Programmiererdenken" zu lernen. Damit bist du in der Lage dich einfach weiterzubilden.


----------



## Gonzo17 (11. Sep 2012)

Bullz hat gesagt.:


> danke für den link ....  Beispiele habe ich dort aber keine gefunden.



???:L

Einstieg: http://www.java-forum.org/einfuehrungen-erste-schritte/5853-einstieg-java.html

Auf jeden Fall interessant: 
http://www.java-forum.org/top-fragen/1350-vergleichen-strings.html
http://www.java-forum.org/einfuehrungen-erste-schritte/6623-arten-klassen.html

Etwas fortgeschrittener: http://www.java-forum.org/allgemeines/91829-mvc.html

Also ich sehe da schon einige Beispiele. Ist wie gesagt keine Aufgabe zum selbst lösen, aber es hilft sicherlich zum Verständnis bei Fragen zu einem bestimmten Thema.


----------



## sup? (11. Sep 2012)

Zum Java lernen empfehl ich "Java von Kopf bis Fuß". Da gibts einfache Erklärungen mit Übungen.   

Nur Übungsaufgaben gibts hier: Das Java-Praktikum: Aufgaben und Lösungen zum Programmierenlernen: Amazon.de: Reinhard Schiedermeier,Klaus Köhler: Bücher

Das ist halt dann aber schon ein bischen komplexer


----------



## Robokopp (11. Sep 2012)

Hallo

Google doch mal nach GdI Übungen . hin und wieder findet man da was von diversen unis

Gesendet von meinem GT-I9100 mit Tapatalk 2


----------



## F.S.WhiTeY (11. Sep 2012)

Moin,

jemand aus der Community hier hat eine Übungsaufgaben-Seite erstellt. Das System find ich ganz gut, weil man die Musterlösung erst einsehen kann wenn man selbst eine Lösung eingereicht hat. 

Ist noch nicht ganz so viel los da aber das kann man ja durch solche Posts ändern 

TRAIN your programmer

LG


----------



## Jango (11. Sep 2012)

Bullz hat gesagt.:


> hallo, programmieren lernt man bekanntlich ja nicht beim Buch lesen sondern beim selber tun.



Nicht ganz richtig. Durch das Lesen erlernt man Kenntnisse, die sofort und mehrmals in die Tat umzusetzen sind. Dann weiter lesen und wieder probieren.
Lesen von Fachbüchern ist wichtig! Wo soll man sonst die Grundkenntnisse herbekommen?


----------



## kaetzacoatl (11. Sep 2012)

Ich habe nach einem
Java-Kurs immer wieder
mit eclipse rumgespielt.
Sehr bald ist dann was
sinnvolles rausgekommen.
Ich bin dann irgendwann
auf gui programmierung
gekommen und konnte
dann schnell kleine Spiele
programmieren.
Ich habe kein einziges
Buch gelesen und auch
kaum ein Intener Toturial
zuende gebracht und
finde, dass ich jetzt schon
ganz gut programmieren kann.


----------



## Jango (12. Sep 2012)

kaetzacoatl hat gesagt.:


> Ich habe kein einziges
> Buch gelesen und auch
> kaum ein Intener Toturial
> zuende gebracht und
> ...



Was du denkst zu können, hat nichts mit handarbeitlicher Programmierung zu tun.
IDE's machen einem das Leben leicht, ohne die Grundkenntnisse dessen zu kennen, wie das Alles möglich ist. Vielleicht ein Segen für die, die das alltäglich für Geld machen müssen. Aber ich behaupte mal, 'programmieren' kannst du ohne null Grundkenntnisse nicht. Man nennt das auch 'klickibunti'. :noe:


----------



## kaetzacoatl (12. Sep 2012)

Ich wusste was ne Klasse ist.
Enum, Interface, innere Klasse,
abstracte Klasse und statische
Methoden hab ich mir durch
experimentieren selbst beigebracht.
Ohne eclipse hätt ich das nicht
geschafft.


----------



## Javinner (18. Sep 2017)

ARadauer hat gesagt.:


> Ich bin der Meinung, dass es sehr schwer ist etwas zu lernen, wenn man die Musterlösung hat, überhaupt beim Programmieren. Du wirst es nicht schaffen, dir das bei zu bringen, dadurch dass du dir fremden Code ansiehst. Dadurch wird man vielleicht später mal besser und lernt was dazu, aber das Handwerk lernt man nur durchs machen und nicht durchs ansehen wie was gemacht wurde...



Nicht unbedingt und kommt auf den Typ an.
Ich für mein Teil schaue mir sehr gerne zu Aufgaben auch die Lösungen anderer an. 
Ich bin der Meinung, dass die Vielfalt der Lösungswege erst die Denkweise zum positiven verändern und dem Verständnis für das Programmieren nur beste Dienste leistet. Natürlich nur, wenn man sich der Lösungen anderer nur zur Ergänzung, bzw. der Vielfalt der eigenen Lösungswege bedient. Letztendlich sind auch Übungsaufgaben die Lösungen anderer. Wichtig ist, und dabei muss ich an meinen alten Lehrer denken: Lernen braucht Zeit und
wenn man sich für so eine vielfältige Angelegenheit wie Programmieren entscheidet, sollte Zeit vorhanden sein.
Allein über die Schleifen kann man sagen, dass, wie bei Rom, tausend Wege zum Ziel führen und der Vielfalt
scheinen hier keine Grenzen gesetzt! Bzw. bietet die API schon ausgereifte Lösungswege, welche im 
Nachhinein einem aufzeigen, dass man die oder andere Aufgabe hätte mit viel weniger Schreibarbeit lösen können.

Das aktuelle Beispiel wäre der trinäre Operator. Vorgestern wusste ich nicht, was es ist. Im Nachhinein, 
eine sehr praktische Geschichte. Das folgende Beispiel zeigt auf, wie man mit drei verschiedenen Lösungen 
zu einem Ziel kommt. Die Aufgabe dabei ist, man soll die kleinste der drei Zahlen ausfindig machen.
Erste Lösung ist mein Verdienst, die nachfolgenden zwei stammen aus dem Buch und auf die Ideen wäre
ich ohne die Lösungen anderer nie drauf gekommen. Dabei sieht man deutlich, dass meine Lösung
sehr sperrig im Vergleich zu anderen ist.


```
/**
     * Ermittelt den kleinsten Wert der uebermittelten Werte;
     * Liefert den kleinsten Wert zurueck;
     * @param a Wert eins
     * @param b Wert zwei
     * @param c Wert drei
     * @return  Der kleinste Wert der Zahlen;
     */
    static long cosinusVergleichABC(long a, long b, long c)
    {
       
        long eins, zwei, drei;
        eins = a;
        zwei = b;
        drei = c;
        //Berechnung;
        if(eins <= zwei && eins <= drei)
        {
            return eins;
        } else if(zwei <= eins && zwei <= drei)
        {
            return zwei;
        } else
        {
            return drei;
        }
    }


   
    /**
     * alternative Lösung in einer Methode
     * Java ist auch eine Insel, 2.5.3 Der Bedingungsoperator;
     * trinaerer Operator;
     *
     * Wie man deutlich sehen kann, ist diese Loesung deutlich
     * uebersichtlicher und verstaendlicher, als die
     * Methode cosinusVergleichABC;
     */
    private static long minimalWertABC(long a, long b, long c)
    {
        return (a < b) ? Math.min(a, c) : Math.min(a, b);
    }


   
    /**
     * eine Dritte Loesungsmoeglichkeit;
     * diese bietet die Uebersicht, welche man sich stets wuenscht;
     */
    private static long minimalWert(long a, long b, long c)
    {
        return Math.min(Math.min(a, b), c);
    }
```


----------

