Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

0 votes

Guten Tag,

ich möchte in meinem Fragebogen einen Anagramm-Test einfügen.
Die Teilnehmer sollen dabei eine Reihe von Buchstabenfolgen präsentiert bekommen, aus denen sie reale Wörter bilden sollen.
Ich möchte ihre richtigen Antworten bepunkten und diesen Wert später rückmelden bzw. weiterverwenden.

Nun gibt es für die Buchstabenfolgen manchmal mehrere richtige Lösungen. Über das Fragenformat "Offene Nennung" konnte ich bereits mehrere Eingabefelder untereinander einfügen, in welche die richtigen Wörter eingegeben werden können.
Allerdings bin ich unschlüssig, wie ich die richtigen Antworten definieren, pro richtiger Antwort z.B. einen Punkt vergeben kann und die Punkte am Ende des Tests aufsummiere und als Variable speichern kann, um sie im weiteren Verlauf noch verwenden zu können.
Können Sie mir da weiterhelfen?

Ich danke schon im Voraus für die Hilfe!

in SoSci Survey (dt.) by s154695 (110 points)

1 Answer

0 votes

Also wenn es nur eine richtige Lösung gäbe, wäre das kein Problem. Dann können Sie ganz traditionell mit einem IF-Filter prüfen, ob die Antwort stimmt und ggf. einen Punkt zählen.

Aber wenn mehrere Antworten korrekt sind, dann brauchen wir ein wenig Mengenlehre. Kurzum: Es gibt eine Menge gegebener Antworten für ein Anagramm und eine Menge korrekter Antworten. Und die Schnittmenge daraus sind die korrekten Lösungen des Teilnehmers.

In Programmcode könnte das so aussehen:

$answers = valueList('TX01');
$correct = ['Ampel', 'Lampe', 'Palme'];
$match = array_intersect($answers, $correct);
$points = count($match);

Soweit, so gut. Jetzt noch 2 Herausforderungen: Was passiert, wenn der Teilnehmer dieselbe Lösung mehrfach einträgt? Und wie ist das mit der Groß- und Kleinschreibung. Genau, damit wird es ein wenig anspruchsvoller:

$answers = valueList('TX01');
// Erstmal alles in Kleinbuchstaben
$answers = array_map('strtolower', $answers);
// Dann doppelte entfernen
$answers = array_unique($answers);
// Und dann weiter wie gehabt (nur in Kleinschreibung)
$correct = ['ampel', 'lampe', 'palme'];
$match = array_intersect($answers, $correct);
$points = count($match);

Programmieren ist etwas Schönes, oder? :)

ago by SoSci Survey (140k points)
...