Strona 1 z 2
bash piekno
: 05 grudnia 2022, 18:28
autor: dawioo
abcdefghijkloprstwxyz
Re: BASH funkcja kwadratowa.
: 05 grudnia 2022, 20:31
autor: dedito
Re: BASH funkcja kwadratowa.
: 05 grudnia 2022, 20:48
autor: dawioo
ale git
Re: BASH funkcja kwadratowa.
: 05 grudnia 2022, 20:56
autor: marcin1982
Ż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.
: 05 grudnia 2022, 21:55
autor: dedito
dawioo pisze: ↑05 grudnia 2022, 20:48
@dedito mógłbyś mi to wprowadzić w ten kod byłbym wiedzieczny bo serio nic nie rozumiem
Mogę pomóc zrozumieć, ale nie mam zamiaru wyręczać w rozwiązaniu.
Skoro nic nie rozumiesz, to należałoby zacząć od jakiegoś darmowego kursu basha.
Re: BASH funkcja kwadratowa.
: 06 grudnia 2022, 10:32
autor: dawioo
ok
Re: BASH funkcja kwadratowa.
: 06 grudnia 2022, 10:56
autor: dawioo
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.
: 06 grudnia 2022, 11:29
autor: dedito
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)
Re: BASH funkcja kwadratowa.
: 06 grudnia 2022, 12:56
autor: dawioo
xyz
Re: BASH funkcja kwadratowa.
: 06 grudnia 2022, 12:57
autor: dawioo
Jaki terminal jest dostepny z pakietem bc poniewaz w innych srodowiskach mi nie dziala bc