Bin ich die einzige Person, die es geschafft hat bei dieser Klausur durchzufallen...? :/
Nö😅
Hmm. Ist die Nachholklausur bei euch auf wuestudy unter Belegungen zu sehen? Bei mir ist die plötzlich nicht mehr da :o Ist da sbei euch auch so oder sollte ich mich da ans Prüfungsamt wenden? :) Danke für die Antworten!
Bei mir wird es nicht unter Leistungen aufgeführt, jedoch schon unter Studienservice->Bescheinigungen->Bescheinigung über angemeldete Prüfungen mit Verifikationsnummer, Sommersemester 2020 Und nur um sicherzugehen, die Ergebnisse sind noch nicht raus? (aka meine Klausur wurde verloren o.ä.)
Am Samstag ist schon die Klausur, weis jemand wie man sich dafür anmeldet?
View 6 more comments
Anonymer Brief, du hast es auf den Punkt gebracht. Sehe ich absolut genauso. Abgesehen davon, dass zwischen Bekanntgabe des Klausurtermins und der Frage hier auch nochmal mehr als ne Woche lag, was auch sehr bezeichnend ist...
Wie kann man eigentlich so lost sein?
Kann mir das jemand erklären? 😅
View 1 more comment
Zur Erklärung des Code: Es wird durch das Feld iteriert (aufpassen auf die Schrittweite i+=2, dadurch wird nur das 0. und 2. Element betrachtet) , der Wert an der digits[i] wird auf den um 1 nach links geshifteten (also *2) Wert von digits[i] gesetzt. (Beachte hierbei die unterschiedlichen Notationen, die das gleiche bedeuten!) Wenn der Wert größer als 9 ist, wird 9 subtrahiert. Nachdem das passiert ist, werden dieses Mal alle Feldelemente addiert und schlussendlich modulo 10 gerechnet.
Vielen Dank 😊
Wo ist denn Kohort A und Kohort B?
Die Leute, die in A sind sollen zu dem angegebenen Zeitpunkt da sein und die von B zu dem anderen. Nicht mischen! Da geht es um die Hygieneregeln wie in der E-Mail vorher genauer erklärt.
Wann ist die Klausur?
Die Nachklausur findet am Samstag dem 13.06.2020 von 14 bis 15 Uhr in der Posthalle statt.
Danke! :)
Weiß jemand schon was bezüglich der GdP Nachprüfung, ob diese regulär stattfindet oder nicht?
View 2 more comments
Das ist für alle ganz schwer abzuschätzen, jede Aussage kann morgen wieder anders sein. Also einfach abwarten, auch wenn es schwer fällt ;)
Im April finden definitiv keine Klausuren statt.
Noten sind draußen
Hallo! Jemand weisst, wenn die Klausurergebnisse erscheinen werden?
View 2 more comments
Bei mir gibt es auch keine Note
@Anonymes Känguru : Wie du selbst sagst war das leider nur eine Infomail zur Klausureinsicht.
Ich hatte ein Verständsnisproblem bei der Stack Aufgabe. In der Aufgabenstellung stand, dass Index immer auf das oberste Stackelement zeigt. ABER der Index war ja anfangs auf 0. Bei der push Methode sollte man zuerst den Integer in das Array einfügen (also values[index} = int), und danach den Index inkrementieren (im ersten Fall würde dann der Index 1 sein). Bei der pop Methode stand dann, dass man zuerst das oberste Element zurückgeben und dann den Index anpassen sollte. Das heißt ja eigentlich, dass ich den Index zuerst eins runtersetzen muss (values[--index]), da er ja durch die push Methode auf ein leeres Feld zeigt (im ersten Fall 1, obwohl nur in 0 ein Element drin ist), oder habe ich da einen Denkfehler drin?
Nein, das passt so. In der Aufgabenstellung stand ja nicht, in welcher Reihenfolge man das machen muss ;)
Kann man ein Byte ohne expliziten Cast in einen double schreiben oder geht das nur mit explizitem Cast?
Es ergeht folgendes Beispiel: byte myb; double myD; myD = myb; geht ohne Probleme myb = (byte) myD; mit Datenverlust Konsultiere dafür am Besten auch nochmal die Theoriezusammenfassung
mache ich. Danke.
Wie sieht das eig mit c++ aus, kommt das dran? Ich glaube mich zu erinnern dass laut den tutoren wsl c++ komplett weggelassen wird
View 1 more comment
C++ schreiben wird nicht verlangt. Komplett ausgeschlossen ist es meines Wissens nach aber nicht.
meines Wissens nach auch. Es kann aber gut sein bzw. ist wahrscheinlich, dass Präzendenzregeln für C oder C++ drankommen werden.
In C gibt es doch gar keine Klassen oder?
In C gibt es keine Klassen, in C++ schon. Sind zwei verschiedene Programmiersprachen.
Sind sogar 2 verschiedene Paradigmen, also Denkweisen über Programmiersprachen. C ist prozedural, d.h. da stehen die Methoden und nicht so sehr die Modularität und Visualisierung der Realität im Mittelpunkt, wie bei OOP.
Kommentar hierzu untendrunter oder oberhalb Zu 3.6 Bitoperationen ..... (Hatte nur vergessen die Stelle im Text zu markieren)
Wie lange ist die Klausur denn? In WueCampus steht etwas von 1,5 Stunden, in den Folien von 60 Minuten... Und ist es immernoch so, dass man beide Teile "bestehen" muss um ingesamt bestanden zu haben? Das stand bei einer Altklausur dabei
View 1 more comment
steht alles aber auch nochmal in den letzten beiden Folien des letzten Foliensatzes
Wo gibt's denn eine Altklausur, bei der das dabei steht? Hier ist die neueste ja vom SS17.
No area was marked for this question
Zu 3.6 Bitoperationen: a >> b : auffüllen mit höchstem Bit meistens 1 sollte NICHT stimmen, es geht, wenn ich es richt verstanden habe, nicht um den höchsten Bit-Wert sondern um das Bit mit dem höchsten Wert, d.h.: bei einem 8 bit Wort, um das Bit mit dem Wert 2^7 Dies liegt daran, dass damit bei negativen wie bei positiven Werten: (a >> b) == (a*(2^-b)) gegeben ist Hier zwei Beispiele zur Verdeutlichung: a = 32, b = 2 0010 0000 >> 2 == 0000 1000 32*(2^(-2)) == 32/4 == 8 a = -32, b = 2 1110 0000 >> 2 == 1111 1000 -32*(2^(-2)) == -32/4 == -8 So zumindest hatte ich das verstanden
Ja, damit hast du absolut Recht. Das ist ein Fehler meinerseits im Dokument bzw sehr schlecht von mir ausgedrückt! Kannst du es im Dokument noch irgendwie markieren, damit andere es gleich sehen?
@Anonymer Mond: Danke für die tolle Zusammenfassung, ist eine super Lernhilfe
Weiß jemand wofür es Komparatoren gibt? Ich verstehe nicht so ganz, wozu die gut sein sollen.
View 4 more comments
Und last but not least: den Vergleich mittels Komparatoren nutzt man z.B. zum Sortieren, um auch noch eine Anwendung zu benennen.
Dankeschön ihr alle!
Hat noch jemand einen Tipp was man lernen könnte, um zu bestehen? Hab leider bisschen zu spät angefangen..Die Pabs Aufgaben hab ich zwar bis auf die letze gemacht, bin mir aber trotzdem nicht sicher, ob es reicht...
Die ganzen C-Sachen und das Theorie PDF aus Study-Drive
Und die Altklausuren geben einen ganz guten Eindruck, wie die Klausur ungefähr aussehen wird.
Hi, hat jmd die Lösung von dem letzten schriftlichen Übungsblatt ?? Wäre super, wenn jmd es mir schickt oder einfach hier rein postet
View 5 more comments
Ich glaube, das ist relativ egal. Kommt ja eigentlich auf das Selbe raus
Laut Regeln bekommt jeder Pointer seine eigene Zeile.
No area was marked for this question
Lösungen zu diesen Aufgaben gibt's auch auf den letzten Übungsfolien. Da sind sie dann auch vollständig und korrekt.
Ich hab übrigens mal Karteikarten erstellt, um ein bisschen Theorie Wissen noch zu üben.
Stimmt das so? Was ist mit dem * zwischen const und double?
Also d ist ein read only Pointer auf eine double Referenz?!
Wenn jemand die Altklausuraufgabe aus dem Wintersemester 2015/16 mit dem ArgExecutor selbst überprüfen will, hier der abgetippte Code: import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; public final class ArgExecutor { static HashMap> map = new HashMap>(); public static double parse(String arg){ map.clear(); String[] args = arg.split(" "); int ki = 0; for(int i = 1; i argL; if(map.containsKey(k)){ argL = map.get(k); } else{ argL = new ArrayList(); } argL.addAll(Arrays.asList(args)); map.put(k,argL); } private static int parseParams(String[] args, int i, int ki){ String p = args[ki]; putOrAppend(p,Arrays.copyOfRange(args,ki+1,i)); return i; } }
Kennt jemand eine empfehlenswerte Seite für Übungen zu logischen Ausdrücken / Operatoren? Danke :)
IntelliJ, da kannst du dir ja ein paar Sachen eingeben und ausführen lassen
Wie soll ich das verstehen? Wenn wir jetzt bspw folgendes implementieren: int[] array = [2]; array[0] = 1; array[1] = array[0] array[1] = 3; Dann müsste ja theoretisch array[0] auch 3 sein, was aber zumindest wenn ich es in IntelliJ teste nicht der Fall ist. Was verstehe ich falsch?
View 5 more comments
Ah huch deine Antwort wurde mir gar nicht angezeigt. Dann ist ja alles super :-)
Jo, hatte ich schon, wurde mir trotzdem nicht so ganz klar. Aber danke für den Hinweis
Float und Double müssen getauscht werden. Float hat einen kleineren Wertebereich als Double (32 Bit vs. 64 Bit)
Welche Foliensätze kommen außer c++ nicht dran? ich meine gehört zu haben funktionale programmierung und skriptsprachen seien nicht mehr relevant?
View 3 more comments
Der Unterschied zwischen skript- und kompilierbaren Sprachen Ich denke nicht, dass c++ ausgeschlossen wurde. Aber eigentlich dürfte das im Vergleich zu C und Java sowieso nicht viel gewertet werden, da das nur ein kleines Kapitel war.
Soweit ich weiß, Präsendenzregeln in C++ ist auch relevant
Heißt das hier: y ist ein Pointer auf einen Pointer auf ein double? Oder wie wird das gelesen?
Ja müsste genau so sein
Finden diese Woche noch Tutorien und die Vorlesung statt?
nope
Findet morgen die Vorlesung statt?
Nein, die fällt aus
Könnte jemand, der die PDD Aufgabe geschafft hat vielleicht seinen Code bereitstellen? Ich würde gerne wissen was ich falsch gemacht habe. Danke.
Wir haben ausschließlich Klausurvorbereitung betrieben, da die Zeit zu knapp war.
Dann würde ich dir empfehlen, in eine andere Übung zu gehen. Code veröffentlichen, ist ungern gesehen
In der Klasse "Player" wird mir die Zeile "protected final List hand;" rot unterstrichen und gesagt "Variable 'hand' might not have been initialized". Aber die Zeile steht ja so in der Aufgabenstellung...
Ja das ist auch korrekt so. Du musst dafür sorgen, dass egal was passiert, immer für jeden Player eine "hand" da ist. Du greifst ja schließlich in Methoden auf sie zu
Hm. Ich weiß ja nicht. Aber könnte es möglicherweise sein (nur vielleicht), dass du "hand" nicht initialisierst?
Wie habt ihr eine zufällige erste Karte für den Ablagestapel ausgewählt, bei Standard52? Ich nutze die Stack-Datenstruktur. Gibt es dafür eine Methode, um ein zufälliges Objekt aus dem Stack nach "oben" zu schieben? Danke schonmal :)
View 4 more comments
Ich glaube, du hast beim Lesen der Aufgabenstellung nicht ganz aufgepasst ;) Also: Zunächst einmal verteilst du deine Karten aus dem erstellten Deck einfach nach dem Erstellen (also z.B. im Konstruktor) auf die Stapel. Dabei muss du nach Aufgabenstellung vorgehen, also kommen alle Karte bis auf eine auf den Nachziehstapel und diese eine kommt auf den Ablagestapel. Den Satz den du zitierst wird relevant, wenn es um die Methode take(Card) geht. Dann musst du nämlich immer überprüfen, ob der Nachziehstapel leer ist. Falls ja (und die OutOfCardsException nicht geworfen wird, das musst du auch implementieren!), poppst du die oberste Karte vom Ablagestapel, speicherst sie dir in einer temporären Variable, shuffelst den übriggebliebenen Ablagestapel und pushst in komplett auf den Nachziehstapel, damit dieser wieder voll ist. Anschließend legst du die temporäre Karte wieder auf den Ablagestapel, der jetzt nurnoch diese enthalten sollte
vielen Dank für deine ausführliche Antwort, du hast mir sehr geholfen!
Wie überschreibe ich denn in der Klasse Card die Methoden? Find dazu nichts in den Vorlesungsfolien...
View 1 more comment
Danke. Aber wie bekomme ich in der überschriebenen equals Methode dann z.b. die Farbe von o? o.suit() geht ja nicht...
Naja, du kannst es casten
Wie habt ihr die funktionen valid/invalidMove implementiert? Ich komm da nicht weiter. Speichert ihr die übergebenen Karten in einer Liste oder ähnlichem ab? Ich hab mir bei simplePlayer eine ExtendableRule erstellt durch die Basisregel. Die rufe ich dann in den funktionen durch den übergebenen Player auf. Ich bin mir aber nicht sicher ob das so richtig ist.
Ich bin mir nicht sicher, ob ich deine Frage richtig verstehe. Hast du denn schon eine Wissensbasis in ExtensibleRule? Falls ja funktioniert es so, dass du nach jedem Zug bei allen Spielern ihre valid/invalidMove (je nachdem ob der Zug korrekt oder inkorrekt war) aufrufst und diese sollte dann die Kombination aus top und played in ihrer Wissensbasis ablegen
Wie prüfe ich den bei der Methode start() in game, ob eine Karte gegen eine Regel verstöst oder nicht? Bei der eigenen Regel des spielers, kann man ja player.invent().test(deck.top(),played); machen. Ich dachte mir man könnte das ja mit der testAllowed von ExtensibleRules machen. Aber ich komm nicht drauf wie man die aufrufen kann. Habt ihr das anders gelöst?
Das kann man ab einem gewissen Status des Spiels durchaus machen, aber nicht in der Anfangsphase. Denn dann ist die Wissensbasis eines jeden Spielers noch leer, da er ja die Regeln der anderen Spieler nicht kennt. Dementsprechend ist hier die Lösungsidee durch alle Spieler durchzugehen, ihre invent() Methode aufzurufen und dann zu test. Dazu kannst du zum Beispiel eine foreach-Schleife verwenden, wenn du dir leichter tun möchtest. Allgemein gilt: Du kannst testAllowed von jedem Player durchaus aufrufen, indem du dir das extensibleRules Objekt von deinem/einem Spieler geben lässt und dann darauf testAllowed() aufrufst. Ist aber unschön und führt bei dieser Aufgabe - wie oben aufgeführt - auch nicht zu einer korrekten Lösung
Danke hat geklappt!
Kann mir jemand einen Tipp geben, wie ich ein Deck in "Standard52" erstellen kann? Ich verstehe nicht so ganz, was ich in die singleDeck-Methode schreiben soll und was in den Klassenrumpf. Danke :)
View 2 more comments
Wenn du es dir kompliziert machen willst, dann machst du es mit ArrayLists. Ein kleiner Tipp: Es gibt eine Klasse namens "Stack", die arbeitet genau wie ein Stapel, vielleicht hilft dir das weiter ;)
ok, vielen Dank für den Tipp! Ich schau mir das mal an
"Die Werte entsprechen dabei den Zahlenwerten mit Ass = 1, Bube = 11, Dame = 12 und König = 13." Wie habt ihr in der Klasse "Card" das hier gelöst? Value kann ja die Werte 1 bis max. 13 annehmen. Kann man das irgendwie darstellen? Danke für jeden Tipp :)
Das brauchst du gar nicht machen, PABS gibt dir keine falschen Karten ;) Ansonsten kannst es im Konstruktor mit if abfangen wenn du es unbedingt willst :)
ok, danke. Habe das jetzt über eine for-Schleife (i<13) in der Klasse Standard52 gelöst.
Besteht hier jmd den Test Simpleplayer.play und könnte mir bei der fehlermeldung Player didnt play as expected weiterhelfen?
Dann passt vermutlich etwas bei deinen Präzedenregeln nicht. Entfernst du die Karten, nachdem du sie spielst?
Um deine Frage zu beantworten: Ja
Kann mir bitte jemand erklären, wie ich in der Klasse SimplePlayer die Methoden "validMove" und "invalidMove" benutze? Bis jetzt führe ich darin nur "addAllowed" und "addForbidden" aus. Wofür brauche ich den übergebenen Player? Also was sollen die Methoden genau machen? und 2. In der Klasse "Game", Methode "start" soll man ja nach jedem Zug alle Spieler über die gerade gespielte Karte informieren. Aber wenn ich eine Karte doch ablege, liegt diese doch ganz oben auf den Ablagestapel und ist für jeden Spieler sichtbar, wie und warum muss ich die anderen Spieler darüber informieren? Danke :)
View 4 more comments
Nein natürlich nicht, jeder hat seine eigene. Aber jeder Player hat natürlich eine, deshalb muss es im Konstruktor vom Player stehen
aber in jeder steht das gleiche drin:)
Wie vergleicht ihr in der Klasse ExtensibleRules bei der test Methode die base mit den Cards Top und played? Um equals zu benutzen müste man ja aus top und played ein BiPredicate machen, da weiß ich nicht wie das gehen soll oder habt ihr das anders gelöst?
View 3 more comments
Naja das ist nicht wirklich zielführend. Er muss ja überprüfen, ob genau die aktuelle Kombination drin ist und nicht, ob das Element lediglich drin ist. Es kann ja sein, dass zum Beispiel 5 Diamond nicht erlaubt ist, wenn 7 Diamond als Top ist. Aber wenn zum Beispiel 7 Spades Top ist, darf man 5 Diamond spielen. Nach deiner Interpretation Paket, würde es falsch zurückgeben, weil 5 Diamond ja gemappt ist. Das wäre aber nicht im Sinne des Spiels
@anonymeExplosion doch funktioniert so, die containsmethode einer hashmap vergleicht immer den key UND den Value. also genau die kombination.
Kann mir einer sagen, welchen Datentyp man verwenden muss für die Darstellungen der Wissensbasen
View 2 more comments
Man würde natürlich zwei HashMaps verwenden ;)
wieso sollte Card,Card in einer map nicht gehen?
Hatte jemand bei der aktuellen Aufgabe schon das Problem, dass im Test AllTogether2 zu selten gewonnen wurde (konkret 15x) und kann mir da vielleicht bei der Lösung weiterhelfen?
Hallo, ich habe eine Frage zu der Test-Methode der KLassen Rules/ExtensibleRules... was macht die Testmethode, also wie kann ich überprüfen ob die kombination den Regeln entspricht?
Sie testet deine Methode auf eine Regel (ich meine mich zu erinnern, es war u.a. die von SimplePlayer) mit einer Kombination aus einer oberen und einer gespielten Karte
Hey, kann mir vll jemand bei der neuen Programmieraufgabe auf die Sprünge helfen? In der Klasse Standard52 soll man ja mit "public static Deck singleDeck()" ein Kartenstapel erzeugen, wie sieht dieser Kartenstapel aus? Meine erste Idee war es ein Stack mit allen Karten zu erzeugen. Aber das kann ich ja nicht als Deck returnen. Also ich versteh nicht, wie ich mehrere Karten als ein Deck darstellen kann. Danke:)
Naja, wenn du die Aufgabenstellung genau liest, brauchst du ja einen Ablagestapel und einen Nachziehstapel, den könnte man ja im Konstruktor von Standard52 anlegen und dann wäre er in dem Objekt enthalten. Aufgrund der Vererbung ist Standard52 ja dann auch ein Deck
Okay, dann werde ich mal versuchen die zwei Stapel als Stack in den Konstruktor zu implementieren. Danke :)
Ich habe eine Frage zur Product-Klasse: In der evaluate-Methode habe ich folgenden Code: return factor1.evaluate(x) * factor2.evaluate(x); factor1&2 habe ich natürlich als Variable weiter oben deklariert. In meiner Sum-Klasse habe ich die gleiche Zeile (statt factor, summand und statt * ein +), und da klappt es auch. Sollte das hier nicht auch funktionieren? Ist ja eigentlich egal ob ich den Wert addiere oder multipliziere... Danke für jeden Hinweis :)
View 3 more comments
mmhm, ok. Danke für den Hinweis :) Aber dann kann der Fehler ja nur in der Sum-Klasse sein?
Problem gelöst, danke @Notizbuch ;)
Wurde die Lösung zur Labyrinth Aufgabe letzte Woche schon besprochen?
Ja wurde sie, in der Übung
Ich habe eine grundlegende Verständnisfrage. Ich hatte überlegt in der Klasse Sum, zunächst die Ableitung der ersten Funktion (summand1) und dann die Ableitung der zweiten Funktion (summand2) durchzuführen und das Ergebnis dann irgendwie zusammenzutragen. Woher weis ich aber, was das für Arten von Funktionen sind und wie diese dann dementsprechend abgeleitet werden müssen? Ich glaube ich habe den Einsatz und Sinn der Constant-, und Identity-Klasse noch nicht ganz verstanden. Kann mir da bitte jemand weiterhelfen? Danke :)
View 1 more comment
Du musst nicht wissen, was für eine Funktion das ist, das ist das tolle am Interface. Alle deine Unterfunktionen (also z.B. Constant, Identity, Cosine, usw) implementieren ja das Interface Function. Das heißt, dass sie die Methoden differentiate und evaluate implementieren müssen, sonst wirft der Compiler Fehler. Dadurch kannst du einfach den Code schreiben, den Paket geschrieben hat und er wird funktionieren!
Ok, jetzt versteh ich es zumindest ein bisschen besser. Vielen Dank ;)
Kann mir bitte jemand erklären, was man bei der Differentialrechnungsaufgabe, bei public Function differentiate() Zurückgibt? Es muss ja eigentlich ne Funktion sein, aber wie kann ich da z.B. bei Constant eine 0 als so eine Function Returnen? Danke :)
View 27 more comments
du musst in der methode dann alle funktionen zusammensetzeb (zb als summe) und dann die summe zurückgeben:)
Zu deiner zweiten Frage mit Identity(). Das ist einfach die Funktion f(x) = x. und auch nur diese, wenn du jetzt z.B. 2x darstellen möchtest, musst du das als Produkt aus Constant(2) und Identity() machen
Load more