Formularze w połączeniu z PHP - obliczanie pierwiastków równania kwadratowego lub funkcji liniowej
| DZIAŁANIE: |
|
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;