function Generate($level) { $CI =& get_instance(); $CI->load->library('10/Szogfuggvenyek/Haromszog_tangens', NULL, 'tangens'); $node = 'AC'; $length = rand(ceil($level / 2), $level); $AB = $length + rand(ceil($level / 2), $level); $question = 'Az $ABC$ derékszögű háromszög $' . $node . '$ befogója $' . $length . '$ cm, $AB$ átfogója $' . $AB . '$ cm hosszú. Számítsa ki az $ABC$ háromszög hegyesszögeinek nagyságát legalább két tizedesjegy pontossággal!'; $alpha = toDeg(acos($length / $AB)); $beta = 90 - $alpha; $alphatext = str_replace('.', ',', round($alpha * 100) / 100); $betatext = str_replace('.', ',', round($beta * 100) / 100); $correct = array(round1($alpha), round1($beta)); $labels = array('$\\alpha$', '$\\beta$'); $solution = '$\\alpha=' . $alphatext . '°$ és $\\beta=' . $betatext . '°$.'; $hints[][] = 'Rajzoljunk egy derékszögű háromszöget:' . $CI->tangens->Triangle(); $hints[][] = 'Tudjuk, hogy az $\\textcolor{blue}{' . $node . '}$ befogó $' . $length . '$ cm hosszú:' . $CI->tangens->Triangle([$node], [$length], ['blue']); $hints[][] = 'Tudjuk, hogy az $\\textcolor{green}{AB}$ átfogó $' . $AB . '$ cm hosszú:' . $CI->tangens->Triangle([$node, 'AB'], [$length, $AB], ['blue', 'green']); $page[] = 'Az $\\alpha$ szög <b>koszinusza</b> a szög melletti befogó ($AC$) és az átfogó ($AB$) hányadosa:' . '$$\\cos\\alpha=\\frac{\\textcolor{blue}{AC}}{\\textcolor{green}{AB}}=' . '\\frac{\\textcolor{blue}{' . $length . '}}{\\textcolor{green}{' . $AB . '}}' . '$$'; $page[] = 'Az $\\alpha$ szöget úgy kapjuk meg, ha a hányados <b>arkusz koszinuszát</b> vesszük (ami a koszinusz függvény inverze), és az eredményt két tizedesjegyre kerekítjük:$$\\alpha=\\arccos\\frac{\\textcolor{blue}{' . $length . '}}{\\textcolor{green}{' . $AB . '}}=' . $alphatext . '°$$'; $page[] = '<b>Megjegyzés</b>: az eredményt a következőképpen lehet kiszámolni számológéppel: <ol> <li>Állítsuk be a gépet <b>DEG</b> módba (ha még nem tettük):<br /><kbd>MODE</kbd> <kbd>DEG</kbd></li> <li>Az koszinusz függvény inverzét a <b>cos<sup>-1</sup></b> gomb segítségével lehet kiszámolni:<br />' . '<kbd>' . $length . '</kbd> <kbd>÷</kbd> <kbd>' . $AB . '</kbd> <kbd>=</kbd> <kbd>Shift</kbd> <kbd>cos<sup>-1</sup></kbd> <kbd>=</kbd></li> </ol>'; $page[] = 'Tehát az $\\alpha$ szög <span class="label label-success">$' . $alphatext . '°$</span>.'; $hints[] = $page; $page = []; $page[] = 'Mivel a háromszög belső szögeinek összege $180°$, ezért a $\\beta$ szöget már könnyen ki lehet számolni:$$\\beta=180°-90°-' . $alphatext . '°$$'; $page[] = 'Tehát a $\\beta$ szög <span class="label label-success">$' . $betatext . '°$</span>.'; $hints[] = $page; return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'labels' => $labels, 'type' => 'array'); }
function Hints($bottom, $top, $side) { $hints[][] = 'Mivel a trapéz szimmetrikus, ezért az $A$ és $B$ csúcsnál lévő szögek, illetve a $C$ és $D$ csúcsnál lévő szögek ugyanakkorák:' . $this->Trapez($bottom, $top, $side, 1); $hints[][] = 'Vetítsük le a $CD$ szakaszt merőlegesen az $AB$ szakaszra. Az így kapott $EF$ szakasz ugyanakkora, mint a $CD$ szakasz:' . $this->Trapez($bottom, $top, $side, 2); $ae = ($bottom - $top) / 2; $hints[][] = 'Az $AE$ szakasz hosszát úgy tudjuk kiszámolni, hogy az $AB$ szakasz hosszából kivonjuk az $EF$ szakasz hosszát, és elosztjuk $2$-vel: $$\\frac{' . $bottom . '-' . $top . '}{2}=\\frac{' . strval($bottom - $top) . '}{2}=' . round2($ae) . '\\,\\text{cm}$$' . $this->Trapez($bottom, $top, $side, 3); $alpha = toDeg(acos($ae / $side)); $hints[][] = 'Az $AE$ és $AD$ szakasz hányadosa az $A$ csúcsnál lévő $\\alpha$ szög koszinuszával egyenlő:$$\\cos\\alpha=\\frac{AE}{AD}=\\frac{' . round2($ae) . '}{' . round2($side) . '}$$' . $this->Trapez($bottom, $top, $side, 4); $page[] = 'Ekkor az $\\alpha$ szög a hányados arkusz koszinuszával egyenlő:$$\\alpha=\\arccos\\left(\\frac{' . round2($ae) . '}{' . round2($side) . '}\\right)$$'; $page[] = '<b>Megjegyzés</b>: az eredményt a következőképpen lehet kiszámolni számológéppel: <ol> <li>Állítsuk be a gépet <b>DEG</b> módba (ha még nem tettük):<br /><kbd>MODE</kbd> <kbd>DEG</kbd></li> <li>A koszinusz függvény inverzét a <b>cos<sup>-1</sup></b> gomb segítségével lehet kiszámolni:<br />' . '<kbd>' . round2($ae) . '</kbd> <kbd>÷</kbd> <kbd>' . round2($side) . '</kbd> <kbd>=</kbd> <kbd>Shift</kbd> <kbd>cos<sup>-1</sup></kbd> <kbd>=</kbd></li> </ol>'; $hints[] = $page; $beta = 180 - round1($alpha); $page = []; $page[] = 'Tehát az $A$ csúcsnál lévő szög nagysága $' . Round2($alpha) . '°$.'; $page[] = 'Tudjuk, hogy a trapéz két oldalsó szöge $180°$-ra egészíti ki egymást, ezért a $D$ csúcsnál lévő szöget úgy tudjuk kiszámolni, hogy a $180°$-ból kivonjuk az $\\alpha$ szöget: $180°-' . round2($alpha) . '°=' . round2($beta) . '°$, aminek az egészekre kerekített értéke <span class="label label-success">$' . round($beta) . '°$</span>.'; $hints[] = $page; return array($hints, round($beta)); }
function Generate($level) { $AC = rand($level, 2 * $level); $BC = rand($level, 2 * $level); if ($AC == $BC && rand(1, 3) < 3) { while ($AC == $BC) { $BC = rand($level, 2 * $level); } } // // Original exercise // $AC = 6; // $BC = 8; $question = 'Az $ABC$ derékszögű háromszög $AC$ befogója $' . $AC . '$ cm, $BC$ befogója $' . $BC . '$ cm hosszú. Számítsa ki az $ABC$ háromszög hegyesszögeinek nagyságát legalább két tizedesjegy pontossággal!'; $alpha = toDeg(atan($AC / $BC)); $beta = toDeg(atan($BC / $AC)); $correct = array(round1($alpha), round1($beta)); $labels = array('$\\alpha$', '$\\beta$'); $solution = '$\\alpha=' . round2($alpha) . '°$ és $\\beta=' . round2($beta) . '°$.'; $hints[][] = 'Rajzoljunk egy derékszögű háromszöget:' . $this->Triangle(); $hints[][] = 'Tudjuk, hogy az $\\textcolor{blue}{AC}$ befogó $' . $AC . '$ cm hosszú:' . $this->Triangle(['AC'], [$AC], ['blue']); $hints[][] = 'Tudjuk, hogy az $\\textcolor{green}{BC}$ befogó $' . $BC . '$ cm hosszú:' . $this->Triangle(['AC', 'BC'], [$AC, $BC], ['blue', 'green']); $page[] = 'Tudjuk, hogy az $\\alpha$ szög <b>tangense</b> egyenlő a távolabbi és a közelebbi befogó hányadosával:' . '$$\\tan\\alpha=\\frac{\\textcolor{blue}{AC}}{\\textcolor{green}{BC}}=' . '\\frac{\\textcolor{blue}{' . $AC . '}}{\\textcolor{green}{' . $BC . '}}' . '$$'; $page[] = 'Az $\\alpha$ szöget megkapjuk, ha a hányados <b>arkusz tangensét</b> vesszük (ami a tangens függvény inverze), és az eredményt két tizedesjegyre kerekítjük:$$\\alpha=\\arctan\\frac{\\textcolor{blue}{' . $AC . '}}{\\textcolor{green}{' . $BC . '}}\\approx' . round2($alpha) . '°$$'; $page[] = '<b>Megjegyzés</b>: az eredményt a következőképpen lehet kiszámolni számológéppel: <ol> <li>Állítsuk be a gépet <b>DEG</b> módba (ha még nem tettük):<br /><kbd>MODE</kbd> <kbd>DEG</kbd></li> <li>Az arkusz tangenst a <b>tan<sup>-1</sup></b> gomb segítségével lehet kiszámolni:<br />' . '<kbd>' . $AC . '</kbd> <kbd>÷</kbd> <kbd>' . $BC . '</kbd> <kbd>=</kbd> <kbd>Shift</kbd> <kbd>tan<sup>-1</sup></kbd> <kbd>=</kbd></li> </ol>'; $page[] = 'Tehát az $\\alpha$ szög <span class="label label-success">$' . round2($alpha) . '°$</span>.'; $hints[] = $page; $page = []; $page[] = 'Mivel a háromszög belső szögeinek összege $180°$, ezért a $\\beta$ szöget már könnyen ki lehet számolni:$$\\beta=180°-90°-' . round2($alpha) . '°$$'; $page[] = 'Tehát a $\\beta$ szög <span class="label label-success">$' . round2($beta) . '°$</span>.'; $hints[] = $page; return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints, 'labels' => $labels, 'type' => 'array'); }