Formuláře v PHP 9. První aplikace: Kvadratická rovnice

Co je potřeba si rozmyslet, než začnu programovat

Ilustrativní foto

Matematika: Jak se to počítá...

Tak asi si to pamatujete z matematiky, ale kdyby náhodou ne... :)

POZOR

Kvadratická rovnice je rovnice ve tvaru ax2 + bx + c = 0.

Zapsáno syntaxí PHP by rovnice vypadala takto: $a * $x**2 + $b * $x + $c = 0.

POZOR

Důležitá hodnota pro řešení kvadratické rovnice diskriminant D = b2 - 4ac.

Zapsáno syntaxí PHP: $d = $b**2 - 4 * $a * $c.

POZOR

Počet řešení kvadratické rovnice (v oboru reálných čísel ℝ) závisí na diskriminantu:

  • $d < 0: Řešení neexistuje.
  • $d = 0: Existuje jedno řešení x = -$b / (2 * $a).
  • $d > 0: Existují dvě řešení x1,2 = (-$b ± sqrt($d) ) / (2 * $a).
SHRNUTO

Takže výpočet řešení bude o nějakých ifech a zápisech matematických funkcí...

Programování: Jak se bude funkce na výpočet řešení chovat

SMŮLA

V PHP žádná vestavěná funkce na výpočet kvadratické rovníce není.

SHRNUTO

Budeme si ji tedy muset napsat sami.

Následující poznámky by si měli ti, co to sprogramováním myslí vážněji, projít dopodrobna.
Ostatní si (pro teď) vystačí s tím, že si poznámky přečtou a zapamatují si tu poslední žlutou :)

POZOR

Vypočítat řešení nebude složité.

Složité bude vymyslet, v jakém formátu bude funkce vypočítaná řešení vracet do hlavní aplikace.

INFO

Když narazím na problém tohoto typu, obrátím se pro radu k programátorským principům.

INFO

Podívám se na stránku se základními principy PHP a vyberu si ty relevantní:

  • KISS (Keep It Simple, Stupid)
  • Oddělení zájmů (Separation of Concerns)
INFO

Princip Oddělení zájmů mi říká, že každá část programu má dělat svou práci, nic navíc.

  • Funkce pro výpočet řešení proto bude jen počítat řešení.
  • Aplikace (příklad) se sama rozhodne, jak s řešením naloží.
INFO

Princip KISS mi říká, že nemám věci komplikovat.

  • Funkce mé vracet 0, 1 nebo 2 čísla (řešení).
    Na neurčitý počet stejných hodnot "v jednom balíku" máme v PHP indexované pole.
  • Poradí si ale aplikace nějak jednoduše s indexovaným polem?
    ANO, půjde to:
    - Aplikace potřebuje jednoduše zjistit, kolik řešení rovnice má = kolik prvků má vrácené pole.
    - K tomu má PHP funkci count($pole), která počet prvků spočítá.
JAK TO UDĚLÁME

Naše funkce tedy spočítá řešení, vloží je to indexovaného pole a to vrátí do aplikace.

Aplikace si pole vezme, spočítá počet jeho prvků a tím zjistí počet řešení.

S tím se dá docela dobře pracovat...

OK, ujasnili jsme si, jak se popereme s funkcí na řešení kvadratické rovnice.
Podívejme se tedy na aplikaci.

  Předchozí stránkaNásledující stránka