Formularze w połączeniu z PHP - obliczanie pierwiastków równania kwadratowego lub funkcji liniowej

DZIAŁANIE:
Podaj współczynniki równania:




 

Kod:

Ewentualne Objaśnienia:

Zapewne pamiętacie przykład z obliczaniem pierwiastków równania kwadratowego, gdzie pokazywałem Wam przykład korzystania z instrukcji warunkowej if. Tutaj generalnie mamy niemal takie same działanie, jednak jak się dobrze przyjrzycie jest to bardziej skomplikowany kod i nie tylko ze względu na to, że wartości współczynników a, b oraz c podaje się, a nie są ustalane z góry.

Na pierwszy ogień widać mamy dwie nowe funkcje :

1). str_replace - funkcja ta w łańcuchu ( zmiennej ) będącej jej trzecim argumentem zamienia wszystkie wystąpienia drugiego argumentu (parametru) na pierwszy. A tak na chłopski rozum no to mamy w kodzie na przykład:

$a = str_replace(",",".", $_GET['a']); czyli funkcja str_replace powoduje, że w tablicy $_GET od indeksu a - czyli w pobranej wartości współczynnika a zamienia wszelkie znaki ' ( przecinek ) na . ( kropka ). Jest to po to aby można było dalej prawidłowo korzystać z podanych w formularzy wartości ponieważ liczby z częściami dziesiętnymi - podajemy części dziesiętne po kropce, a nie przecinku.
Czyli ogólna składnia funkcji str_replace:

str_replace("PARAMETR DO ZMIENIENIA","NA JAKI CHCEMY ZMIENIĆ", ZMIENNA ALBO ŁAŃCUCH W KTÓRYM ZMIENIAMY);

2). settype - jest to funkcja służąca do zmiany ( o ile jest to możliwe ) zmienną będącą pierwszym parametrem a typ określony drugim parametrem.
Czyli mamy kod :

settype ($a, "double"); - czyli zmienna $a ( jej zawartość ) jest zmieniana na typ double - czyli liczbę rzeczywistą. Po co to jest ? A po to, że jak no ktoś wpisze nam współczynnik na przykład : 3.555mffdf4 - wtedy zmienna $a zostanie zamieniona na wartość 3.555 - czyli jak widać funkcja settype w tym wypadku bierze pod uwagę początek zmiennej, który odpowiada liczbie rzeczywistej, a jeśli po nim występuje coś innego ( tutaj znaki, litery ) to zostaje to opuszczone.
Inne parametry możliwe do zastosowania to integer, string czy array. Ale o tym kiedyś indziej;

Skoro już wiecie jak działają te dwie nowe funkcje myślę, że dalsze rozpracowanie kody nie jest trudne. Jak widać instrukcja warunkowa sprawdza czy jest wpisana którakolwiek z wartości współczynników a, bo oraz c ( przypominam że znaki || oznaczają lub ). Jeśli nie - wypisywani jest formularz.
Natomiast jeżeli któraś z tych wartości jest wpisana to sprawdzane jest która i wtedy jeśli :
- wpisana jest zmienna $a ( współczynnik a ) to obliczana jest delta i zależnie od jej wartości obliczane lub nie pierwiastki i pojawia się informacja o nich;
- wpisana jest zmienna $b ( współczynnik b ) czyli zmienna $a ( współczynnik a ) ma wartość 0 więc pojawia się nam komunikat, że jest to funkcja liniowa, a nie kwadratowa ( ponieważ wtedy posiada wzór 0x2+bx1+c ). Miejsce zerowe tej funkcji liniowej jest obliczane i wyświetlane;
- jeśli oba te warunki nie są spełnione to oznacza, że wpisana jest tylko zmienna $c ( współczynnik c ) czyli mamy do czynienia z funkcją stała ponieważ współczynniki a oraz b mają wartość 0;