bash piekno
bash piekno
abcdefghijkloprstwxyz
Ostatnio zmieniony 09 grudnia 2022, 21:31 przez dawioo, łącznie zmieniany 1 raz.
Re: BASH funkcja kwadratowa.
ale git
Ostatnio zmieniony 09 grudnia 2022, 21:31 przez dawioo, łącznie zmieniany 1 raz.
- marcin1982
- Moderator
- Posty: 1731
- Rejestracja: 05 maja 2011, 12:59
- Lokalizacja: Zagłębie Dąbrowskie
Re: BASH funkcja kwadratowa.
Żeby równanie było kwadratowe, przynajmniejj współczynnik a przy x2 musi być różny od zera. Drugi warunek jest taki, żeby wszystkie współczynniki były liczbami.
Re: BASH funkcja kwadratowa.
ok
Ostatnio zmieniony 09 grudnia 2022, 21:31 przez dawioo, łącznie zmieniany 1 raz.
Re: BASH funkcja kwadratowa.
Kod: Zaznacz cały
#!/bin/bash
echo "PROGRAM DO OBLICZANIA DELTY"
echo "Podaj A: "
read A
echo "Podaj B: "
read B
echo "Podaj C: "
read C
if ! [[ $A =~ ^-?[0-9]+(\.[0-9]+)?$ ]]; then
echo "An invalid input"
fi
if ! [[ $B =~ ^-?[0-9]+(\.[0-9]+)?$ ]]; then
echo "An invalid input"
fi
if ! [[ $C =~ ^-?[0-9]+(\.[0-9]+)?$ ]]; then
echo "An invalid input"
fi
DELTA="$((B*B-4*A*C))"
PIERW=`echo "scale=5 ; sqrt($DELTA)" | bc`
CZYZERO=`echo "$DELTA==0" | bc`
CZYWIEKSZE=`echo "$DELTA>0" | bc`
echo "Delta wynosi: $DELTA , jej pierwiastek to: $PIERW"
if [ "$CZYZERO" = 1 ]; then
P0=`echo "scale5 ;(-1*$B)/(2*$A)" | bc`
echo "Rownanie posiada jeden pierwiastek: $P0"
elif [ "$CZYWIEKSZE" = 1 ]; then
P1=`echo "scale=5 ;(-1*$B-$PIERW)/(2*$A)" | bc`
P2=`echo "scale=5 ;(-1*$B+$PIERW)/(2*$A)" | bc`
echo "Rozwnanie posiada dwa pierwiastki: $P1 i $P2"
else
echo "To rownanie nie posiada pierwiastkow"
fi
To jest poprawny kod?
Re: BASH funkcja kwadratowa.
Zależy jak rozpatrywać poprawność.
Pod kątem sztuki programowania to nie bardzo.
np. wprowadzanie danych i kontrola składni prosi się o użycie funkcji
Pod kątem funkcjonalnym wygląda, że prawie spełnia założenia.
Niby sprawdza błąd składni, ale leci dalej.
Pytanie po co skoro jest błąd składni?
Tu by jakaś pętla by się przydała. Skoro wprowadzono błędne dane to zasygnalizuj to i poproś o poprawę, wracając ponownie do read.
Dlaczego te sprawdzanie składni nie jest zaraz po wprowadzeniu, tylko dopiero po wprowadzeniu wszystkich 3.
Dodatkowo sprawdź sobie co się stanie jak wpiszesz np. a=1, b=2, c=3 (podpowiadam delta będzie mniejsza od zera)
Pod kątem sztuki programowania to nie bardzo.
np. wprowadzanie danych i kontrola składni prosi się o użycie funkcji
Pod kątem funkcjonalnym wygląda, że prawie spełnia założenia.
Niby sprawdza błąd składni, ale leci dalej.
Pytanie po co skoro jest błąd składni?
Tu by jakaś pętla by się przydała. Skoro wprowadzono błędne dane to zasygnalizuj to i poproś o poprawę, wracając ponownie do read.
Dlaczego te sprawdzanie składni nie jest zaraz po wprowadzeniu, tylko dopiero po wprowadzeniu wszystkich 3.
Dodatkowo sprawdź sobie co się stanie jak wpiszesz np. a=1, b=2, c=3 (podpowiadam delta będzie mniejsza od zera)
Re: BASH funkcja kwadratowa.
xyz
Ostatnio zmieniony 09 grudnia 2022, 21:31 przez dawioo, łącznie zmieniany 1 raz.
Re: BASH funkcja kwadratowa.
Jaki terminal jest dostepny z pakietem bc poniewaz w innych srodowiskach mi nie dziala bc