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