# Hoe werkt da worstenbroodje nou eigenlijk jonguh?

## PHP-code (dit is wa d'n worstenbroodje doet, wittewel?)

    function bereken_cijfer($behaalde_punten, $max_punten, $norm_percentage, $voldoende_cijfer, $decimalen) {
     $norm = intval($norm_percentage) / 100;
     $voldoende_score = $max_punten * $norm;
     if ($behaalde_punten == $max_punten) {
      return 10.0;
     }
     if ($behaalde_punten >= $voldoende_score) {
      return round($voldoende_cijfer + (10 - $voldoende_cijfer) * (($behaalde_punten - $voldoende_score) / ($max_punten - $voldoende_score)), $decimalen);
     } else {
      return round(1 + ($voldoende_cijfer - 1) * ($behaalde_punten / $voldoende_score), $decimalen);
     }
    }

## Invoer (wa moette hier nou weer mee?)

- max_punten: Hoeveel punten da ge in totaal kunt halen. Moette nie te moeilijk over doen.
- behaalde_punten: Hoeveel punten da ge nou eigenlijk gepakt hed.
- norm_percentage: Hoeveel procent da ge moet hebbe om nie helemaal te falen nie.
- voldoende_cijfer: Het cijfer da nog nét acceptabel is. Zo'n mager zeske ofzo.
- decimalen: Hoeveel getallen achter de komma ge wil zien. Maar hou 't simpel, ge bent ginne Einstein.

## Uitkomst (wa komt er nou uit dan?)

Un cijfer op unne schaal van 1 tot 10, afgerond op het aantal decimalen da ge hed ingevuld. Dus hopelijk nie compleet ruk nie.

## Berekening (efkes uitleggen, want ge snapt 't toch nie)

1. Bepaal de norm (wanneer hedde 'ne voldoende?):
   `norm = norm_percentage / 100`
   Da percentage wordt un decimaal getal. Dus als da 75% is, maak d'r dan gewoon 0,75 van jonguh.
2. Bepaal de voldoendescore (hoeveel punten moet ge halen voor 'ne voldoende?):
   `voldoende_score = max_punten * norm`
   Dit zegt hoeveel punten ge moet halen om nie af te gaan nie.
3. Als ge alle punten hed gehaald, krijgde gewoon unne tien:
   `Als behaalde_punten == max_punten, is 't cijfer gewoon 10.0`
4. Als ge boven de norm zit, dan krijgde meer dan unne voldoende:
   `cijfer = voldoende_cijfer + (10 - voldoende_cijfer) * (behaalde_punten - voldoende_score) / (max_punten - voldoende_score)`
   Ge gaat dan langzaamaan omhoog van die zes naar un dikke tien, hoe beter ge hed gescoord.
5. Als ge onder de norm zit, dan is 't goed mis:
   `cijfer = 1 + (voldoende_cijfer - 1) * behaalde_punten / voldoende_score`
   Dit betekent da ge keihard richting die één gaat als ge te weinig punten hed gehaald.
6. Ge rondt alles mooi af op het aantal decimalen da ge hed ingevuld.

## Samenvatting (omdat ge lui bent)

- Ge krijgt unne dikke tien als ge alle punten hed.
- Als ge boven de norm scoort, wordt 't cijfer steeds beter tot ge un tien hed.
- Als ge onder de norm scoort, gaat 't steeds slechter tot ge met un één eindigt.
- Het eindcijfer wordt afgerond op het aantal decimalen da ge hed opgegeven.

## Broncode en licentie

Als ge nou zelf ok un worstenbroodje wil bakken, kan da! Wij hebbe hier 'ne tarball met alle broncode van ut Superworstenbroodje. Let wel op, da spul is uitgegeven onder de GNU Affero GPL versie 3, dus ge kunt da nie zomaar proprietary maken, oké? Houdt oe eige dur aan!

Ga terug dan! Hou me teguh dan!