0 votes
in SoSci Survey (dt.) by s084806 (120 points)
edited by SoSci Survey

Hallo,

In meiner Studie müssen die Teilnehmenden verschiedene Matheaufgaben bearbeiten. Am Ende des Fragebogens sollen sie eine Rückmeldung bekommen, wie viele der Aufgaben sie korrekt beantwortet haben. Prinzipiell funktioniert der PHP-Code auch (siehe unten), allerdings werden auch bei der korrekten Beantworten aller Aufgaben nur 3 Punkte erreicht. Das Problem liegt bei Aufgabe G002_01, bei der das Ergebnis eine Dezimalzahl darstellt. Am Dezimaltrennzeichen "Punkt" scheint es nicht zu liegen, da ein Komme auch nicht hilft. Woran könnte es liegen? Vielen Dank schon einmal!

// Definition der Fragen und der korrekten Antworten

$fragenb1 = [

  'G001_01' => [2 => 0.5],  // In Aufgabe G001_01 ist die richtige Antwort die 2, für die korrekte Antwort werden 0.5 Punkte vergeben

  'G001_02' => [2 => 0.5],  // In Aufgabe G001_02 ist die richtige Antwort die 2, für die korrekte Antwort werden 0.5 Punkte vergeben

  'G002_01' => [1.7 => 1],  // In G002_01 ist das richtige Ergebnis 1.7

  'G003_01' => [-8 => 1],  // In Aufgabe G003_01 ist das richtige Ergebnis -8

  'G004_01' => [2 => 1], // In Aufgabe G004_01 ist das richtige Ergebnis 1
];


// Zähler-Variable
$pointsb1 = 0;
 

foreach ($fragenb1 as $variable => $values) {
  // Antwort des Teilnehmers abrufen
  $answer = value($variable);
  // Prüfen, ob für diese Antwort ein Wert vorliegt (sonst keinen Punkt vergeben)
  if (isset($values[$answer])) {
    // Zählen des Wertes
    $pointsb1 += $values[$answer];
  }
}

// Ergebnisanzeige
html('<p>Sie haben '.$pointsb1.' von 4 Punkten erzielt.</p>'); 

1 Answer

0 votes
by SoSci Survey (302k points)

Bitte versuchen Sie einmal, den Schlüssel im dem betroffenen Array als Text (String) zu definieren:

'G002_01' => ['1.7' => 1],

Eventuell möchten Sie die Eingabe des Teilnehmers auch auf eine Nachkommastelle fix formatieren:

$answer = sprintf('f1.1', (float)value($variable));

Dann müssten Sie aber alle richtigen Lösungen in diesem Format in Ihr Array eintragen, also z.B.:

'G001_01' => ['2.0' => 0.5],

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

...