Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja kwadratowa

Ostatnio zmodyfikowano 2018-10-28 21:20
Autor Wiadomość
Virthel
Temat założony przez niniejszego użytkownika
Funkcja kwadratowa
» 2018-10-28 11:40:32
Witam.
Mam za zadanie napisać program liczący funkcję kwadratową, w której użyje minimum 5 razy instrukcji if.
Tak wygląda mój program:
C/C++
#include <iostream>
#include <math.h>
#include <conio.h>

using namespace std;

int main()

{
    float a, b, c, z, delta, x1, x2, x0; //deklarujemy zmienne
    cout << "Jest to program liczacy funkcje kwadratowa" << endl;
    cout << "Podaj a,b i c" << endl;
    cin >> a;
    cin >> b;
    cin >> c;
   
    if( a == 0 && b == 0 && c != 0 ) //dla rownania sprzecznego
    {
        cout << "Rownanie jest sprzeczne" << endl;
        _getch();
        return 0;
    }
   
   
    if( a == 0 && b != 0 && c != 0 ) //dla funkcji liniowej
    {
        cout << "Nie jest to funkcja kwadratowa, lecz liniowa" << endl;
        z = c / b;
        cout << "Wynikiem tego rownania jest: " << z << endl;
        _getch();
        return 0;
    }
   
    delta =( b * b ) - 4 * a * c;
   
    if( delta < 0 ) //dla delty mniejszej od 0
    {
        cout << "Delta jest mniejsza od zera, wiec funkcja nie ma miejsc zerowych";
       
    }
   
    else
   
    if( delta > 0 ) //dla delty wiekszej od 0
    {
        x1 =( - b -( sqrt( delta ) ) ) /( 2 * a );
        x2 =( - b +( sqrt( delta ) ) ) /( 2 * a );
       
        cout << "Delta jest rowna: " << delta << endl;
        cout << "Pierwiastkami rownania sa liczby: " << endl;
        cout << x1 << endl;
        cout << x2 << endl;
       
    }
   
    else
   
    if( delta == 0 ) //dla delty rownej 0
    {
        x0 =( - b /( 2 * a ) );
        cout << "Delta jest rowna 0 wiec ma jedno rozwiazanie: " << x0 << endl;
    }
   
    _getch();
    return 0;
}
Nauczyciel mi powiedział, że jest tu jeden błąd przez który mi nie uzna tej pracy. Kompilator działa poprawnie. Byłbym wdzięczny za znalezienie tego błędu, gdyż sam spędziłem godzinę szukając go i nie znalazłem. Z góry dziękuję! :)
P-172695
pekfos
» 2018-10-28 12:16:52
Dla samych zer masz dzielenie przez zero.
P-172696
Virthel
Temat założony przez niniejszego użytkownika
» 2018-10-28 13:38:29
Mógłbyś wskazać dokładnie w którym miejscu? Gdyż nie za bardzo rozumiem.
P-172697
ksardias
» 2018-10-28 16:21:57
Co dla przypadku gdy 'a' 'b' i 'c' jest równe 0 ? Program liczy deltę wychodzi 0 więc liczy x0 a tam dzieli przez 0 i jest błąd
P-172698
Virthel
Temat założony przez niniejszego użytkownika
» 2018-10-28 19:27:34
Czyli wystarczy, że dodam kolejnego if w którym zawrę warunek gdy a, b, c są równe 0, tak?
P-172712
ksardias
» 2018-10-28 21:20:43
na pewno tego brakuje, czy coś jeszcze to nie chce mi się sprawdzać :)
P-172713
« 1 »
  Strona 1 z 1