function roman_convert_ROMto10($level) { if ($level <= 3) { $szam = rand(1, 399); } elseif ($level <= 6) { $szam = rand(400, 3999); } else { $szam = numGen(rand(5, 6), 10); while ($szam >= 4000000) { $szam = numGen(rand(5, 6), 10); } } $romai_szam = convertRoman($szam); $correct = $szam; if ($szam > 9999) { $szam = number_format($szam, 0, ',', '\\\\,'); } $question = 'Írjuk fel az alábbi római számot tízes számrendszerben!$$\\mathrm{' . $romai_szam . '}$$'; $options = ''; $solution = '$' . $szam . '$'; $type = 'int'; return array('question' => $question, 'options' => $options, 'correct' => $correct, 'solution' => $solution, 'type' => $type); }
function binary_convert_10to2($level) { if ($level <= 3) { $hossz = rand(2, 4); } elseif ($level <= 6) { $hossz = rand(5, 8); } else { $hossz = rand(9, 11); } $correct = numGen($hossz, 2); $numb = array(0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024); $szamjegyek = str_split($correct); $szam = 0; foreach ($szamjegyek as $key => $value) { if ($value == 1) { $szam = $szam + pow(2, $hossz - $key - 1); } } $question = 'A $0$ és $1$ számjegyek segítségével váltsuk át kettes számrendszerbe az alábbi számot!$$' . $szam . '_{10}$$'; $solution = '$' . $correct . '$'; $options = ''; $type = 'int'; return array('question' => $question, 'options' => $options, 'correct' => $correct, 'solution' => $solution, 'type' => $type); }
function number_compare_between($level) { if ($level <= 3) { $intervallum = rand(1, 5); $hossz = rand(1, 2); } elseif ($level <= 6) { $intervallum = rand(6, 15); $hossz = rand(3, 6); } else { $intervallum = rand(16, 20); $hossz = rand(7, 10); } if ($level <= 3 && rand(1, 3) == 1) { $szam_bal = 0; } else { $szam_bal = numGen($hossz, 10); } $szam_jobb = $szam_bal + $intervallum; $correct = $szam_jobb - $szam_bal - 1; if (rand(1, 2) == 1) { $hatarpont_bal = TRUE; $correct++; } else { $hatarpont_bal = FALSE; } if (rand(1, 2) == 1) { $hatarpont_jobb = TRUE; $correct++; } else { $hatarpont_jobb = FALSE; } $opcio_kivalasztott = rand(0, 3); if ($szam_bal > 9999) { $szam_bal = number_format($szam_bal, 0, ',', '\\,'); } if ($szam_jobb > 9999) { $szam_jobb = number_format($szam_jobb, 0, ',', '\\,'); } if ($hatarpont_bal) { if ($hatarpont_bal == 0 && rand(1, 2) == 1) { if (rand(1, 2 == 1)) { $szoveg_bal = ''; } } else { $opcio_bal[0] = 'legalább $' . $szam_bal . '$'; $opcio_bal[1] = 'nem kisebb, mint $' . $szam_bal . '$'; $opcio_bal[2] = 'nem kisebb $' . $szam_bal . '$-' . By($szam_bal); $opcio_bal[3] = '$' . $szam_bal . '$-' . By($szam_bal) . ' nem kisebb'; $szoveg_bal = $opcio_bal[$opcio_kivalasztott]; } } else { $opcio_bal[0] = 'nagyobb, mint $' . $szam_bal . '$'; $opcio_bal[1] = 'nagyobb, mint $' . $szam_bal . '$'; $opcio_bal[2] = 'nagyobb $' . $szam_bal . '$-' . By($szam_bal); $opcio_bal[3] = '$' . $szam_bal . '$-' . By($szam_bal) . ' nagyobb'; $szoveg_bal = $opcio_bal[$opcio_kivalasztott]; } if ($hatarpont_jobb) { $opcio_jobb[0] = 'legfeljebb $' . $szam_jobb . '$'; $opcio_jobb[1] = 'nem nagyobb, mint $' . $szam_jobb . '$'; $opcio_jobb[2] = 'nem nagyobb $' . $szam_jobb . '$-' . By($szam_jobb); $opcio_jobb[3] = '$' . $szam_jobb . '$-' . By($szam_jobb) . ' nem nagyobb'; $szoveg_jobb = $opcio_jobb[$opcio_kivalasztott]; } else { $opcio_jobb[0] = 'kisebb, mint $' . $szam_jobb . '$'; $opcio_jobb[1] = 'kisebb, mint $' . $szam_jobb . '$'; $opcio_jobb[2] = 'kisebb $' . $szam_jobb . '$-' . By($szam_jobb); $opcio_jobb[3] = '$' . $szam_jobb . '$-' . By($szam_jobb) . ' kisebb'; $szoveg_jobb = $opcio_jobb[$opcio_kivalasztott]; } $options = ''; $question = 'Hány olyan természetes szám van, amely ' . $szoveg_bal . ' és ' . $szoveg_jobb . '?'; $solution = '$' . $correct . '$'; $type = 'int'; return array('question' => $question, 'options' => $options, 'correct' => $correct, 'solution' => $solution, 'type' => $type); }
function basic_subtraction($level) { if ($level <= 3) { $length1 = 1; $length2 = 1; } elseif ($level <= 6) { $length1 = 2; $length2 = round(1, 2); } else { $length1 = 3; $length2 = 2; } $num1 = numGen($length1, 10); $num2 = numGen($length2, 10); if ($num1 < $num2) { list($num1, $num2) = array($num2, $num1); } $correct = $num1 - $num2; $question = 'Végezzük el az alábbi kivonást!' . basic_subtraction_generate_equation($num1, $num2); if ($correct > 9999) { $solution = '$' . number_format($correct, 0, ',', '\\,') . '$'; } else { $solution = '$' . $correct . '$'; } $explanation = basic_subtraction_explanation($num1, $num2); return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'explanation' => $explanation, 'hint_replace' => TRUE); }
function number_round_not_rounded($level) { if ($level <= 3) { $hossz = rand(2, 3); } elseif ($level <= 6) { $hossz = rand(3, 6); } else { $hossz = rand(7, 10); } $szam = numGen($hossz, 10); for ($i = 0; $i < $hossz + 1; $i++) { $options_jo[$i] = round($szam / pow(10, $i)) * pow(10, $i); $options_fel[$i] = ceil($szam / pow(10, $i)) * pow(10, $i); $options_le[$i] = floor($szam / pow(10, $i)) * pow(10, $i); $options_rossz[$i] = round($szam / pow(10, $i) + 1) * pow(10, $i); $options_rossz_fel[$i] = ceil($szam / pow(10, $i) + 1) * pow(10, $i); $options_rossz_le[$i] = floor($szam / pow(10, $i) + 1) * pow(10, $i); } $sikerult = FALSE; $numb = range(0, $hossz); shuffle($numb); foreach ($numb as $value) { if (!$sikerult && !in_array($options_fel[$value], $options_jo) && $options_le[$value] != 0) { $rossz = $options_fel[$value]; $options_jo[$value] = $rossz; $sikerult = TRUE; } elseif (!$sikerult && !in_array($options_le[$value], $options_jo) && $options_le[$value] != 0) { $rossz = $options_le[$value]; $options_jo[$value] = $rossz; $sikerult = TRUE; } } if (!$sikerult) { foreach ($numb as $value) { if (!$sikerult && !in_array($options_rossz[$value], $options_jo) && $options_rossz[$value] != 0) { $rossz = $options_rossz[$value]; $options_jo[$value] = $rossz; $sikerult = TRUE; } elseif (!$sikerult && !in_array($options_rossz_le[$value], $options_jo) && $options_rossz_le[$value] != 0) { $rossz = $options_rossz_le[$value]; $options_jo[$value] = $rossz; $sikerult = TRUE; } elseif (!$sikerult && !in_array($options_rossz_fel[$value], $options_jo) && $options_rossz_fel[$value] != 0) { $rossz = $options_rossz_fel[$value]; $options_jo[$value] = $rossz; $sikerult = TRUE; } } } if (!$sikerult) { print_r('Feladatgenerálás sikertelen. Kérlek, frissítsd a honlapot!'); } $options = array_unique($options_jo); $correct = array_search($rossz, $options_jo); if ($options[$correct] > 9999) { $solution = '$' . number_format($options[$correct], 0, ',', '\\\\,') . '$'; } else { $solution = '$' . $options[$correct] . '$'; } foreach ($options as $key => $value) { if ($value > 9999) { $options[$key] = '$' . number_format($value, 0, ',', '\\,') . '$'; } else { $options[$key] = '$' . $value . '$'; } } if ($szam > 9999) { $szam = number_format($szam, 0, ',', '\\,'); } $question = 'Melyik nem lehet az alábbi szám kerekített értéke?$$' . $szam . '$$'; $type = 'quiz'; return array('question' => $question, 'options' => $options, 'correct' => $correct, 'solution' => $solution, 'type' => $type); }
/** * Generate new random number based on given number * * @param int $num Number * @param int $len Length of number * * @return int $new New number */ function newNum($num, $len) { if (rand(1, 3) == 1) { $new = numGen(rand($len - 1, $len + 1), 10); } else { if (rand(1, 2) == 1) { $ujhossz = floor($len / 2); } else { $ujhossz = $len - 1; } $new = $num + numGen(rand(1, $ujhossz), 10); } return $new; }