SuperSloth Geschrieben 21. April Geschrieben 21. April (bearbeitet) Hallo Community! Im Anhang findet ihr jene Pseudocode Aufgabe. Wäre toll wenn mir jemand meine Unklarheiten beseitigen könnte. Nun zu meinen Unklarheiten, hoffe ich bekomme es vernünftig beschrieben. Also, wie in der Aufgabe beschrieben geht es ja darum das Array "matches" mit Hilfe der Funktion auswerten(Abdruck, Schwelle, Finger) : Match[] zu sortieren bzw. von vornherein auszusortieren und ein final sortiertes Array vom Typ Match als Rückgabewert zurück gibt. Es gibt leider mehrere Sachen, welche ich nicht so ganz verstehe. - Als erstes hole ich mir das zu sortierende Array - im ersten WENN Block wird geschaut ob der Wert in matches[ i ].score < schwelle ist ODER ob der Finger <>(ungleich?) 0 UND matches[ i ].idfinger <> finger ist --> verstehe ich das soweit richtig? Ab ODER verstehe ich es nicht. Da bei Übergabe der Parameter für Schwelle=80 und Finger=2 --> sprich 2 <> 0 true ist --> ergo der Wert aus dem Array gelöscht wird. Im Sortierungsblock verstehe ich [j+1] nicht, in meinem Verständnis vom Array (Zeilen = i, Spalte = j) prüfe ich doch bei j=[0] den score Wert mit j+1=[1] den idPerson Wert in der gleichen Zeile für i=[0] --> dies macht doch eigentlich gar keinen Sinn oder? Versteht ihr meinen Gedankengang? Ich wäre total froh darüber wenn mir jemand den Pseudocode erläutern könnte, gern auch privat wenn möglich. LG Patrick Bearbeitet 21. April von SuperSloth Zitieren
SuperSloth Geschrieben 21. April Autor Geschrieben 21. April (bearbeitet) Ich habe soeben mehrmals versucht die [ i ] bei matches_.score und _.idfinger einzufügen. Wird aber nicht übernommen. EDIT: Mit einem Leerzeichen zwischen den eckigen Klammern hat es nun doch funktioniert. Bearbeitet 21. April von SuperSloth Zitieren
cmaker Geschrieben 21. April Geschrieben 21. April (bearbeitet) vor 33 Minuten schrieb SuperSloth: Im Sortierungsblock verstehe ich [j+1] nicht, in meinem Verständnis vom Array (Zeilen = i, Spalte = j) prüfe ich doch bei j=[0] den score Wert mit j+1=[1] den idPerson Wert in der gleichen Zeile für i=[0] --> dies macht doch eigentlich gar keinen Sinn oder? Versteht ihr meinen Gedankengang? Behalte im Kopf, dass es kein zweidimensionales Array ist, sondern ein Array mit Objekten, auf dessen Eigenschaften du mit dem Punkt-Operator zugreifst. Du vergleichst somit die Elemente anhand der ".score" Eigenschaft. Der rest ist simpler Bubblesort. Bearbeitet 21. April von cmaker Faabii reagierte darauf 1 Zitieren
cmaker Geschrieben 21. April Geschrieben 21. April (bearbeitet) vor 42 Minuten schrieb SuperSloth: - im ersten WENN Block wird geschaut ob der Wert in matches[ i ].score < schwelle ist ODER ob der Finger <>(ungleich?) 0 UND matches[ i ].idfinger <> finger ist --> verstehe ich das soweit richtig? Ab ODER verstehe ich es nicht. Da bei Übergabe der Parameter für Schwelle=80 und Finger=2 --> sprich 2 <> 0 true ist --> ergo der Wert aus dem Array gelöscht wird. Eine der Anforderungen lautet: "-der Finger-Typ bekannt, von dem der Abdruck stammt (Übergabewerte finger bis 10), dann sollen nur Daten zu diesem Finger-Typ in das zurückzugebende Array übernommen werden, z. B. nur Daten zu rechten Zeigefingern (idfinger =2), bei denen eine Übereinstimmung festgestellt wurde." Schaue noch einmal, ob du da drin die Antwort findest. Tipp: die Finger Nummern müssen Übereinstimmen, ansonsten kann der gescannte finger herausgenommen werden. Bearbeitet 21. April von cmaker Zitieren
SuperSloth Geschrieben 21. April Autor Geschrieben 21. April Ok, danke für die Hinweise. Ich werde mir nochmal alles zu Arrays mit Objekten zu Gemüte führen und mir alles nochmal in Ruhe durch den Kopf gehen lassen. Zitieren
Chris-Info Geschrieben 21. April Geschrieben 21. April vor 1 Stunde schrieb SuperSloth: Ok, danke für die Hinweise. Ich werde mir nochmal alles zu Arrays mit Objekten zu Gemüte führen und mir alles nochmal in Ruhe durch den Kopf gehen lassen. In welcher Programmiersprache arbeitest du denn in deiner Firma? Also davon ausgehend, dass du vermutlich FIAE lernst? Zitieren
SuperSloth Geschrieben 21. April Autor Geschrieben 21. April @cmaker Ich habe nochmal drüber nachgedacht und denke verstanden zu haben was die Bedingungen im WENN Block bedeuten. - aussortieren der Werte welche unter dem Schwellwert liegen (dies von vornherein) ODER Finger <> 0 (1...10 - welcher via Parameter übergeben wurde) UND matches[ i ].idfinger <> finger (Bsp.: matches[ 5 ].idfinger = 3 <> finger = 2 (Wert durch Parameter) Bleibt leider dennoch die Unklarheit beim Bubblesort. Zitieren
cmaker Geschrieben 21. April Geschrieben 21. April vor 2 Minuten schrieb SuperSloth: @cmaker Ich habe nochmal drüber nachgedacht und denke verstanden zu haben was die Bedingungen im WENN Block bedeuten. - aussortieren der Werte welche unter dem Schwellwert liegen (dies von vornherein) ODER Finger <> 0 (1...10 - welcher via Parameter übergeben wurde) UND matches[ i ].idfinger <> finger (Bsp.: matches[ 5 ].idfinger = 3 <> finger = 2 (Wert durch Parameter) Bleibt leider dennoch die Unklarheit beim Bubblesort. Ja, du hast es zumindest richtig erklärt. Was konkret beim Sortieren verstehst du noch nicht? Zitieren
SuperSloth Geschrieben 21. April Autor Geschrieben 21. April Mir fällt es schwer zu konkretisieren. Du meintest ja, es handle sich nicht um ein zweidimensionales Array sondern um ein Array mit Objekten. Im SORT sehe ich jedoch nicht die Verwendung der/des Point Operators. Die einzige Idee die ich habe ist, das j in dem Fall nicht für Spalte steht. Ich habe mir grad ein ganz paar Tabs geöffnet wo ich genug zum lesen habe, hoffe danach es endlich zu begreifen. Zitieren
cmaker Geschrieben 21. April Geschrieben 21. April Hier siehst du, dass das Array vom Typ Match ist, d.h. es enthält diese Match-Objekte: Um an die score Eigenschaft zu kommen, wird beim Sortieren z.B. "arr[ j ].score" verwendet - und z.B. mit "arr[ j+1].score" verglichen. Das aktuelle Element mit dem nächsten. Ist der .score des aktuellen Elements größer als der des nächsten, wird getauscht. Zitieren
SuperSloth Geschrieben 21. April Autor Geschrieben 21. April Oh man, hab soeben gesehen dass in dem WENN Block beim SORT doch der Point Operator .score zum Einsatz kommt. Danke nochmals für die Hilfe und Hinweise. 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.