Witam, jestem nowy na forum, liczę na Waszą pomoc. Mam problem z wyrażeniami matematycznymi w bashu. Piszę skrypt obliczający pierwiastki równania kwadratowego, jednak mam problem ze sformułowaniem prawidłowych operacji matematycznych w nawiasach. Tutoriale nie pokazują bardziej skomplikowanych przykładów obliczeń z ustaloną kolejnością wykonywania działań, w C++ pogrupowanie w nawiasy nie sprawiało mi problemu, w BASHu ciagle dostaje komunikaty o bledzie w skladni. Czy ktoś jest mi w stanie pomóc i poprawić mój skrypt, lub chociaż podać jakieś wskazówki, np jak obliczyć pierwiastek z danej zmiennej lub tez policzyc wyrazenie typu B^2 - 4*A*C. Zamieszczam mój kod:
Na pierwszy rzut oka operator ^ podnosi do potęgi, jednak dzieje się całkowicie coś innego - po podstawieniu za A=6 B=7 C=1 skrypt prawidlowo wylicza DELTA = 25, jednak z wyrażenia które napisałeś dla zmiennej PIERW wyliczana jest w tym przypadku wartość 27, tak jakby zostało wykonane dodawanie "$(( DELTA^2 ))" =>>> 25+2
Jak poprawnie sformułowac wyrazanie ze zmienna niecalkowita - błąd pojawia się przy obliczaniu P1 i P2. Przedstawiam kod skryptu i wynik jego działania:
wasal@stirlitz:~$ ./skrypt
Podaj A:
6
Podaj B:
7
Podaj C:
1
Delta wynosi: 25 , jej pierwiastek to: 5.00000
./skrypt: line 20: 5.00000: syntax error in expression (error token is ".00000")
./skrypt: line 21: 5.00000: syntax error in expression (error token is ".00000")
Rownanie posiada dwa pierwiastki: i