Exemple #1
0
 function Generate($level)
 {
     $d = pow(-1, rand(1, 2)) * rand($level, 2 * $level);
     $a0 = rand(-2 * $level, 2 * $level);
     $pos = rand($level + 2, $level + 4);
     // // Original exercise
     // $d = -12;
     // $pos = 5;
     // $a0 = 43;
     $a1 = $a0 + ($pos - 2) * $d;
     $a2 = $a0 + ($pos - 1) * $d;
     $question = 'Egy számtani sorozat ' . OrderText($pos - 1) . ' tagja $' . $a1 . '$, ' . OrderText($pos) . ' tagja $' . $a2 . '$. Határozza meg a sorozat első tagját!';
     $correct = $a0;
     $solution = '$' . $correct . '$';
     $page[] = 'Tudjuk, hogy a $a_{' . strval($pos - 1) . '}=' . $a1 . '$, és $a_{' . $pos . '}=' . $a2 . '$.';
     $page[] = 'A differencia a szomszédos tagok különbsége:$$\\begin{eqnarray}a_{' . strval($pos - 1) . '}+d&=&a_{' . $pos . '}\\\\ d&=&a_{' . $pos . '}-a_{' . strval($pos - 1) . '}\\\\ d&=&' . $a2 . '-' . ($a1 > 0 ? $a1 : '(' . $a1 . ')\\\\ d&=&' . $a2 . '+' . abs($a1)) . '=' . $d . '\\end{eqnarray}$$';
     $page[] = '<div class="alert alert-info"><strong>Sorozat $n.$ tagja:</strong><br />Ha egy sorozat első eleme $a_1$, és a differenciája $d$, akkor a sorozat $n.$ tagja a következő képlettel számítható:$$a_n=a_1+(n-1)\\cdot d$$</div>';
     $hints[] = $page;
     $temp = ($pos - 1) * $d;
     $page = [];
     $page[] = 'Írjuk fel ezt az összefüggést $n=' . $pos . '$-' . On($pos) . '!$$a_{' . $pos . '}=a_1+(' . $pos . '-1)\\cdot ' . ($d > 0 ? $d : '(' . $d . ')') . '$$';
     $page[] = 'Helyettesítsük be $a_{' . $pos . '}$-' . Dativ($pos) . ', és számoljuk ki a jobb oldali kifejezést:$$' . $a2 . '=a_1+' . strval($pos - 1) . '\\cdot ' . ($d > 0 ? $d : '(' . $d . ')') . '=a_1' . ($temp > 0 ? '+' . $temp : $temp) . '$$';
     if ($temp < 0) {
         $page[] = 'Adjunk hozzá mindkét oldalhoz $' . abs($temp) . '$-' . Dativ($temp) . '!$$' . $a2 . '+' . abs($temp) . '=a_1$$';
     } elseif ($temp > 0) {
         $page[] = 'Vonjunk ki mindkét oldalból $' . $temp . '$-' . Dativ($temp) . '!$$' . $a2 . '-' . $temp . '=a_1$$';
     }
     $page[] = 'Tehát az $a_1$ értéke <span class="label label-success">$' . $a0 . '$</span>.';
     $hints[] = $page;
     return array('question' => $question, 'correct' => $correct, 'solution' => $solution, 'hints' => $hints);
 }
 function Hints($sgn2, $const, $type)
 {
     if ($type == 1) {
         $x = 4;
         $mult = 9;
     } else {
         $x = rand(2, 7);
         $mult = rand(2, 6);
     }
     list($y1, $fun1) = $this->GetFunValue($sgn2, $const, $type, $x);
     list($y2, $fun2) = $this->GetFunValue($sgn2, $const, $type, $x * $mult);
     $text[] = 'Számoljuk ki a függvény értékét valahol, pl. az $x=' . $x . '$ helyen:$$f(' . $x . ')=' . $fun1 . '$$';
     $text[] = 'Most szorozzuk meg az $x$ értékét pl. $' . $mult . '$-' . With($mult) . ': ' . '$$' . $mult . '\\cdot x=' . strval($x * $mult) . '$$';
     $text[] = 'Számoljuk ki itt is a függvény értékét:' . '$$f(' . $mult . '\\cdot' . $x . ')=f(' . strval($x * $mult) . ')=' . $fun2 . '$$';
     $hints[] = $text;
     $text = [];
     if ($type == 0) {
         $text[] = 'A <b>fordított arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke annyiadrészére csökken:$$f(' . $mult . '\\cdot x)=\\frac{1}{' . $mult . '}\\cdot f(x)$$';
         $text[] = 'Ez most nem teljesül, mert: $$' . $y2 . '\\neq\\frac{1}{' . $mult . '}\\cdot ' . ($y1 >= 0 ? $y1 : '(' . $y1 . ')') . '$$';
         $text[] = 'Tehát a függvény <span class="label label-danger">nem</span> fordított arányosságot ír le.';
         $hints[] = $text;
         $text = [];
         $text[] = 'Az <b>egyenes arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke is annyiszorosára nő:$$f(' . $mult . '\\cdot x)=' . $mult . '\\cdot f(x)$$';
         $text[] = 'Ez most teljesül, mert: $$' . $y2 . '=' . $mult . '\\cdot ' . ($y1 >= 0 ? $y1 : '(' . $y1 . ')') . '$$';
         $text[] = 'Könnyen belátható, hogy ez nem csak az $x=' . $x . '$-' . On($x) . ' igaz, hanem akármelyik $x$-re.';
         $text[] = 'Tehát a függvény <span class="label label-success">egyenes arányosságot</span> ír le.';
         $hints[] = $text;
         $text = [];
     } elseif ($type == 2) {
         $text[] = 'Az <b>egyenes arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke is annyiszorosára nő:$$f(' . $mult . '\\cdot x)=' . $mult . '\\cdot f(x)$$';
         $text[] = 'Ez most nem teljesül, mert: $$' . $fun2 . '\\neq' . $mult . '\\cdot ' . ($y1 >= 0 ? $fun1 : '(' . $fun1 . ')') . '$$';
         $text[] = 'Tehát a függvény <span class="label label-danger">nem</span> egyenes arányosságot ír le.';
         $hints[] = $text;
         $text = [];
         $text[] = 'A <b>fordított arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke annyiadrészére csökken:$$f(' . $mult . '\\cdot x)=\\frac{1}{' . $mult . '}\\cdot f(x)$$';
         $text[] = 'Ez most teljesül, mert: $$' . $fun2 . '=\\frac{1}{' . $mult . '}\\cdot ' . ($fun1 >= 0 ? $fun1 : '(' . $fun1 . ')') . '$$';
         $text[] = 'Könnyen belátható, hogy ez nem csak az $x=' . $x . '$-' . On($x) . ' igaz, hanem akármelyik $x$-re.';
         $text[] = 'Tehát a függvény <span class="label label-success">fordított arányosságot</span> ír le.';
         $hints[] = $text;
         $text = [];
     } else {
         $text[] = 'Az <b>egyenes arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke is annyiszorosára nő:$$f(' . $mult . '\\cdot x)=' . $mult . '\\cdot f(x)$$';
         $text[] = 'Ez most nem teljesül, mert: $$' . $y2 . '\\neq' . $mult . '\\cdot ' . ($y1 >= 0 ? $y1 : '(' . $y1 . ')') . '$$';
         $text[] = 'Tehát a függvény <span class="label label-danger">nem</span> egyenes arányosságot ír le.';
         $hints[] = $text;
         $text = [];
         $text[] = 'A <b>fordított arányosság</b> azt jelenti, hogy ahányszor megnövelem az $x$ értékét, ' . 'az $f(x)$ értéke annyiadrészére csökken:$$f(' . $mult . '\\cdot x)=\\frac{1}{' . $mult . '}\\cdot f(x)$$';
         $text[] = 'Ez most nem teljesül, mert: $$' . $y2 . '\\neq\\frac{1}{' . $mult . '}\\cdot ' . ($y1 >= 0 ? $y1 : '(' . $y1 . ')') . '$$';
         $text[] = 'Tehát a függvény <span class="label label-danger">nem</span> fordított arányosságot ír le.';
         $text[] = 'Tehát a függvény <span class="label label-success">egyik arányosságot sem</span> írja le.';
         $hints[] = $text;
         $text = [];
     }
     return $hints;
 }
 function Hints($a, $b, $c, $x1, $x2, $relation, $no_solutions)
 {
     $page[] = 'Először oldjuk meg az alábbi egyenletet:' . $this->Equation_text($a, $b, $c, $x1, $x2);
     $page[] = '<div class="alert alert-info"><b>Megoldóképlet:</b><br />Az $a\\cdot x^2+b\\cdot x+c=0$ alakú egyenlet megoldásai:$$x_{1,2}=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}$$</div>';
     $hints[] = $page;
     $hints[][] = 'Behelyettesítve a következő kifejezést kapjuk:' . $this->Equation_text($a, $b, $c, $x1, $x2, 1);
     if ($no_solutions == 0) {
         $hints[][] = 'Láthatjuk, hogy a gyökjel alatti kifejezés negatív, ezért ennek a feladatnak <span class="alert alert-success">nincs megoldása</span>.';
     } elseif ($no_solutions == 1) {
         $page = [];
         $page[] = 'Mivel a gyökjel alatti kifejezés értéke $0$, ezért az egyenletnek csak egy megoldása van, az $x=' . $x1 . '$.';
         $page[] = 'Ábrázoljuk az eredeti egyenlőtlenséget grafikonon!';
         $page[] = 'Mivel a kifejezés másodfokú, ezért a képe egy parabola lesz.';
         $page[] = 'Mivel az $x^2$ együtthatója ' . ($a > 0 ? 'pozitív' : 'negatív') . ', ezért a parabola ' . ($a > 0 ? 'fölfelé' : 'lefelé') . ' áll.';
         $page[] = 'Mivel csak egy zérushely van, ezért a parabola csak egy pontban (a zérushelyen) érinti az $x$ tengelyt.';
         $hints[] = $page;
         $hints[][] = 'Ezek alapján már könnyen fel tudjuk rajzolni a grafikon alakját:' . $this->Graph($a, $b, $c, $x1, $x2, $relation);
         switch ($relation) {
             case '\\leq':
                 $hints[][] = 'Mivel csak a nemnegatív ($\\leq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a > 0 ? 'csak ' . The($x1) . ' <span class="label label-success">$x=' . $x1 . '$</span> lesz.' : 'az egész számegyenes lesz, azaz <span class="label label-success">$x\\in\\mathbb{R}$</span> (ahol $\\mathbb{R}$ a valós számok halmazát jelöli).') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '<':
                 $hints[][] = 'Mivel csak a negatív ($<0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a > 0 ? '<span class="label label-success">nincs megoldása</span> megoldás.' : The($x1) . ' $' . $x1 . '$-' . On($x1) . ' kívül minden szám mgoldása lesz, tehát <span class="label label-success">$x\\neq' . $x1 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '>':
                 $hints[][] = 'Mivel csak a pozitív ($>0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a < 0 ? '<span class="label label-success">nincs megoldása</span> megoldás.' : The($x1) . ' $' . $x1 . '$-' . On($x1) . ' kívül minden szám mgoldása lesz, tehát <span class="label label-success">$x\\neq' . $x1 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '\\geq':
                 $hints[][] = 'Mivel csak a nempozitív ($\\geq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a < 0 ? 'csak ' . The($x1) . ' <span class="label label-success">$x=' . $x1 . '$</span> lesz.' : 'az egész számegyenes lesz, azaz <span class="label label-success">$x\\in\\mathbb{R}$</span> (ahol $\\mathbb{R}$ a valós számok halmazát jelöli).') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             default:
                 # code...
                 break;
         }
     } elseif ($no_solutions == 2) {
         $page = [];
         $page[] = 'Mivel a gyökjel alatti kifejezés értéke pozitív, ezért az egyenletnek két megoldása van, az $x_1=' . $x1 . '$ és az $x_2=' . $x2 . '$.';
         $page[] = 'Ábrázoljuk az eredeti egyenlőtlenséget grafikonon!';
         $page[] = 'Mivel a kifejezés másodfokú, ezért a képe egy parabola lesz.';
         $page[] = 'Mivel az $x^2$ együtthatója ' . ($a > 0 ? 'pozitív' : 'negatív') . ', ezért a parabola ' . ($a > 0 ? 'fölfelé' : 'lefelé') . ' áll.';
         $page[] = 'Mivel két zérushely van, ezért a parabola két pontban (a zérushelyeken) metszi az $x$ tengelyt.';
         $hints[] = $page;
         $hints[][] = 'Ezek alapján már könnyen fel tudjuk rajzolni a grafikon alakját:' . $this->Graph($a, $b, $c, $x1, $x2, $relation);
         switch ($relation) {
             case '\\leq':
                 $hints[][] = 'Mivel csak a nemnegatív ($\\leq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a > 0 ? 'a két zérushely közti értékek lesznek (a végpontokkal együtt), azaz <span class="label label-success">$' . $x1 . '\\leq x\\leq' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb vagy azzal egyenlő, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb vagy azzal egyenlő számok lesznek, azaz <span class="label label-success">$x\\leq' . $x1 . '$ vagy $x\\geq' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '<':
                 $hints[][] = 'Mivel csak a negatív ($<0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a > 0 ? 'a két zérushely közti értékek lesznek (a végpontok nélkül), azaz <span class="label label-success">$' . $x1 . '< x <' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb számok lesznek, azaz <span class="label label-success">$x<' . $x1 . '$ vagy $x<' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '>':
                 $hints[][] = 'Mivel csak a pozitív ($>0$) értékekre vagyunk kíváncsiak, ezért a feladatnak ' . ($a < 0 ? 'a két zérushely közti értékek lesznek (a végpontok nélkül), azaz <span class="label label-success">$' . $x1 . '< x <' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb számok lesznek, azaz <span class="label label-success">$x<' . $x1 . '$ vagy $x<' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             case '\\geq':
                 $hints[][] = 'Mivel csak a nempozitív ($\\geq0$) értékekre vagyunk kíváncsiak, ezért a megoldás ' . ($a < 0 ? 'a két zérushely közti értékek lesznek (a végpontokkal együtt), azaz <span class="label label-success">$' . $x1 . '\\leq x\\leq' . $x2 . '$</span> lesz.' : The($x1) . ' $' . $x1 . '$-' . By($x1) . ' kisebb vagy azzal egyenlő, illetve ' . The($x2) . ' $' . $x2 . '$-' . By($x1) . ' nagyobb vagy azzal egyenlő számok lesznek, azaz <span class="label label-success">$x\\leq' . $x1 . '$ vagy $x\\geq' . $x2 . '$</span>.') . $this->Graph($a, $b, $c, $x1, $x2, $relation, 1);
                 break;
             default:
                 # code...
                 break;
         }
     }
     return $hints;
 }