09. februar 2004 - 09:54
Der er
18 kommentarer og 1 løsning
c++ løsning af andengradsligning
hejsa, jeg har skrevet følgende kode til løsning af andengradsligning: // EX1_01.CPP // A Simple Example of a Program #include <iostream> using namespace std; int main() { int a = 0, b = 0, c = 0; int x = 0, x1 = 0, x2 = 0; int d = 0; cout << endl << "Hvad er a?: "; cin >> a; cout << endl << "Hvad er b sa?: "; cin >> b; cout << endl << "Hvad sa med c?: "; cin >> c; d = b*b-4*a*c; cout << endl << "d er lig med " << d << " "; if (d > 0) x1 = -b+d^0.5/(2*a); x2 = -b-d^0.5/(2*a); cout << endl << "x er lig med " << x1 << " og " << x2 << " "; else if (d = 0) x = -b/(2*a); cout << endl << "Og er x lig med " << x << " "; else (d < 0) cout << endl << "Ingen løsninger"; return 0; } Er der nogen der kan se hvad der er galt med den? tak
Annonceindlæg fra HP
09. februar 2004 - 09:59
#1
^ er ikke potensopløftning, men "ekslusiv eller": XOR
09. februar 2004 - 10:02
#2
potens er pow funktionen
09. februar 2004 - 10:05
#3
hvordan skriver man så fx x^2, altså x i anden?
09. februar 2004 - 10:26
#4
pow(x,2)
09. februar 2004 - 10:27
#5
Du skal have inkludere math.h (eller cmath).
09. februar 2004 - 10:34
#6
09. februar 2004 - 10:49
#7
hvad gør cmath eller math.h og er det det samme?
09. februar 2004 - 10:50
#8
Jeg er ny i det her....:)
09. februar 2004 - 10:54
#9
der er åbenbart også noget galt med if else sætningerne, men jeg kan ikke se hvad...
09. februar 2004 - 10:59
#10
math.h er til C compilere og ældre C++ compilere cmath er til nyere C++ compilere
09. februar 2004 - 11:00
#11
Jeg tror at du mangler nogle { } i.f.m. dine if sætninger. if(...) { ... } else if(...) { ... } else { ... }
09. februar 2004 - 11:35
#12
nu er koden ændret til: // EX1_01.CPP // A Simple Example of a Program #include <iostream> #include <cmath> using namespace std; int main() { int a = 0, b = 0, c = 0; int x = 0, x1 = 0, x2 = 0; int d = 0; cout << endl << "Hvad er a?: "; cin >> a; cout << endl << "Hvad er b sa?: "; cin >> b; cout << endl << "Hvad sa med c?: "; cin >> c; d = b*b-4*a*c; cout << endl << "d er lig med " << d << " "; if (d > 0) { x1 = (-b+pow(d,0.5))/(2*a); x2 = (-b-pow(d,0.5))/(2*a); cout << endl << "x er lig med " << x1 << " og " << x2 << " "; } else if (d == 0) { x = -b/(2*a); cout << endl << "x er lig med " << x << " "; } else (d < 0); { cout << endl << "Ingen løsninger"; } return 0; } og det har hjulpet en hel del. Men pow-funktionen virker ikke helt som tilsigtet og man kan heller ikke indtaste kommatal som a b og c....?
09. februar 2004 - 11:49
#13
Prøv og erklær a,b,c,d etc. som double i.s.f. int (int=heltal).
09. februar 2004 - 11:54
#14
ok, nu er der kun en lille detalje tilbege: "Ingen løsninger" kommer frem hver gang til sidst i programmet...
09. februar 2004 - 11:59
#15
Jeg tror at: else (d < 0); { skal være: else if (d < 0) { [altså uden semikolon !]
09. februar 2004 - 13:51
#16
OK ?
09. februar 2004 - 14:21
#17
det ser ud til at virke! mange tak..:)
09. februar 2004 - 14:35
#18
forresten....hvordan laver jeg så det til en .exe microsoft visual c++?
09. februar 2004 - 14:39
#19
Når du har kørt det, så er der også en EXE fil. Under dit projekt ligger der et debug og et release directory. Din EXE fil ligger i et af dem eller begge (afhængig af hvad du har compilet til).
Kurser inden for grundlæggende programmering