Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 31. Virtualrätsel (for Beginners)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
20.06.2003, 13:39 Uhr
virtual
Sexiest Bit alive
(Operator)


Schreibe ein program, welche mit Hilfe der p-q Formel die Nullstellen einer Quadratischen Gleichung berechnet.
Für die Nicht-Mathematiker:
Ist

Code:
f(x) = x^2 + p*x + q


So sind die Nullstellen

Code:
x1 = -p/2 - (p*p/4-q)^0.5
x2 = -p/2 + (p*p/4-q)^0.5


(Zur berechnung der Wurzel kann man die Funktion sqrt verwenden). Dabei wird der Ausdruck "p*p/4-q" als Diskriminante bezeichnet. Ist die Diskriminante ==0, so gibt es nur eine Nullstelle, ist sie negative, gibt es keine reale Nullstelle, ist sie positiv, gibt es zwei Nullstellen.

p und q sollten vom Programm interaktiv erfragt werden, anhand der Diskriminante sollte dann enstprechend die Ausgabe erfolgen. Hier Beispiele:

Code:
58 $ a.out
Bitte p eingeben: 2
Bitte q eingeben: 1
Nullstellen von x*x+2*x+1
Es gibt genau eine Nullstelle bei x=-1


59 $ a.out
Bitte p eingeben: 1
Bitte q eingeben: 1
Nullstellen von x*x+1*x+1
Es gibt keine Nullstellen.

60 $ a.out
Bitte p eingeben: 0
Bitte q eingeben: -1
Nullstellen von x*x-1
Es gibt zwei Nullstellen bei x1=-1 und x2=1


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 22.06.2003 um 19:32 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.06.2003, 15:55 Uhr
Bruder Leif
dances with systems
(Operator)


Mooooooooooment..... hast Du etwa "." in Deinem Path?????
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.06.2003, 16:07 Uhr
arkantos



Bei meinem Programm kommt die Fehlermeldung "Undefined reference to sqrt". Ich habe aber die "math.h" eingebunden. Was kann da nicht stimmen?
--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.06.2003, 16:10 Uhr
virtual
Sexiest Bit alive
(Operator)


Ja, ich lebe wild und gefährlich.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.06.2003, 16:11 Uhr
virtual
Sexiest Bit alive
(Operator)


Mathe Lib dazulinken. -lm unter Linux/gcc
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.06.2003, 16:14 Uhr
arkantos



Hab die math.h ganz normal eingebunden, und wenn ich die "sqrt" aufrufe, kommt der fehler.
--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.06.2003, 16:23 Uhr
virtual
Sexiest Bit alive
(Operator)


@arkantos
Siehe vorheriges Post: Ein include macht nur die Funktion bekannt, definiert diese aber nicht. Dh mit #include <math.h> hast Du erstmal nur die Halbe Miete, jedenfalls auf bestimmten Platformen. Unter Linux mußt du die MatheLibrary mittels

Code:
gcc -lm dein_source.c


Hinzulinken. Unter Windows weiß ich nicht.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.06.2003, 16:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@virtual
natürlich muss mann auch unter windows linken
Nur das vistual studio die standards (wie auch immer m$ diese definiert) von selber linkt ist recht angenehm

@arkantos
wenn sqrt nicht geht nimm pow(x,0.5) oder auch exp(0.5*ln(x))
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 20.06.2003 um 16:43 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.06.2003, 16:49 Uhr
arkantos



Hier die Lösung nach erfolgreichem Linken Nochmal danke an @virtual


C++:
#include <stdio.h>
#include <math.h>

main()
{
int p, q;

printf("p eingeben: ");
scanf("%d", &p);

printf("\nq eingeben: ");
scanf("%d", &q);

   if((p*p/4-q)==0)
   {
      printf("Es gibt eine Nullstelle\n");
      printf("Nullstelle bei x1= %.2lf\n", (-p/2)+sqrt(p*p/4-q));
   }

   else if((p*p/4-q)<0)
       printf("Es gibt keine Nullstellen\n");
   else
   {
      printf("Es gibt 2 Nullstellen\n");
      printf("Nullstelle bei x1=%lf\n", (-p/2)+sqrt(p*p/4-q));
      printf("Nullstelle bei x2=%lf\n", (-p/2)-sqrt(p*p/4-q));
   }

}




--
schöne grüße,
arkantos
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.06.2003, 17:18 Uhr
virtual
Sexiest Bit alive
(Operator)


@arkantos.
Sieht fast annehmbar aus. Allerdings möchte ich bzgl. eines Punktes auf die FAQ verweisen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: