Programmierung

at Universität Duisburg-Essen

Join course
901
Next exam
JULY 19
Discussion
Documents
Flashcards
Hat jemand schon mal das Zusatztestat geschrieben und kann berichten, was ungefähr bei ihm dran kam? Ich brauche noch 45 Punkte zur Zulassung :O
Alle Aufgaben, die auch in den vorherigen Testat 1-4 auch gekommen sind kommen dran. Ich hatte letztes Jahr auch den Zusatzttestat geschrieben und habe 50 Punkte bekommen
Selcuk, kannst du dich erinnern was dran kam?
Weiß jemand wo die Fachschaft von Programmierung ist?
View 11 more comments
? Ich habe beim Lesen gehirnzellen verloren
Dann hast du wohl noch nie etwas von Ironie gehört.
Besteht noch die Chance, dass die Testatergebnisse heute noch veröffentlicht werden? Oder müssen wir bis Freitag warten? :)
Die Ergebnisse sind draußen.
Hi! Ist es richtig, dass das Zusatztestat Aufgaben zu allen Themen der ersten 3 Testate abfragt? Oder kriegt jeder Aufgaben zu genau dem Testat, was er verpasst hat?
View 2 more comments
dann erschließt sich mir der Sinn deiner Frage nicht wirklich 😅
ja ein freund meinte halt was anderes..
Kann jemand eventuell seinen Code schicken wie er die Aufgaben im Testat gelöst hat? :S
View 16 more comments
//evtl. so könnte das aussehen import java.io.*; import java.util.ArrayList; public class StringList { ArrayList a=new ArrayList<>(); public void write(BufferedWriter wr,ArrayListb) { for(T t:b) { try { wr.write(t.toString()+"\r\n"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public ArrayList read(BufferedReader br,ArrayListb) throws IOException { ArrayList h=new ArrayList<>(); String line ; while((line= br.readLine())!=null) { h.add(line); } return h; } public static void main(String[] args) throws IOException { // TODO Auto-generated method stub ArrayList shana=new ArrayList<>(); shana.add("Hi"); shana.add("Bye"); // FileWriter fl =new FileWriter("C:/Users/Kille/OneDrive/Desktop/file4.txt") ; //Hier Variante 1 zum Writen // BufferedWriter w=new BufferedWriter (fl); // StringList bi=new StringList<>(); // bi.write(w, shana); // // w.close(); //Hier Variante 2 wie ich es auch im MP4 gemacht hatte BufferedWriter writer=new BufferedWriter(new FileWriter(new File("C:/Users/Kille/OneDrive/Desktop/test5.txt"))); StringListstringList=new StringList<>(); stringList.write(writer, shana); writer.close(); //!!Dateipfad ist hier mein Desktop was man bei bei sich Ändern muss!! BufferedReader reader=new BufferedReader(new FileReader(new File("C:/Users/Kille/OneDrive/Desktop/test5.txt"))); ArrayListstringLists=stringList.read(reader, shana); reader.close(); for(String str:stringLists) { System.out.println(str.toString()); } } }
danke , hat mir geholfen heute
Könnte es sein, dass wir im Testat auch eigene Testfälle schreiben müssen?
Einerseits könnte es sein, dass wir das machen müssen, weil wir es auch im Miniprojekt machen mussten. Andererseits wurde doch gesagt, dass die Main-Methode von Jack ignoriert wird. Und die Testate werden doch auch mit Jack kontrolliert, oder? Vielleicht mussten wir das im Miniprojekt nur so zur Übung machen, aber es wäre vielleicht trotzdem gut, wenn man weiß, wie man die Tests schreibt, zur Sicherheit.
Wir mussten übrigens keine Tests schreiben
Für alle die heute schreiben viel Glück und es währe sehr nett wenn ihr uns die Aufgaben beschreiben könntet!
View 9 more comments
Ja genau obs halt util oder klasse war
es war util
Bei welcher Übung sind wir grade? Danke :)
Übung 9 wird morgen besprochen :)
Kommt GUI auch vor? oder nur Exception und IO? Was sind erfahrungsberichte bisher bei dem 4. Testat? Eher schwer oder nicht? Fande die Exceptions nicht sonderlich schwer ... Oke die Main methode schreiben, war etwas aufwändig aber das wird ja wohl nicht vorkommen oder?
Nein, GUI's sind für das Testat und die Klausur nicht relevant.
Denkt ihr Maps sind ein Teil des Testats?
View 1 more comment
Ne aber exceptions und IOs kann man ja auch ohne Maps abfragen als kleine aufgaben aber ich glaub auch die kommen...
Ja, ich glaube auch, dass der Fokus auf exceptions und IOs liegt. Ich habe in der Vorlesung eine kurze Folie über TreeSet gefunden. Vielleicht kommen sie auf die Idee, das gleiche abzufragen nur mit einer anderen Datenstruktur, z.B. TreeSet. Deshalb habe ich mir mal genauer angeschaut, was das ist: https://www.geeksforgeeks.org/treeset-in-java-with-examples/
Ist es in dieser Zeile nicht notwendig die Methode writer.flush(); anzuwenden?
View 7 more comments
Über die write(...) Methoden gibst du an, was in deine Datei geschrieben werden soll (also die tatsächlichen Daten z.B. Strings) nun kann es jedoch sein, dass Teile dieser Daten für eine gewissen Zeit in einem Buffer verbleiben bevor sie dann tatsächlich auf die Festplatte geschrieben werden. Wenn du nun das Programm endest ohne den Stream geschlossen zu haben oder flush() ausgeführt zu haben, kann es passieren, dass noch Daten im Buffer waren als dein Programm beendet wurde und diese dann nicht gespeichert werden.
Danke, ich denke ich habs verstanden :)
Falls jemand irgendwelche Tipps hat zum 4. Miniprojekt, nützliche Links oder sonst irgendwelche Informationen, wäre es sehr hilfreich, wenn ihr diese teilen könntet. Finde es bis jetzt ziemlich schwer.
Wo haperts denn?
Ich glaube es wäre hilfreich zu verstehen welche Methodenpakete wir von Java brauchen für das Testat und wo wir die ganzen Methoden einschauen können. Mir und vielen weiter fällt es denke ich mal schwer, zu wissen wie und wann man diese Java Methoden verwendet.
Hallo zusammen, hat jemand bei Marron schon einmal das 4. Testat geschrieben, bzw. weiß was dort dran kommt?
1 Aufgabe : Exception 2 Aufgabe : IO also ähnlich wie im Miniprojekt die Write und read Methode Das ist das einzige was ich dazu finden konnte (aus der fb Gruppe)
Falls da jemand noch genauere Informationen hat, wäre ich sehr dankbar. Also wie genau die Aufgaben aussahen. Danke schon mal !
Wie lernt ihr für Programmierung? Schaut ihr in die Lösungen ,wenn ihr nicht weiterkommt oder versucht ihr es weiterhin selbst zu lösen?
Also anfangs habe ich immer auf die Lösung geschaut, weil es so frustrierend war, wenn ich überhaupt keine Ahnung hatte. Aber ich habe danach bemerkt, dass ich so nicht weiterkomme. Wenn ich eine neue Aufgabe begonnen habe, dann wusste ich überhaupt nicht, wie ich anfangen sollte. Deshalb habe ich aufgehört auf die Lösung zu schauen. Dann dauert es zwar Stunden, vielleicht auch Tage, bis ich die Lösung habe, aber dann muss man einfach früher anfangen und ich denke das ist eine gute Übung für die Klausur nicht sofort auf die Lösung zu schauen, denn da haben wir ja auch keine Lösungen. Und man kann Programmieren nicht auswendig lernen, d.h. wenn man immer in den Lösungen guckt, wird man nicht besser oder man wird sehr langsam besser programmieren können. Sagt jedenfalls das aus, was ich selbst bis jetzt mit Programmierung zu tun hatte....
weiß jemand ob bei marron schonmal die zulassung runter gesetzt wurde ? letztes semester wurde ja bei goedicke von 330 auf 300
View 3 more comments
Der soll mal auf 175 so viele habe ich nämlich hahahah
Wenn ihr die 200 nicht schafft dann besteht eh keine Hoffnung die Klausur zu bestehen 😩 so schwer wie er die immer stellt
Weiß schon jemand, wie man Aufgabe 2 von MP4 löst?
Nein, hänge gerade daran die values aus der Map auszulesen und in den BufferedWriter zu schreiben... Habe da noch keine Lösung wie ich die Werte zu den jewailigen keys bekomme. Falls da jemand einen Schritt weiter ist, wäre ich dankbar für einen Tipp
Wie findet ihr das MP4?
Wurde in der letzten Übung eigentlich die wirkliche Übung gemacht, oder hat er quasi die Generics Vorlesung gehalten? Er meinte ja irgendwie sowas in der Richtung, weil die Vorlesung dazu ausfiel
Letztes Mal kam Sascha Jungen, und nicht Marcus Handte, weil er wohl krank war, und er hat die Übung gemacht und nebenbei Generics eingeführt. Die Vorlesung zu Generics war ja heute.
Wenn ich beim Testat wegen Krankheit nicht teilnehmen kann muss ich eine Mail schicken, mich abmelden oder einfach nur ein Attest einreichen?
View 1 more comment
Weißt du zufällig auch auf welche Email? Danke :)
Atteste können in den Übungen und Fragestunden oder im Büro SA327 abgegeben werden
Weiß einer wo man das Attest für das Testat abgeben kann?
das steht im Moodle Kurs
Erinnert sich jemand noch an die Klausur von Marron? Wurden viele Theoriefragen gestellt, bzw. erinnert sich sogar jemand noch an welche?
Wie habt ihr das Testat heute gelöst ? (Stack)
View 3 more comments
War bei mir auch so :/
genau wie mp3, Aufgabenstellungen sind gar nicht klar. =(
Hi, mich würde es interessieren, ob Methoden wie getItemsAt() oder countElements() im Testat bereits vorgegeben sind? Abgesehen davon liegen mir nachfolgende Informationen vor. Bitte bestätigen oder ergänzen. 1. Aufgabe Listen* Drei Teilaufgaben: 1: String am Ende der Liste anfügen 2: Letzten String der Liste zurückgeben und löschen 3: Strings der Liste zählen —> Instanzvariablen selbst bestimmen 2. Aufgabe: Bäume Zwei Teilaufgaben: 1: man sollte durch jeden Teilbaum durchgehen und schauen ob der jeweilige Knoten besucht wurde, ansonsten soll der Knoten „besucht“ werden. 2. Anzahl der gleichen Knoten zurückgeben
View 7 more comments
Ich glaube, dass bei dem Stack nicht die gleichen Aufgaben vorkommen werden, wie bei Listen, denn theoretisch fügst du ja ein Element mit push ein und löschst es mit Pop, weil mit Pop nimmst du ja ein Element aus dem Stack raus, also ich vermute, du müsstest beim Stack die push und Pop Methode implementieren und vielleicht noch eine Möglichkeit finden, die Elemente zu zählen. Im MP3 ist das ja mit size gegeben. Wenn du im Testat morgen, wie heute auch die Klasse selbst erstellen musst, also ich meine damit, dass du die Instanzvariablen wählst, denke ich, dass du sowas wie size machen musst. Ansonsten ist push und Pop eigentlich äquivalent zu append und removeLastElement.
Die aufgb mit dem baum: wir mussten den baum durchgehen mit preorder und anzahl der knoten wiedergeben
könnten die leute aus der testatgruppe heute bitte erzählen was so drankam? Wäre sehr hilfreich, umso detaillierter umso besser
View 5 more comments
Danke Dir! :)
kein ding, viel Erfolg morgen!
Ich habe mir das nochmal angeschaut und es wäre hier wohl besser, wenn man items.length == 0 prüft und nicht items == null.
View 1 more comment
Mit items == null bekommt man in Jack nicht volle Punktzahl, und mit items.length == 0 schon..
Oh.. 😂 Okay danke für den Hinweis!!
Hay. Gibt es Konsequenzen, wenn ich beim Testat nicht erscheine? Oder wird es einfach als null Punkte bewertet?
View 3 more comments
if(n.E){return 0;}
🤦‍♂️
Eigentlich ist das dritte Miniprojekt nicht SOOO schwer, ABER es gib tausend Kleinigkeiten, wo man Fehler macht. Das nervt wirklich und es bringt kein spass. Und manche Aufgabenstellungen waren nicht klar fuer mich, dafür muss ich noch mal zum den Tutoren um die Fragen zu stellen. weil das mp3 zu riesig war, und wir zusammen zwei wichtige teil der Kurse (Rekursion und Verkettete Liste) in einem Miniprojekt bekommen haben, habe ich leider nicht geschafft alle Aufgaben zu machen und eine schöne Erklärung zu schreiben. =( Ich wünsche euch viel spass auf dem Testat, und viel Erfolg.
Weiß jemand was im dritten Testat letztes jahr drankam ?
View 10 more comments
meine Gruppe war Dienstag 11 Uhr
Wie würde man denn die Aufgabe 2 mit den Bäumen lösen? Gibt es dann bei einem Knoten zu dem leftChild, rightChild auch eine Instanzvariable visited zu Beispiel? Also die dann zum Beispiel true ist wenn es "besucht" ist und false, wenn nicht?
Mit dieser Methode ist JACK nicht ganz zufrieden, obwohl die Testfälle in Eclipse kein Fehler anzeigen, aber ich finde den Fehler nicht...
Die Rekursion in dieser Methode führt in manchen (bzw. fast allen) Situationen zu einer endlosen Anzahl an rekursiven Aufrufen. Wenn root != null ist und root.value != value dann wird immer wieder Zeile 93 oder 96 aufgerufen wobei in jedem Aufruf immer nur mit root verglichen wird. Ich würde die Aufgabe mit einer zweiten Methode lösen, die in der containsValue(int value) Methode aufgerufen wird: public boolean containsValue(int value) { return containsValue(value, root); } private boolean containsValue(int value, Node node) { if (node == null) return false; if (value == node.value) return true; if (value < node.value) return containsValue(value, node.leftChild); if (value > node.value) return containsValue(value, node.rightChild); return false; }
Danke, es funktioniert jetzt. :)
Welche Themen werden für das 4. Testat behandelt und was kam im letzten Jahr dran?
Letztes Jahr war es, meine ich, Vererbung. Für dieses Jahr bin ich mir noch nicht sicher, aber vermutlich wird es mit dem Programmierungsteil B zusammenhängen.
ich glaube es gab noch eine Aufgabe Exception
No area was marked for this question
@Murat Keine hast du auch die Lösung zu, 3 Miniprojekt?
wegen meiner Chefin habe ich nicht geschafft rechtzeitig alles machen. ich versuche heute alles bis ende machen und hochladen. Aber ich bin nicht sicher, dass ich schaffe Erklärungen auch schreiben.
kannst es auch ohne Erklärung hochladen. Meistens ist es auch selbst erklärend
Wem es hilft: die insertValue-Methode von der BinaryIntTree-Klasse(MP3) ist in den Vorlesungsfolien "Datenstrukturen", Folie 71.
Könnte jemand die Lösung zum Miniprojekt 3 hochladen?
View 1 more comment
Oppahansis Lösung ist ebenfalls nicht optimal, kriegt man keine 100 Punkte in Jack. Also Vorsicht.
https://github.com/chaosaxe/CS_MiniProject3/tree/master/MiniProjekt3/src Werde heute Abend denke ich die restlichen Methoden fertig stellen... falls ihr Verbesserungsvorschläge habt oder Fehler findet, sagt bitte bescheid.
Wie gut läuft es bei euch beim Miniprojekt 3 ?
Versteht einer von euch, was hier falsch ist? Das erste Element konnte entfernt werden, aber das Element am Index 1 nicht. Da kommt statt C immer null raus.
Gibt es hier auch Studenten die Programmieren zum Ersten mal belegen? Wie kommt ihr klar? Was macht ihr alles fürs Programmieren?
Gehöre zu denen die Programmierung zum ersten mal belegen. Soweit komme ich wohl mit dem Stoff gut klar, jedoch finde ich die Erklärungen zu z.B. Datenstrukturen momentan relativ schwach. Ohne externe Quellen hätte ich vermutlich ordentlich zu knacken.
Hat jmd schon das mp gelöst und könnte es hier reinstellen
Ich habe eine allgemeine Frage zur Vorlesung, die BWL‘er und Lehramtsstudenten werden nur Programmieren Teil A bestehen müssen, muss man dann weiterhin zur Vorlesung und Übung gehen, wenn Teil A schon durch genommen worden ist?
also nur als Tipp... Übung in Programmierung bringt dir auf jeden Fall eine bessere Note...
Hat jemand die jack aufgaben zu listen lösen können? Die aufgaben: grundfunktionen, liste mit integern und strings und die aufgabe erweiterte Funktionen?
Dankkeeee
Versteht ihr, wie wir die Aufgaben im Miniprojekt lösen sollen? In der ersten Aufgabe sollen wir ja die ArrayStringList Klasse vervollständigen, aber ich verstehe nicht wie... Der Konstruktor erstellt ein Ojekt aus der Klasse Object. Aber was bringt das? Das Objekt von der Klasse ArrayStringList muss doch das Array items enthalten oder nicht? Und wie sollen wir in den Methoden das Array vergrößern, wenn wir mit diesem Objekten arbeiten sollen. Ich habe zuerst alles mithilfe vom items-Array gemacht, aber jetzt bin ich verwirrt, weil die letzte Methode sagt man soll das Objekt in ein Array umwandeln, oder verstehe ich das falsch? Ist das alles falsch, wie ich das bis jetzt gemacht habe (s. Bild)? Schonmal danke für jeden Antwort!
View 4 more comments
Die Aufgabe finde ich auch komisch gestellt. Nun, gehen wir mal davon aus, dass wir tatsächlich ein Objekt vom Typ ArrayStringList zurückgeben sollen: Die reverseStringList()-Methode in deinem Bild sieht (fast) richtig aus. (die Bedingung j > 0 müsste heißen j >= 0, allerdings ist die Bedindung äquivalent zu i < countElements() deswegen lasse ich das jetzt mal weg). public StringList reverseStringList() { String[] neu = new String[items.length]; for (int i = 0, j = items.length - 1; i < items.length; i++, j--) { neu[i] = items[j]; } ArrayStringList reversed = new ArrayStringList(neu); return reversed; } In deinem Bild aus dem ersten Beitrag ist im Konstruktor ein zweiter Konstruktor im Kommentar definiert nämlich: public ArrayStringList(String[] items) { this.items = items; } Diesen könnten wir in der reverseStringList()-Methode verwenden und dem neuen ArrayStringList Objekt damit die invertierte Liste übergeben. Also in deinem letzten Bild müsste nach der for-Schleife das neue ArrayStringList Objekt erzeugt werden mit: ArrayStringList neueListe = new ArrayStringList(neu); Dann könntest du in der letzten Zeile mit: return neueListe; diese neu erstellte Liste zurückgeben.
Ok, dann mache ich es so, danke! :)
Im Miniprojekt steht bei manchen Methoden "//TODO: implement" und zum Beispiel bei countElement() steht das nicht drauf... Heißt das wir sollen die Methode nicht implementieren? Aber das ergibt eigentlich keinen Sinn, weil die Methode ohne Implementierung immer 0 zurückgeben würde.... was sagt ihr dazu? Ich hatte dasselbe Problem auch im Testat. Überall stand TODO, aber bei der einen Methode, ohne dessen Implementierung der Compiler Fehler nicht verschwunden ist, stand nichts von TODO...
Jap, hier musst du countElement() auf jedenfall ändern. Wie du ja bereits sagtest gibt es sonst einfach 0 zurück. Im Testat weiß ich es nicht, aber im zweifel einfach das machen was du für richtig hälst bzw. einfach probieren
Komisch, dass das bei manchen drauf steht und bei manchen nicht... danke für deine Antwort! :)
Jemand interesse an einer WhatsApp Gruppe in der man sich austauschen kann über die Miniprojekte etc?
Ja
Hat jemand eventuell Lösungansätze zu Aufgabe 2 vom 2. Testat? 🙏
View 3 more comments
Leider nein
das war gar nicht so schwer mit der if anweisung, habe da aber leider nur 4 von 5 richtig gehabt. Irgendwie hat es bei einer gehapert. Ich weiß aber nicht mehr 100% wie das war, es war aber etwas wie.... if(containItems(item)){ return false; } if(this.getDuration > maxDuration){ return false; } -> denke die 2. Aussage ist falsch, deswegen waren auch nur 4 von 5 richtig und nicht alle. Leider habe ich die rekursionsaufgabe nicht :/
Hey, warum muss hier [0] hin? Reicht es nicht wenn dort fields.length steht?
es ist ja ein zweidimensionales array und mit fields.length greifst du auf die spalten zu und mit fields[0].length auf die zeilen
"Dann gab es noch eine Methode mit den Parametern int startIndex und String Name. Du solltest mittels Rekursion (keine schleifen!) Ein vorgegebenes Array namens items (beinhaltet Bücher und staubfänger) durchsuchen, und zwar ab dem Index startIndex (also items[startIndex] ), wie viele Indexe es braucht bis der Parameter Name gleich dem items[startIndex].name ist. Falls es nie dazu kommt soll -1 zurückgegeben werden public compareItems(int startIndex, String name){ " Wie würdet ihr die Aufgabe lösen ?
View 5 more comments
Also zurückgegeben wird (generell in Java) immer nur ein Wert. Die Methode wie sie in der Aufgabenstellung definiert ist nimmt nur zwei Parameter an, da ich nicht weiß ob es erlaubt ist die Methodensignatur zu verändern habe ich die Methode compareItems überladen, d. h. eine neue Methode mit dem gleichen Namen aber unterschiedlichen Parametern definiert. In der ursprünglichen Methode compareItems(int startIndex, String name) wird nun einfach die überladene Methode compareItems(int step, int startIndex, String name) aufgerufen (mit step initial = 0) und dessen Rückgabe (ein einziger Wert vom Typ int) zurückgegeben. Man hätte alternativ auch int step als globale Variable anlegen können und diese dann mit jedem Aufruf der Methode um 1 erhöhen können aber beim Thema rekursion ist es häufig so dass man eine Methode überlädt und diese zu Beginn der rekursiven Berechnung in der Ursprungsmethode aufruft. (Oft ist die überladene Methode als private deklariert damit sie von außerhalb der Klasse nicht ausgeführt werden kann)
Danke. Du bist sehr gut im Erklären!
Bitte teilt eure Erfahrungen bezüglich des heutigen Testats. Eine Beschreibung der Aufgabenstellungen und eine Bewertung der Komplexität wäre super. :-)
View 6 more comments
Aufgabe 1
sehe auch nur eine abmeldung wenn ich sowas sehe haha
Hat jemand die Jackaufgabe 5 und 6 von Tastatur(Vererbung) gelöst?
Kann gerade irgendwie keine Dateien hochladen also hier als Text: #Input.java# //Aufgabe 1 public interface Input extends ElectricityDependence { void getInput(char input); } #Keyboard.java# //Aufgabe 2 public class Keyboard implements Input, Memory { private int batteryCharge; private Character[] storage; public Keyboard() { storage = new Character[10]; batteryCharge = 100; } // Zu bearbeitender Bereich: (Aufgaben 3-7) @Override public boolean needsToCharge() { return batteryCharge <= 10; } @Override public void charge() { this.batteryCharge = batteryCharge + 20 <= 100 ? batteryCharge + 20 : 100; } @Override public void getInput(char input) { if (needsToCharge()) { return; } for (int i = storage.length - 2; i >= 0; i--) { storage[i+1] = storage[i]; } storage[0] = input; this.batteryCharge -= 5; } @Override public Character getFirstChar() { if (needsToCharge() || storage[0] == null) { return null; } Character aktuelleEingabe = storage[0]; for (int i = 1; i < storage.length; i++) { storage[i-1] = storage[i]; } storage[storage.length - 1] = null; this.batteryCharge -= 4; return aktuelleEingabe; } @Override public void emptyMemory() { if (needsToCharge()) { return; } for (int i = 0; i < storage.length; i++) { storage[i] = null; } this.batteryCharge -= 2; } // Ende des zu bearbeitenden Bereiches } #Memory.java# // Aufgabe 1 public interface Memory extends ElectricityDependence { Character getFirstChar(); void emptyMemory(); }
Danke :)
Was genau ist mit Schnittstellen gemeint? Geht es da um getter und setter? Oder hat das irgendwas mit Interfaces zu tun?
View 1 more comment
Danke für den Link :)
Damit ist Interface gemeint
kann jmd mir bitte sagen wo ich die Auf2 von miniprojkt falsch gemacht habe?bei mir sieht die console so aus. danke im voraus :)
View 1 more comment
schient irgendwie noch falsch zu sein:((
Lass den obersten if-Ausdruck weg. Dann müsste es klappen.
Load more