2002-12-06, 21:19
  #1
Medlem
Hur kan man få stöd för imaginära/komplexa tal i C++?
sqrt(-10) fungerar inte det blir bara DOMAIN error.
Finns det något sätt att få den att räkna ut roten ur negativa tal?
Citera
2002-12-07, 00:13
  #2
Medlem
xatrixs avatar
Re: Imaginära/komplexa tal i C++

Citat:
Ursprungligen postat av rogher
Hur kan man få stöd för imaginära/komplexa tal i C++?
sqrt(-10) fungerar inte det blir bara DOMAIN error.
Finns det något sätt att få den att räkna ut roten ur negativa tal?
Det finns väl i complex.h - annars kan du ju behandla det som ett positivt tal men lägga i minnet på programmet att det ska bli ett imaginärt svar.
Citera
2002-12-07, 00:34
  #3
Medlem
Finns säkert färdiga bibliotek som man kan använda. Annars är det inte särskilt komplicerat att knacka ihop en egen Complex-klass, med lämpliga metoder.
Nåt sånt här (att betrakta som pseudo-kod, var ett tag sen jag skrev C++):
class Complex {
double re;
double im;

Complex square_root(){
Complex value = new Complex();
value.re = sqrt(re+sqrt(re*re + im*im));
value.im = sqrt(-re + sqrt(re*re + im*im));
return value;
}
/* fyll på med lämpliga konstruktorer och metoder... */
}
Citera
2002-12-07, 02:04
  #4
Medlem
Men hur ska jag skriva om jag vill veta roten ur t.ex. -22?
Jag har försökt fixa så att den behandlar det som ett positivt tal men den säger bara "cannot convert 'double' to 'complex'"
Citera
2002-12-07, 10:41
  #5
Medlem
Skapa en complex med värdet (-22,0) och ta roten ur. Eller nåt sånt här:
Complex root(double tal){
Complex value = new Complex(0,0);
if (tal < 0) {
value.im = sqrt(tal);
} else {
value.re = sqrt(tal);
}
return value;
}
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in