コード例 #1
0
    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>&divide;</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');
    }
コード例 #2
0
    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>&divide;</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));
    }
コード例 #3
0
    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>&divide;</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');
    }