Onbekende Tabel

php -l

No syntax errors detected in index.php

Broncode

<?php

// Programma aan de hand van Versteeg's Onbekende Tabel.
// Overhoor programma
// Copyright fwrite.org 2009 ( http://weblog.fwrite.org/contact/ )

// Omzetting van Radialen naar Graden
$aRad       = array(
  
0     => 0,
  
30    => '(1/6)π',
  
45    => '(1/4)π',
  
60    => '(1/3)π',
  
90    => '(1/2)π',
  
120   => '(2/3)π',
  
135   => '(3/4)π',
  
150   => '(5/6)π',
  
180   => 'π',
  
210   => '(7/6)π',
  
225   => '(5/4)π',
  
240   => '(4/3)π',
  
270   => '(3/2)π',
  
300   => '(5/3)π',
  
315   => '(7/4)π',
  
330   => '(11/6)π');

// Verschillende functies
$aMod       = array('sin''cos''tan');

// Exacte antwoorden
$aAns         = array();
$aAns['sin']  = array(
  
0   => 0,
  
30  => '(1/2)',
  
45  => '((√2)/2)',
  
60  => '((√3)/2)',
  
90  => 1,
  
120 => '((√3)/2)',
  
135 => '((√2)/2)',
  
150 => '(1/2)',
  
180 => 0,
  
210 => '-(1/2)',
  
225 => '-((√2)/2)',
  
240 => '((√3)/2)',
  
270 => -1,
  
300 => '-((√3)/2)',
  
315 => '-((√2)/2)',
  
330 => '-(1/2)');

$aAns['cos']  = array(
  
0   => 1,
  
30  => '((√3)/2)',
  
45  => '((√2)/2)',
  
60  => '(1/2)',
  
90  => 0,
  
120 => '-(1/2)',
  
135 => '-((√2)/2)',
  
150 => '-((√3)/2)',
  
180 => -1,
  
210 => '-((√3)/2)',
  
225 => '-((√2)/2)',
  
240 => '-(1/2)',
  
270 => 0,
  
300 => '(1/2)',
  
315 => '((√2)/2)',
  
330 => '((√3)/2)');

$aAns['tan']  = array(
  
0   => 'geen',
  
30  => '((√3)/3)',
  
45  => 1,
  
60  => '√3',
  
90  => 'geen',
  
120 => '-√3',
  
135 => -1,
  
150 => '-((√3)/3)',
  
180 => 0,
  
210 => '((√3)/3)',
  
225 => 1,
  
240 => '√3',
  
270 => 'geen',
  
300 => '-√3',
  
315 => -1,
  
330 => '-((√3)/3)');

// Bepalen van de vraag
$sMod $aMod[array_rand($aMod1)];                      // Willekeurige functie
$iAngle array_rand($aRad1);                           // Willekeurige hoek.

// Genereren van mogelijke antwoorden (en vragen)
$aQuestion[] = $sMod.' '.$iAngle.'°';                     // sin 30
$aQuestion[] = $sMod.' '.$aRad[$iAngle];                  // sin (1/6)π
$aQuestion[] = $aAns[$sMod][$iAngle];                     // (1/2)
$aQuestion[] = round(call_user_func($sMod$iAngle), 4);  // 0.8660

// Selecteer een vraag, en een antwoord
$aJSON['q']  = rand(01) ? $aQuestion[1] : $aQuestion[0];
$aJSON['a']  = rand(02) ? $aQuestion[2] : $aQuestion[3];// 2/3e van de gevallen is exact

// Selecteer 5 willekeurige antwoorden
$aAns array_merge($aAns['sin'], $aAns['cos'], $aAns['tan']);
$aDeg array_keys($aRad);
foreach(
$aDeg as $iDeg) {
  
$aAns[] = round(call_user_func($sMod$iDeg), 4);
  
$aAns[] = rand(01) ? round(sin($iDeg), 4) : round(cos($iDeg), 4);
} unset(
$aDeg);
$aAnsPoss array_rand($aAns5);
foreach(
$aAnsPoss as $iAnsPoss) {
  
$aJSON['p'][] = $aAns[$iAnsPoss];
}
$aJSON['p'][] = $aJSON['a'];
shuffle($aJSON['p']);

echo 
json_encode($aJSON);

Sun, 03 Feb 2019 11:08:25 +0100