Prüfungsteilnehmer Geschrieben 26. April 2023 Geschrieben 26. April 2023 Hallo miteinander, ich mache hier mal für uns AEler ein Thema auf in dem wir die Lösungen von Teil 2 zusammentragen können. Ich denke vor allem relevant sind die Problemaufgaben 2 und 3. 2. Aufgabe: Wie sah euer Pseudocode aus? Habt ihr die Aufgabe behandelt als wäre ein Array / Liste übergeben worden? 3. Aufgabe: Welche Fehler habt ihr gefunden? Wie habt ihr diese korrigiert? Kam es nur mir so vor oder hat sich die Anweisungsabdeckungsaufgabe selbst beantwortet? Welchen Testfall habt ihr ergänzt? Ich bin gespannt auf euren Input Zitieren
testplayer975 Geschrieben 26. April 2023 Geschrieben 26. April 2023 Hat einer die Aufgabe 3? Als FiSi würde mich der Spaghetti Code echt mal interessieren Zitieren
Prüfungsteilnehmer Geschrieben 26. April 2023 Autor Geschrieben 26. April 2023 vor 1 Minute schrieb testplayer975: Hat einer die Aufgabe 3? Als FiSi würde mich der Spaghetti Code echt mal interessieren Leider nicht, ich kann dir nur so viel sagen, einem wird beigebracht "sprechende" Variablenbezeichnungen zu verwenden und die liefern den größten Gammelcode ab, welcher Chaotisch bis zum geht nicht mehr ist und dessen Sinn ich immer noch nicht wirklich verstanden habe und das obwohl ich recht gut damit zurecht gekommen bin. Ich habe am Ende einfach ignoriert was der Code tun soll und stumpf die Logik betrachtet. testplayer975 und Auswendungsentwickler2 reagierten darauf 1 1 Zitieren
Thanks-and-Goodbye Geschrieben 26. April 2023 Geschrieben 26. April 2023 vor 8 Minuten schrieb Prüfungsteilnehmer: Ich bin gespannt auf euren Input Dann stell doch bitte deinen Input auch zur Verfügung. Danke. Zitieren
kappe619 Geschrieben 26. April 2023 Geschrieben 26. April 2023 Ich hab den Code beim ersten Blick voll nicht gecheckt und das ganz nach hinten geschoben, erst den Rest gemacht. Dann wurd die Zeit auch knapp um alles zu verstehen. Ein Fehler war denk ich, dass am Anfang irgendwelche Werte auf 0 gesetzt und dann auf größer (oder kleiner?) verglichen wurden, wozu es ja nie kommt. Ich hab als Fehler noch angemerkt, dass die Strings nicht gestimmt haben. Also mit der Ausgabe unten passte das nicht zusammen, teils fehlten Leerzeichen bzw. Tabs und einmal auch ein Doppelpunkt. Und außerdem hab ich auch noch bei Codeverbesserungen geschrieben, man solle passende, englische (!) Bezeichnungen wählen, Beispiel "month" statt "Monat" (nach dem Motto "irgendwas schreiben, vielleicht Mitleidspunkte"). Warum kann man nicht mehr einen Teil weglassen? Das wär definitiv dieser geworden. Wäre mega, wenn wer den Code hat und den hier posten könnte, damit man noch mal in Ruhe drüber schauen kann. Zitieren
Prüfungsteilnehmer Geschrieben 26. April 2023 Autor Geschrieben 26. April 2023 Meine Lösungen sahen übrigens wie folgt aus: Aufgabe 2: Vorab, ich habe den "entry" als Liste/Array behandelt, da die Aufgabe ansonsten keinen Sinn ergeben hat und nicht lösbar war. Beschreibung meines Codes: tag, stunde und aktuelleBesucherAnzahl als variablen definiert und mit dem. tag und stunde mit den Daten des 1. eintrags initalisiert aBA mit 0 result array angelegt mit der größe [31][10] (31 weil Tage im Monat (hätte man auch per Methode ziehen können aber alle Monate passen in ein Array der größe 31 also was solls :D) (10 weil 9-19 Uhr 10 Stunden enthalten hat) foreach über entry machen, am Anfang der Schleife vor der "rechenlogik" habe ich geprüft ob eine neue Stunde bzw ein neuer Tag angebrochen ist. Bei einer neuen Stunde habe ich die bisher aktuelleBesucherAnzahl an die Stelle [tag-1][stunde-9] in das result Array geschrieben. Bei einem neuen Tag habe ich das gleiche gemacht aber zusätzlich noch den aktuelleBesucherZaehler auf 0 gesetzt. Anschließend habe ich abgefragt ob der Datensatz kommen (0) oder gehen (1) enthält und dementsprechend aktuellePersonenAnzahl += / -= der Personenanzahl die zu dem Ticket gehören genommen. nach dem durchlauf der Schleife musste ich den letzten Wert noch in das Array eintragen, da ich ja die Bedingung am Anfang der Schleife nicht mehr erreicht habe und dann das result Array returnen. Das ist definitiv keine 100% Lösung. Mein Code beachtet nicht die Angabe bezüglich eine Person zählt wenn sie geht erst ab der darauffolgenden Stunde als gegangen, aber mit solchen Kleinigkeiten konnte ich mich einfach nicht beschäftigen, weil wir alle wissen was da für ein Zeitdruck war. Aufgabe 3: Fehler 1: Der Print mit "Daten zum Monat: [Monat]" hat immer den nächsten Monat geschrieben und nicht den zu dem die Daten eigentlich gehören Fehler 2: Der letzte Monat wurde nicht geprintet, da wie in meiner Pseudocode Lösung am Anfang der Schleife eine Bedingung zum Printen stand, diese aber nicht mehr erreicht wird weil die Schleife nach dem letzten Element aufhört, ergo müsste nach dem Schleifendurchlauf noch ein letzter Print Monat ausgeführt werden, dieser war aber nicht im Code. Behebung: 1. Print Monat abändern zum Print des vergangenMonats, dieseer war ja in der ifAbfrage als td.monat oder so auch vorhanden. 2. Nach der Schleife die Zeilen in der großen IFCondition erneut implementiern (Auslagern in einer Funktion bietet sich da natürlich an) Zitieren
Swag Geschrieben 28. April 2023 Geschrieben 28. April 2023 Ich kann mal noch meine Erfahrungen mit der Prüfung teilen. Also Aufgabe 1 waren gefühlt geschenkte Punkte zum Glück. War ganz lustig sich durch die einzelnen Abteilungen durchzuwursten und die Informationen zusammenzutragen. Wenn man da nicht durcheinander gekommen ist ging das recht klar. Zu Aufgabe 2 kann ich meinem Vorschreiber in größten Teilen zustimmen da ich das ähnlich umgesetzt habe. Ich habe die entry-Variable auch als Liste behandelt und mit foreach durchitteriert. Im Nachhinein bin ich mir aber doch ziemlich sicher das es sich bei dem entry-Objekt um ein ResultSet handelt weil zum einen in der Aufgabe davon gesprochen wurde das die Tabelle in der DB auch InOut (oder so) heißt als auch weil das sonst absolut keinen Sinn machen würde. Man hätte dann wahrscheinlich mit hasNext() durchloopen sollen. Ich finde das natürclich auch sehr problematisch weil das definitiv nicht richtig oder genug in der Aufgabenstellung gezeigt wurde. Des weiteren habe ich das dann so umgesetzt das ich mir die größen für das array über die Methoden gesetzt habe also -> array[anzahlTageImMonat][9]. Dann durch entry durch-itteriert und erst geschaut ob InOut 1 oder 0 ist und basierend darauf dann += oder -= gerechnet. Die Array position dann mit array[anzahlTageImMonat - 1][stunde-9] bestimmt. am ende dann einfach das array zurückgegeben. Bei Aufgabe 3 habe ich die Fehler gefunden das der erste Monat nicht ausgewertet wird weil die variable monat mit dem ertsen Monat der Testdaten vorbelegt wird also "Januar". Eine Auswertung findet nur statt wenn monat != monatJetzt ist und das ist bei einer Vorbelegung von "Januar" nicht der Fall und somit wird Januar komplett übersprungen. Ein anderer Fehler den ich gefunden habe ist das die minMonat und minJahr Variablen nicht richtig gesetzt werden weil da ein "<=" gefehlt hat. Das sind dann auch die Anweisungen die bei der Anweisungsüberdeckung nicht gecovered werden. Als mögliche Umsetzung hab ich gesgt das man monat mit einem leeren String vorbelegt und die min berechnung um ein "<=" angepasst wird. Ob das jetzt wirklich so war hab ich keine Ahnung, ich hab es halt auch nur so gemacht das ich die Funktionalität komplett ingoriert habe und nur die Logik Stück für Stück abgegangen habe. Das hat auch echt einiges an Zeit gefressen. Aufgabe 4 war halt Standard-SQL wobei mich hier genervt hat das Spalten wie Datum_Soll nicht definiert waren ob die vom typ varchar oder Date waren weshalb ich nicht wusste ob ich das Datum jetzt mit toChar oder so noch umformen musste. Im Großen und ganzen fande ich die Prüfung echt heavy sowohl Afgabenteil 2 als auch Aufgabenteil 1. Ich hoffe auf 4 gewinnt. Zitieren
Locos Geschrieben 3. Mai 2023 Geschrieben 3. Mai 2023 Am 26.4.2023 um 22:48 schrieb testplayer975: Hat einer die Aufgabe 3? Als FiSi würde mich der Spaghetti Code echt mal interessieren Da ist der Code zu Aufgabe 3. testplayer975 reagierte darauf 1 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.