fetchRow(MDB2_FETCHMODE_ASSOC)) { if (!isset($totalen[$row['examen_id']])) $totalen[$row['examen_id']] = array( 'geslaagd' => 0, 'definitief afgewezen' => 0, 'her' => 0, 'incompleet' => 0); if (!isset($prognose[$row['examen_id']])) $prognose[$row['examen_id']] = array(); $prognose[$row['examen_id']][$row['subj_abbrev']] = array('se' => $row['se'], 'ce' => $row['ce'], 'diff' => $row['diff']); } $lijst = mdb2_query($db, << UNIX_TIMESTAMP(examen.timestamp) ) AS ppl2grp_filtered USING (ppl_id, examen_id) JOIN ( SELECT * FROM kldv.grp WHERE grp_home = 1 ) AS stamklassen USING (grp_id) JOIN resultaat USING (kandidaat_id) LEFT JOIN ( SELECT * FROM tijdvakresultaat WHERE tijdvak = 1 ) AS tv1 USING (resultaat_id) JOIN kldv.subj USING (subj_id) LEFT JOIN noce USING (examen_id, subj_id) LEFT JOIN ordersubj USING (subj_id) WHERE examen.year_id = 16 GROUP BY kandidaat_id ORDER BY grp_name, ppl_surname, ppl_forename, ppl_prefix EOQ ); function analyseer($f) { $ret = array('aantal onvoldoendes' => 0, 'aantal diepe onvoldoendes' => 0, 'tekortpunten' => 0, 'compensatiepunten' => 0 ); foreach ($f as $cijfer => $data) { if ($cijfer < 3.5) { $ret['aantal diepe onvoldoendes'] += $data['count']; } if ($cijfer < 5.5) { $ret['aantal onvoldoendes'] += $data['count']; $ret['tekortpunten'] += (6 - $cijfer)*$data['count']; } else { $ret['compensatiepunten'] += ($cijfer - 6)*$data['count']; } } return $ret; } function bereken_gm(&$vakken, $check) { foreach ($vakken as $vak => $cijfers) { if ($cijfers['se'] == '-' || $cijfers['gm'] == '-') continue; if ($cijfers['ce'] == '-') { $gm = round($cijfers['se'], 0); } else { $gm = round(($cijfers['se']+$cijfers['ce'])/2., 0); } if ($check) { if ($gm != $cijfers['gm']) { error_system("gemiddelde $vak klopt niet"); } } $vakken[$vak]['gm'] = $gm; } } function vul_eindcijfers_en_kernvakken(&$eindcijfers, &$kernvakken, &$sum2ce, &$countce, $vakken, $check = 0, $targetce = 0, $sumce = 0) { for ($i = 1; $i <= 10; $i++) { $eindcijfers[$i] = array('count' => 0, 'subjs' => array()); $kernvakken[$i] = array('count' => 0, 'subjs' => array()); } $countce = 0; $sum2ce = 0; foreach ($vakken as $vak => $data) { if ($data['ce'] != '-') { $countce += 1; $sum2ce += $data['ce']; } $eindcijfers[$data['gm']]['count']++; $eindcijfers[$data['gm']]['subjs'][] = $vak; if ($vak == 'netl' || $vak == 'wisA' || $vak == 'wisB' || $vak == 'wisC' || $vak == 'entl') { $kernvakken[$data['gm']]['count']++; $kernvakken[$data['gm']]['subjs'][] = $vak; } } if ($check) { if ($countce*5.5 != $targetce) error_system("aantal CE klopt niet"); if (round($sumce, 1) != round($sum2ce, 1)) error_system("totaal CE klopt niet"); } } function geslaagd($vakken) { bereken_gm($vakken, 0); $eindcijfers = array(); $kernvakken = array(); $sum2ce = 0; $countce = 0; vul_eindcijfers_en_kernvakken($eindcijfers, $kernvakken, $sum2ce, $countce, $vakken); $eind = analyseer($eindcijfers); $kern = analyseer($kernvakken); $gem = floor(10000*($sum2ce/$countce))/10000; if (round($sum2ce, 1) < round($countce*5.5, 1)) return 0; if ($kern['tekortpunten'] > 1) return 0; if ($eind['aantal diepe onvoldoendes'] > 0) return 0; if ($eind['aantal onvoldoendes'] > 2) return 0; if ($eind['tekortpunten'] > 3) return 0; if (($eind['tekortpunten'] == 2 || $eind['tekortpunten'] == 3) && $eind['compensatiepunten'] < $eind['tekortpunten']) return 0; return 1; } function show_vakken($vakken) { ?> $data) { echo(""); } ?> $data) { echo(""); } ?> $data) { echo(""); } ?> $data) { echo(""); } ?>
$vak
SE{$data['se']}
CE{$data['ce']}
Eind{$data['gm']}

Uitslagvergadering

We nemen aan de lo voldoende of goed is, dat re zonodig gemaakt is en dat de cijfers waaruit het combinatiecijfer is opgebouwd allemaal minstens een 4 zijn. fetchRow(MDB2_FETCHMODE_ASSOC))) { ?>

dossier incompleet

dossier incompleet .

Gemiddelde CE"); if (round($sumce, 1)< round($targetce, 1)) { echo(''); $geslaagd = 0; } else echo(''); ?>Kernvakkenregeling"); if ($kern['tekortpunten'] > 1) { $geslaagd = 0; echo(""); } else { echo(''); } ?>Eindcijfers"); if ($eind['aantal diepe onvoldoendes'] > 0) { $geslaagd = 0; echo(""); } else if ($eind['aantal onvoldoendes'] > 2) { $geslaagd = 0; echo(""); } else if ($eind['tekortpunten'] > 3) { $geslaagd = 0; echo(""); } else if (($eind['tekortpunten'] == 2 || $eind['tekortpunten'] == 3) && $eind['compensatiepunten'] < $eind['tekortpunten']) { $geslaagd = 0; echo(""); } else echo(""); ?>
$gem'.($targetce - $sumce).' tekortpunt'.(($targetce - $sumce) == 1?'':'en').'OK
meer dan 1 tekortpuntOK
eindcijfer lager dan 4te veel onvoldoendes ({$eind['aantal onvoldoendes']} stuks)te veel terkortpunten ({$eind['tekortpunten']} stuks)te weinig compensatie {$eind['compensatiepunten']}, benodigd {$eind['tekortpunten']}OK
Geslaagd"); continue; } $slaagt = array(); foreach ($vakken as $vak => $cijfers) { if ($cijfers['ce'] == '-') continue; $orig = $cijfers['ce']; for ($i = $orig + 0.1; $i <= 10; $i += .1) { $i = round($i, 1); $vakken[$vak]['ce'] = $i; //echo("
Probeer $i voor $vak"); if (geslaagd($vakken)) { $slaagt[$vak] = $i; //echo("

Slaagt met $i voor $vak, dat is +".($i = $orig)."."); break; } } $vakken[$vak]['ce'] = $orig; } if (count($slaagt) == 0) { $totalen[$row['examen_id']]['definitief afgewezen']++; echo("

Definitief afgewezen"); } else { $totalen[$row['examen_id']]['her']++; echo("

Kan slagen met een herkansing"); $kansrijk = -10; $extraslaaginfo[$row['llnr']] = array(); ?>

Herkansers van kanrsijk naar kansarm

Kansrijkheid is het aantal punten dat omhoog moeten vanaf hun oude CE cijfer gemiddeld met het aantal punten dat ze omhoog moeten ten opzichte van hun progose (voorspeld CE cijfer op grond van het gemiddelde verschil tussen SE en CE an de groep en hun eigen SE cijfer). De kansrijkste leerling heeft relatieve kansrijkheid 1 en de minst kansrijke leerling heeft een relatieve kansrijkheid van 0. $kans) { $normeerdekans = round((-$kans + $hoogstekans)/($hoogstekans - $laagstekans), 4); echo("
".$lln[$llnr]); $first = 1; foreach ($slaaginfo[$llnr] as $vak => $target) { echo(($first == 1?':':',')." $vak $target"); $first = 0; } echo(" (relatieve kansrijkheid $normeerdekans)"); } ?>