Program Model i Inspera Assessment lar forfattere definere komplekse beregninger og sikre presisjon i numeriske resultater for automatisk vurderte oppgaver.
Denne artikkelen forklarer hvordan du skriver matematiske ligninger ved hjelp av infix-notasjon og vanlige operatorer, og detaljerer hvordan du bruker funksjoner for avrunding av verdier.
Beregninger i Program Model
Variabler i Program Model er ikke bare for å generere tilfeldige verdier; de kan også inneholde fullstendige matematiske ligninger. Ligninger skrevet i Maxima, og dermed i Program Model, bruker infix-notasjon, som er et standard matematisk format der operatorer plasseres mellom operandene.
Vanlige operatorer
Du kan bruke følgende vanlige matematiske operatorer i ligningene dine:
| + | Addisjon |
| - | Subtraksjon |
| * | Multiplikasjon |
| / | Divisjon |
| ^ | Eksponentiering |
| ( ) | Parenteser |
Eksempler på ligninger
Her er eksempler på matematiske ligninger skrevet med infix-notasjon for Program Model:
- \(3x^2 + 2x - 5\) =
3x^2 + 2x - 5 \((y + 3) / 2 - 4y\) =
(y + 3) / 2 - 4y\((z + 2) * (z - 3)\) =
(z + 2) * (z - 3)- \(2t * (t + 1)\) =
2*t * (t + 1) - \((x^2 - 1) / (x + 2)\) =
(x^2 - 1) / (x + 2)
Kombinere variabler i ligninger
Alle variabler som tidligere er definert i Program Model kan inkluderes i ligningen til en annen variabel, noe som muliggjør komplekse beregninger i flere trinn.
-
trainA: rand_with_step(30,100,1);trainB: trainA + rand_with_step(5,35,1);combined_speed: trainA + trainB;
I eksempelet over settes
trainAsom en tilfeldig verdi mellom 30 og 100. Deretter settestrainBsom en verdi mellom 5 og 35 høyere enntrainA. Til slutt ercombined_speedsummen avtrainAogtrainB.
Avrunding av verdier
Beregnede resultater eller verdier generert av funksjoner som rand(n.0) (som produserer et tilfeldig flyttall mellom 0.0 og n.0) kan produsere tall med mange desimaler. Du kan avrunde disse verdiene til et spesifikt antall desimaler ved å bruke funksjonen decimalplaces(a, b):
a = verdien eller variabelen du vil avrunde.
b = antall desimaler som a skal avrundes til.
-
Variabelen
fruit_weight: rand(5.0);kan resultere i verdien 4.69831604812.For å gjøre det mer håndterbart kan du avrunde den til 2 desimaler på én eller to linjer. Begge alternativene nedenfor gir samme resultat, avhengig av om du ønsker en spesifikk avrundet variabel eller ikke.
fruit_weight: rand(5.0);fruit_weight_rounded: decimalplaces(fruit_weight, 2);eller
fruit_weight: decimalplaces(rand(5.0), 2);