Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:create:points [01.10.2014 16:06] – Verbales Feedback ergänzt admin | de:create:points [30.11.2015 11:13] – [Richtige und falsche Antworten] admin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Punkte für Antworten zählen ====== | ====== Punkte für Antworten zählen ====== | ||
- | In den meisten sozialwissenschaftlichen Befragungen ist man an der Meinung der Teilnehmer interessiert -- nicht so, wenn man mit oFb ein Quiz baut. Hier gibt es i.d.R. | + | In den meisten sozialwissenschaftlichen Befragungen ist man an der Meinung der Teilnehmer interessiert -- nicht so, wenn man Feedback zu einem Wissenstest geben möchte. Hier gibt es richtige und falsche Antworten und man kann einen Punktwert ermitteln. Auch bei live-Auswertungen (z.B. einer Thurstone- oder Likert-Skala) darf man mitunter Punkte zählen. So lässt sich als Incentive etwa eine Auswertung des Persönlichkeitstests am Ende des Fragebogens bauen. |
- | **Tipp:** Die PHP-Code Beispiele auf dieser Seite sehen sehr lang aus -- das liegt daran, dass jeder Schritt einzeln ausgeführt und kommentiert wurde. Lassen Sie sich von der Länge nicht erschrecken, | + | **Tipp:** Die PHP-Code Beispiele auf dieser Seite sehen sehr lang aus -- das liegt daran, dass jeder Schritt einzeln ausgeführt und kommentiert wurde. Lassen Sie sich von der Länge nicht erschrecken. |
+ | |||
+ | **Tipp:** Lesen Sie zum Verständnis der Code-Beispiele die Kapitel [[: | ||
+ | |||
+ | **Tipp:** Wenn Sie für eine Auswertung lediglich [[: | ||
- | **Tipp:** Lesen Sie zum Verständnis der Code-Beispiele die Kapitel [[php|Einführung in PHP-Code]] und [[array|Einführung in Arrays]]. | ||
===== Richtige und falsche Antworten ===== | ===== Richtige und falsche Antworten ===== | ||
- | Die einfachste Anwendung, bei der man Punkte zählt ist ein Quiz. Hier gibt es eine Reihe von Auswahl-Fragen und es ist jeweils eine der Optionen | + | Die einfachste Anwendung, bei der man Punkte zählt ist ein Quiz bzw. Wissentest. Hier gibt es eine Reihe von Auswahl-Fragen und es ist jeweils eine der Auswahloptionen richtig. |
+ | |||
+ | Der folgende PHP-Code definiert zunächst, welche Fragen ausgewertet werden und wie die richtige Antwort lautet. Dafür wird ein [[: | ||
- | Der folgende PHP-Code definiert zunächst, welche Fragen ausgewertet werden und wie die richtige Antwort lautet. Dafür wird ein verschachteltes Array verwendet: Jeder Eintrag in dem Array ist wiederum ein Array, das die Kennung der (Auswahl-)Frage und die korrekte Antwort (bzw. deren Code) enthält. | + | Anschließend werden alle Fragen in einer FOR-Schleife geprüft -- das ist wesentlich kompakter als dutzende IF-Konstruktionen. |
<code php> | <code php> | ||
// Definition der Fragen und der korrekten Antworten | // Definition der Fragen und der korrekten Antworten | ||
$fragen = array( | $fragen = array( | ||
- | | + | ' |
- | | + | ' |
- | | + | ' |
- | | + | ' |
- | | + | ' |
// u.s.w. | // u.s.w. | ||
); | ); | ||
Zeile 28: | Zeile 33: | ||
// Prüfung aller Fragen in einer Schleife | // Prüfung aller Fragen in einer Schleife | ||
- | $anzahl = count($fragen); | + | foreach |
- | for ($i=0; $i< | + | // Die Antwort des Teilnehmers abrufen |
- | | + | $answer |
- | $richtig = $fragen[$i][1]; | + | |
- | // Jetzt die Antwort des Teilnehmers abrufen | + | |
- | $antwort | + | |
// Überprüfen und ggf. einen Punkt zählen | // Überprüfen und ggf. einen Punkt zählen | ||
- | if ($antwort | + | if ($answer |
$points++; | $points++; | ||
} | } | ||
Zeile 44: | Zeile 46: | ||
</ | </ | ||
- | Anstatt der FOR-Schleife kann man etwas eleganter auch eine FOREACH-Schleife verwenden. Hier eine kompaktere Programmierung des Zähl-Teils: | + | Eine kompaktere Programmierung des Zähl-Teils |
<code php> | <code php> | ||
Zeile 50: | Zeile 52: | ||
// Prüfung aller Fragen in einer Schleife | // Prüfung aller Fragen in einer Schleife | ||
- | // Die foreach-Schleife kopiert jedes Array-Element (hier ja wieder ein Array) in eine Variable (hier $info) | + | foreach ($fragen as $variable=> |
- | foreach ($fragen as $info) { | + | if (value($variable) == $correct) { |
- | if (value($info[0]) == $info[1]) { | + | $points++; |
- | $points++; | + | |
} | } | ||
} | } | ||
Zeile 60: | Zeile 61: | ||
// ... | // ... | ||
</ | </ | ||
+ | |||
===== Verschieden Punktwerte ===== | ===== Verschieden Punktwerte ===== | ||
- | Bei einer Skala nach Thurstone hat jede Antwort einen anderen Wert - auch dies lässt sich in einer Array-Struktur gut abbilden. Dabei wird zu jeder Frage ein Array mit Antwort-Werten gespeichert. Beachten Sie, dass das Array hier nicht einfach eine fortlaufende Liste ist (Index 0, 1, 2, ...), sondern dass sowohl die Frage-Kennungen als auch die Antwort-Codes als Schlüssel fungieren (sog. assozitative Arrays) -- in PHP wird dies durch die Zeichenfolge '' | + | Bei einer Skala nach Thurstone hat jede Antwort einen anderen Wert -- auch dies lässt sich in einer Array-Struktur gut abbilden. Dabei wird zu jeder Frage ein Array mit Antwort-Werten gespeichert. |
<code php> | <code php> | ||
Zeile 80: | Zeile 82: | ||
// Mittels foreach kann man einfach die Schlüssel-Wert-Paare durchlaufen | // Mittels foreach kann man einfach die Schlüssel-Wert-Paare durchlaufen | ||
- | foreach ($fragen as $kennung | + | foreach ($fragen as $variable |
// Antwort des Teilnehmers abrufen | // Antwort des Teilnehmers abrufen | ||
- | $antwort | + | $answer |
- | // Prüfen, ob für diese Antwort ein Wert vorliegt | + | // Prüfen, ob für diese Antwort ein Wert vorliegt |
- | if (isset($werte[$antwort])) { | + | if (isset($values[$answer])) { |
// Zählen des Wertes | // Zählen des Wertes | ||
- | $points += $werte[$antwort]; | + | $points += $values[$answer]; |
} | } | ||
} | } | ||
Zeile 93: | Zeile 95: | ||
html('< | html('< | ||
</ | </ | ||
+ | |||
===== Skalen mit gedrehten Items ===== | ===== Skalen mit gedrehten Items ===== | ||
Zeile 117: | Zeile 120: | ||
foreach ($items as $item) { | foreach ($items as $item) { | ||
// Die Frage-Kennung muss man noch zusammenbauen | // Die Frage-Kennung muss man noch zusammenbauen | ||
- | $kennung = ' | + | $kennung = ' |
// Antwort des Teilnehmers abrufen | // Antwort des Teilnehmers abrufen | ||
$antwort = value($kennung); | $antwort = value($kennung); | ||
Zeile 131: | Zeile 134: | ||
</ | </ | ||
- | Die Codes reichen in oFb jeweils von 1 bis zum Skalenniveau. Falls man statt des Wertebereichs 1-5 lieber 0-4 aufaddieren möchte, muss man lediglich bei jeder Antwort 1 subtrahieren: | + | Die Codes reichen in SoSci Survey |
<code php> | <code php> | ||
Zeile 179: | Zeile 182: | ||
html('< | html('< | ||
</ | </ | ||
+ | |||
===== Multiple Choice Antwortmuster ===== | ===== Multiple Choice Antwortmuster ===== | ||
- | Mitunter müssen für die Überprüfung einer Antwort mehrere Bedingungen kombiniert werden. Hat man zum Beispiel eine Mehrfachauswahl mit 4 Antwortvorgaben und will prüfen, ob die ersten beiden Optionen ausgewählt wurden, die letzten beiden aber nicht, so könnte man das mittels IF-Konstruktion wie folgt lösen: | + | Mitunter müssen für die Überprüfung einer Antwort mehrere Bedingungen kombiniert werden. Hat man zum Beispiel eine Mehrfachauswahl mit 4 Antwortvorgaben und will prüfen, ob die ersten beiden Optionen ausgewählt wurden, die letzten beiden aber nicht, so könnte man das mittels IF-Konstruktion wie folgt lösen. |
<code php> | <code php> | ||
Zeile 198: | Zeile 202: | ||
</ | </ | ||
- | Die Verwendung Bool' | + | Die Verwendung Bool' |
<code php> | <code php> | ||
Zeile 243: | Zeile 247: | ||
html('< | html('< | ||
</ | </ | ||
+ | |||
===== Bewertungstexte anzeigen ===== | ===== Bewertungstexte anzeigen ===== | ||
- | In Abhängigkeit vom erreichten Punktwert können Sie auch unterschiedliches Feedback geben. Folgender Code zeigt im Bereich von 0 bis 9 Punkten den Textbautein " | + | In Abhängigkeit vom erreichten Punktwert können Sie auch unterschiedliches Feedback geben. Folgender Code zeigt im Bereich von 0 bis 9 Punkten den Textbautein " |
<code php> | <code php> | ||
Zeile 258: | Zeile 263: | ||
</ | </ | ||
- | Natürlich lässt sich do auch mehrdimensionales Feedback erstellen. Im folgenden Beispiel werden für die beiden Skalen '' | + | Natürlich lässt sich so auch mehrdimensionales Feedback erstellen. Im folgenden Beispiel werden für die beiden Skalen '' |
<code php> | <code php> |