ax + b = 0

0

Cześć. Nie jestem orłem z matematyki a miałem stworzyć zadanie na obliczenie funkcji liniowej ax + b. Czy jest to wykonane poprawnie?

void rownanie()
{
    system("CLS");
    float a;
    float b;
    float x;
    cout<<"Obliczanie funkcji liniowej ax + b"<<endl;
    cout<<"Podaj a: ";
    cin>>a;
    cout<<"Podaj b: ";
    cin>>b;
    if(a == 0)
    {
        if(b == 0)
        {
            cout<<"Rownianie tozsamosciowe (nieskonczenie wiele rozwiazan)"<<endl;
        }

        if(b != 0)
        {
            cout<<"Rownanie sprzeczne (brak rozwiazan)"<<endl;
        }
    }
    if(a != 0)
    {
        x = -b/a;
        cout<<x<<endl;
    }
}

0

zadanie na obliczenie funkcji liniowej

W tym przypadku jest to wyliczenie miejsca zerowego (-b/a,0) dla funkcji liniowej y=ax+b.

Uważaj na porównywanie liczb zmiennoprzecinkowych z zerem. Powinno się tego unikać.

if( a == 0 ) // a is float

Więcej zobacz temat.

0
TomaszLiMoon napisał(a):

Uważaj na porównywanie liczb zmiennoprzecinkowych z zerem. Powinno się tego unikać.

if( a == 0 ) // a is float

Więcej zobacz temat.

Z jednej strony masz rację, ale że dane wejściowe są od użytkownika, a nie z obliczeń, to nie ma to za bardzo sensu.

0
MarekR22 napisał(a):
TomaszLiMoon napisał(a):

Uważaj na porównywanie liczb zmiennoprzecinkowych z zerem. Powinno się tego unikać.

if( a == 0 ) // a is float

Więcej zobacz temat.

Z jednej strony masz rację, ale że dane wejściowe są od użytkownika, a nie z obliczeń, to nie ma to za bardzo sensu.

A jak dla mnie, to tutaj czepianie się nie ma w ogóle sensu, gdyż chodzi o to, żeby móc podzielić przez takie a i dostać poprawną skończoną wartość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1