Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

Infoga utdrag
Beräkningar
Beräkningar
nameprogrammering av uträkningar
nopaneltrue

Följande exempel visar hur man kan skriva en beräkningsformel på frågor med valbara alternativ.

Gå direkt till rubriken:

Innehållsförteckning

Frågeformulär

Då det är en Radioknapp (radio) så används svarsalternativets ordningstal (answerAlternativeNumber) som svarsvärde, 1,2,3 osv.. Detta innebär att när man hämtar ut frågans svar så får man ordningstalet att jobba med.

...

2 ALKOHOLPROBLEM - ÖVERSIKT

Poäng

svarsalternativSvarsalternativets ordningstal:

1

2

3

4

5

1 Hur ofta dricker du alkohol?

Aldrig

 0

1 gång/mån el. mer sällan

1

2-4 ggr/mån 

2

2-3ggr/vecka

3

4 ggr/vecka el. mer

4

2 Hur många ”glas” (se exempel) dricker du en typisk dag då du dricker alkohol?

1-2 glas

0

3-4 glas

1

5-6 glas

2

7-9 glas

3

10 glas el. mer

4

........






10 Har en släkting eller vän, en läkare (eller någon annan inom sjukvården) oroat sig över ditt drickande eller antytt att du borde minska på det?

Nej

0

Ja, men inte under det senaste året

2

Ja, under det senaste året

4


...

Vi har även valt att lägga till kommentarer i formeln för att tydligöra den något.

I when-blocket

  1. vi skapar en lokal variabel $q utav Questions som innehåller alla svar.

  2. vi säkerställer att inga svar är utelämnade (null)

I then-blocket

  1. Vi börjar med att skapa en variabel summa av typen double som håller vår summering

  2. Vi skapar en variabel med namnet altNo som är svarsalternativets ordningstal. Vi använder Javas primitiv int då vi senare vill använda denna variabeln i switch-satsen.

  3. För varje unika frågeid hämtar vi ut dess svar för att räkna poäng.

  4. Eftersom fråga 1 och 2 ger poängen svarsalternativ minus 1, dvs. alternativ 1 ger 0 poäng, alternativ 2 ger 1 poäng osv., så subtraherar vi med 1 från frågesvaret i beräkningen.

  5. För fråga 10 så använder vi sedan Java switch-sats för att fånga rätt svarsalternativ då vi inte kan använda samma metod som ovan. Här är det viktigt att alltid avsluta varje case med break så den inte automatiskt går vidare till nästa case.

  6. I varje case räknar vi upp summa med den önskade poängen.

  7. Vi avslutar sedan med sätta variabeln outcome med vår framräknade summa

Formel

Kodblock
languagejava
when
  $q: Questions()
  eval($q.get("2.1") != null)
  eval($q.get("2.2") != null)
  eval($q.get("2.3") != null)
  eval($q.get("2.4") != null)
  eval($q.get("2.5") != null)
  eval($q.get("2.6") != null)
  eval($q.get("2.7") != null)
  eval($q.get("2.8") != null)
  eval($q.get("2.9") != null)
  eval($q.get("2.10") != null)
then
  double summa = 0;  // variabel för att hålla summering
  int altNo = 0;     // variabel för svarsalternativ

  // 1. Hur ofta dricker du alkohol?
  summa = summa + $q.get("2.1").intValue() -1;
  // 2. Hur många ”glas” (se exempel) dricker ....
  summa = summa + $q.get("2.2").intValue() -1;
  //.... fråga 3-9
  
  // 10. Har en släkting eller vän, en läkare ...
  altNo = $q.get("2.10").intValue();
  switch (altNo)  {
    case 1: break;
    case 2: summa = summa + 2;
            break;
    case 3: summa = summa + 4;
            break;
  }

    outcome.set(summa);
end

...