0 votes
in Datenauswertung by s248429 (160 points)
edited by SoSci Survey

Hallo :)

Ich würde mir gerne die Punkte und ein Feedback zu einem Test anzeigen lassen. Es handelt sich in diesem Fall um Mehrfachantworten. Wo definiere ich, ob 1 oder 2 als Antwort richtig ist? Es handelt sich um folgenden Code:

if (
  (value('LT20') == 2) and
  (value('LT20') == 2) and
  (value('LT20') == 1) and
  (value('LT20') == 1) and
  (value('LT20') == 1) and
) 

if (
  (value('LT21') == 2) and
  (value('LT21') == 2) and
  (value('LT21') == 1) and
  (value('LT21') == 1) and
  (value('LT21') == 1) and
) 

if (
  (value('LT22') == 2) and
  (value('LT22') == 2) and
  (value('LT22') == 1) and
  (value('LT22') == 1) and
  (value('LT22') == 1) and
) 

if (
  (value('LT23') == 2) and
  (value('LT23') == 2) and
  (value('LT23') == 1) and
  (value('LT23') == 1) and
  (value('LT23') == 1) and
) 

if (
  (value('LT24') == 2) and
  (value('LT24') == 2) and
  (value('LT24') == 1) and
  (value('LT24') == 1) and
  (value('LT24') == 1) and
) 

{
  // Punkt zählen, an eine andere Stelle springen oder einfach eine Meldung anzeigen
  html('<p>Korrekt</p>');
} else {
  html('<p>Falsch</p>');
}
// Das Ergebnis anzeigen ...
html('<p>Sie haben '.$points.' Punkte erzielt.</p>');

if ($points < 0) {
  text('FE01');
} elseif ($points < 1) {
  text('FE02');
} elseif ($points < 2) {
  text('FE03');
} elseif ($points < 3) {
  text('FE04');
} elseif ($points < 4) {
  text('FE05');
} elseif ($points < 5) {
  text('FE06');
}

1 Answer

0 votes
by SoSci Survey (312k points)

Wo definiere ich, ob 1 oder 2 als Antwort richtig ist?

Deutlich übersichtlicher wird es, wenn Sie mit einem Array arbeiten - so wie in der Anleitung Punkte für Antworten zählen beschrieben wird. Allerdings ist der dort dokumentierte Code nur hilfreich, wenn Sie jedes Item separat zählen möchten.

Wenn Sie nur einen Punkt zählen möchten, wenn alle Items eines Sets korrekt sind, dann ergänzen Sie in Ihrem Code - also z.B. hier

if (
  (value('LT20') == 2) and
  (value('LT20') == 2) and
  (value('LT20') == 1) and
  (value('LT20') == 1) and
  (value('LT20') == 1) and
) 

erstmal die korrekten Variablennamen, z.B.

if (
  (value('LT20_01') == 2) and
  (value('LT20_02') == 2) and
  (value('LT20_03') == 1) and
  (value('LT20_04') == 1) and
  (value('LT20_05') == 1) and
) 

und anschließend noch, was passieren soll, wenn alle 5 Kreuzchen richtig sind, z.B.

$points = 0;

if (
  (value('LT20_01') == 2) and
  (value('LT20_02') == 2) and
  (value('LT20_03') == 1) and
  (value('LT20_04') == 1) and
  (value('LT20_05') == 1) and
) {
  $points++;
}

Das $points++ ist eine Kurzschreibweise für $points = $points + 1.

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

...