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

[c++] równanie kwadratowe na liczbach ujemnych - jednostka urojona

Ostatnio zmodyfikowano 2017-12-08 20:56
Autor Wiadomość
walo
Temat założony przez niniejszego użytkownika
[c++] równanie kwadratowe na liczbach ujemnych - jednostka urojona
» 2017-12-07 23:05:57
C/C++
#include <iostream>
#include <math.h>

using namespace std;
int main( int argc, char ** argv ) {
   
    float a, b, c, delta, x1, x2;
   
    cout << "Podaj trzy liczby Twojej funkcji kwadratowej";
    cin >> a;
    cin >> b;
    cin >> c;
    if( a == 0 ) cout << "Parametr a nie moze byc rowny 0!" << endl;
    else
   
         delta =( b * b ) - 4 * a * c;
   
   
    if( delta < 0 ) {
       
        x1 =( - b - sqrt( delta ) ) /( 2 * a );
        x2 =( - b + sqrt( delta ) ) /( 2 * a );
        cout << x1 << " " << "i" << endl;
        cout << x2 << " " << "i" << endl;
    }
    else
    {
        cout << "Delta nie jest mniejsza od 0.";
    }
   
   
   
   
    return 0;
}

Mam problem z tym kodem, mianowicie obojętnie jakie wpisze liczby wyskakuje nan i.

Proszę o pomoc!
I z góry dziękuje :).
P-167719
pekfos
» 2017-12-07 23:19:24
Liczysz pierwiastek z liczby ujemnej.
P-167720
walo
Temat założony przez niniejszego użytkownika
» 2017-12-07 23:27:52
Czyli z delty dodatniej muszę to obliczyć, tak? Mógłbyś pokazać jak to mniej więcej powinno wyglądać?
P-167721
pekfos
» 2017-12-07 23:37:11
Ma wyglądać zgodnie z matematyką. Pierwiastki równania kwadratowego dla ujemnej delty nie składają się z samej części urojonej.
P-167722
walo
Temat założony przez niniejszego użytkownika
» 2017-12-07 23:49:16
Nie jestem pewien czy dobrze jest teraz, w każdym razie wyniki jakieś tam mi wychodzą. Rzucisz wzrokiem?

C/C++
#include <iostream>
#include <math.h>

using namespace std;
int main( int argc, char ** argv ) {
   
    float a, b, c, delta, x1, x2;
   
    cout << "Podaj trzy liczby Twojej funkcji kwadratowej";
    cin >> a;
    cin >> b;
    cin >> c;
    if( a == 0 ) cout << "Parametr a nie moze byc rowny 0!" << endl;
    else
   
         delta =( b * b ) - 4 * a * c;
   
   
    if( delta < 0 ) {
       
        x1 =( - b - sqrt( - delta ) ) /( 2 * a );
        x2 =( - b + sqrt( - delta ) ) /( 2 * a );
        cout << x1 << " " << "i" << endl;
        cout << x2 << " " << "i" << endl;
    }
    else
    {
        cout << "Delta nie jest mniejsza od 0.";
    }
   
    return 0;
}
P-167723
pekfos
» 2017-12-07 23:52:04
Pierwiastki równania kwadratowego dla ujemnej delty nie składają się z samej części urojonej.
P-167724
walo
Temat założony przez niniejszego użytkownika
» 2017-12-08 00:15:50
Nic mi to nie mówi zważając na to, że liczb urojonych jeszcze nie przerabiałem w szkole. Jakby ktoś był tak dobry i wysłał tu poprawnie napisany ten program byłbym niezmiernie wdzięczny. Nie chciałem iść na łatwiznę, ale siedząc bezczynnie do niczego nie dojdę, a szkoła na 7;).
P-167725
mateczek
» 2017-12-08 00:21:40
Nic mi to nie mówi zważając na to, że liczb urojonych jeszcze nie przerabiałem w szkole.
liczb zespolonych. Składowa urojona jest częścią liczby zespolonej
z=(2i,4)
z  liczba zespolona
2i część urojona
4  część rzeczywista


kompilator nie wbudowanej arytmetyki dla liczb zespolonych z buta!!! nie policzy Ci wyniku zespolonego jak dasz pierwiastek ujemny. :P Liczyłeś na cud, że to magicznie zadziała?? czy co ??
Skoro nie umiesz liczb zespolonych to nie ma sensu pisać programu. Najpierw musisz się nauczyć o zagadnieniu które chcesz oprogramować. inaczej nie da rady.

co do obliczeń na liczbach zespolonych to masz dwie opcje
Albo sam zaimplementuj taką możliwość, albo skorzystaj z klasy std::complex.
P-167726
« 1 » 2
  Strona 1 z 2 Następna strona