Parabel zeichnen + nullstelle ?
-
und wie würde ich die dann zeichenen?
@formel
wie bekomm ich beide raus, also das ist ja nur für eine, udn was bedeutet der strich oben drüber?
-
Hi,
Der Strich darüber ist der Wurzelstrich.
Die Formel heißt Mitternachts- oder abc-Formel.
Bei der Formel gibt es 2 Lösungen, da dort +- √ steht.So, das zum mathematischen, und jetzt allgemein:
Eigne dir erstmal ein wenig Wissen an. Es bringt nichts Code zu übernehmen, wenn du ihn nicht verstehst. Wozu machst du dieses Projekt?
Hausaufgabe?
Hier werden keine Hausaufgaben erledigt, denn Hausaufgaben sind eigentlich nie zu schwer gestellt, sie sind zum Nachdenken und/oder zur Anwendung gedacht.
Hobbyprojekt?
Was bringt es dir, wenn du ein Hobbyprojekt machst und nicht verstehst, was du da machst?
Gute Note für Sonderleistung?
Das finde ich immer noch das Dreisteste: Nichts können, aber belohnt werden.Beziehe die Aussagen nur auf dich, wenn du hinter der jeweiligen Frage ein ,,Ja'' schreiben kannst.
Auf alle Fälle: Lern erst einmal C++, wenn du es mit C++ programmieren willst, und wenn du es grafisch darstellen willst, dann lern für Windows WinAPI (MFC, VCL etc. geht auch); das alles sind nicht einfach nur 3 Befehle, die man hintippt, sodass man ein fertiges Programm raushat, daher bringt es auch nichts, hier nach nicht-konkreten Problemen zu fragen.
MfG Eisflamme
-
hab das irgendwann mal gemacht, sollte alle fälle für die nullstellen abdecken. funktion is zwar etwas vollgepackt & sieht nich alzu elegant aus aber die errechneten werte sollten stimmen.
#include <iostream> #include <math.h> using namespace std; void nullstellen_scheitel(float a, float b, float c); float a; float b; float c; int main (void) { cout<<"a eingeben: "; cin>>a; cout<<"b eingeben: "; cin>>b; cout<<"c eingeben: "; cin>>c; nullstellen_scheitel(a,b,c); } void nullstellen_scheitel(float a, float b, float c) { if(sqrt(b*b-4*(a*c)) > 0) { cout<<endl<<"Es gibt 2 Nullstellen"<<endl; cout<<"x1 = "<<((b*-1)+(sqrt(b*b-4*(a*c))))/2*a<<endl; cout<<"x2 = "<<((b*-1)-(sqrt(b*b-4*(a*c))))/2*a<<endl; } else if(sqrt(b*b-4*(a*c)) == 0) { cout<<endl<<"Es gibt genau eine Loesung: "<<endl; cout<<"x1 = "<<((b*-1)/2*a)<<endl; } else cout<<"\nEs gibt keine Loesungen im reelen, da die Diskriminante < 0"<<endl<<endl; // scheitel cout<<endl<<"Scheitel liegt bei ("<<((b*-1)/(2*a))<<"/"<<(c-((b*b)/4*a))<<")"<<endl; }
-
ich bracuh das für die hausaufgaben die wir immer in mathe aufbekommen, da haben wir ein blatt mit milionen an aufgaben bekommen, da dachte ich mir machste sowas, weil angefangen hab ich mit c++ schon, aber halt nicht visual c++ o.ä.
thhhhxxxxxxxxxx an fasti, bist der beste
Aber ich glaub da ist ein fehler folgender zeile:else if(sqrt(b*b-4*(a*c)) == 0)
weil wenn b kleiner als 4 ist stützt das programm immer ab:
sqrt: DOMAIN error
kann man das noch irgendwie fixen?
nochmal thhhhxxxxxx
-
Hi,
logisch:
void nullstellen_scheitel(float a, float b, float c) { if(b*b-4*(a*c) > 0) // nicht die Wurzel prüfen, sondern die Diskriminante { cout<<endl<<"Es gibt 2 Nullstellen"<<endl; cout<<"x1 = "<<((b*-1)+(sqrt(b*b-4*(a*c))))/2*a<<endl; cout<<"x2 = "<<((b*-1)-(sqrt(b*b-4*(a*c))))/2*a<<endl; } else if(b*b-4*(a*c) == 0) // dito { cout<<endl<<"Es gibt genau eine Loesung: "<<endl; cout<<"x1 = "<<((b*-1)/2*a)<<endl; } else cout<<"\nEs gibt keine Loesungen im reelen, da die Diskriminante < 0"<<endl<<endl; // scheitel cout<<endl<<"Scheitel liegt bei ("<<((b*-1)/(2*a))<<"/"<<(c-((b*b)/4*a))<<")"<<endl; }
MfG Eisflamme
PS: Hättest du dir den Code angesehen und mal überlebt, wärest du da aber auch selbst drauf gekommen, die Überprüfung auf die Anzahl der Nullstellen wird in der Schule nämlich durchgenommen.
-
Jetzt ist gut, kleiner Michi!
-
omg... habs vorhin nur für eine parabel schnell probiert obs stimmt und nich den code durchgeschaut, aber wie ich auf die idee komm die wurzel von D zu ziehen is mir n rätsel... und sollt mir eigentlich auch aufgefallen sein... naja schon ewig her als ich das mal geschrieben hab
aber im prinzip hat mis2com recht, die "berechnung" für eine vordefinierte formel die immer das richtige ergebnis ausspuckt sollte man mit minimalsten programmierkenntnissen auf die reihe bringen. ausserdem hab ich deinen 1. post leider zu spät gesehen sonst haet ich nich den ganzen code gepostet...
mfg & thx
-
hrhr ich lern c++ erst 2 wochen
nachdem mir jmd den tipp gegeben hat dass ich doch anstelle von php lieber c++ lernen solle.
ABer was soll ich nu machen?
hab das nicht ganz verstanden
thx nochmal für eure hilfe, ihr rettet mir das wochenende
-
hrrh sry das ich doppelpsote aber der pc spinnt
aber da ich ja wieso noch eine farge habe ^^
@lustig, was steht über dem bruchstrcih?
-
Jetzt ist gut, kleiner Michi!
Na ja, wenn du meinst ihm damit jetzt geholfen zu haben, dann will ich dir mal nicht deinen Glauben ausreden.
Also, Programmierkenntnisse sind hier echt nicht erforderlich. Man schaut eigentlich nur auf das, was bei if in den Klammern steht; vielleicht war ja nicht klar, dass sqrt() die Wurzelfunktion darstellt, anderenfalls: im Matheunterricht lernt man auch, dass bei keinem Ergebnis die Diskrimante < 0 sein muss, nicht die daraus gezogene Wurzel.
Hm, du willst den Code jetzt also wirklich verstehen und nicht nur die Hausaufgaben machen?
Bringt es dir etwas, wenn man ihn dir erklärt? Du sollst ja die ganze Sprache verstehen, und nicht nur dieses überaus triviale Programm, und ein Tutorial oder Buch zu dem Thema ist auf alle Fälle angebracht.
Auch das Anzeigen von Pixeln in WinAPI ist nicht so leicht, wie es klingt, da man sich erst einmal die Oberfläche schaffen muss, um dann darauf zu zeichnen. Wie gesagt hier hilft ein Tutorial zum Thema ,,WinAPI'' unter Windows; wenn du MS Visual C++ nutzt, kannst du die WinAPI verwenden etc.
Jedenfalls ist der Code unheimleich simpel, im programmiertechnischen Sinne, wenn du den nicht verstehst, hast du dich mit C++ anscheinend noch nicht beschäftigt.Wie gesagt: Kaufe dir ein Buch!
Entweder du kannst kein bisschen C++ oder du hast in Mathe nicht aufgepasst. Falls es an Mathe liegt, kann man dir hier helfen, ansonsten ist das Forum falsch gewählt, aber in fachspezifischen Foren zur Programmierung wird man dir kaum helfen, da dir grundlegende Kenntnisse fehlen, die durch Bücher oder Tutorials zu erlangen sind.Nichts für ungut,
MfG Eisflamme
EDIT: Rechtschreib- Zeichensetzungs- Grammatik- und inhaltliche Fehler korrigiert.
-
hrhrh mathe hab ich 1 bin aber erst in der neunten, hab folgendes buch
Go to C++ Programmierung | ISBN: 3827321409
aber wäre trotzdem nett wenn es jmd probiert^^
-
Was probiert; es dir zu erklären?
Bist du am Anfang der 9 oder am Ende?
Wurzeln sollte man eigentlich schon durchgenommen haben, ebenso die pq- oder Mitternachtsformel...
Wenn dies nicht der Fall ist, kannst du damit natürlich wenig anfangen...
Wie auch immer, erstmal dies hier:void nullstellen_scheitel(float a, float b, float c) // Starte (Definition der) Funktion mit 3 Parametern vom Typ float { if(b*b-4*(a*c) > 0) // wenn die Diskriminate (das, was unter der Wurzel steht) > 0 ist, dann... (alles was zwischen { und } steht) { cout<<endl<<"Es gibt 2 Nullstellen"<<endl; // cout ist eine Instanz der Klasse ostream, merke dir zuerst, dass du mit cout<< Text ausgeben kannst, endl ist praktisch ein Zeilenumsprung cout<<"x1 = "<<((b*-1)+(sqrt(b*b-4*(a*c))))/2*a<<endl; // Wenn die Diskriminante > 0 ist, dann gibt es zwei Lösungen, zeige hier die positive an cout<<"x2 = "<<((b*-1)-(sqrt(b*b-4*(a*c))))/2*a<<endl; // Hier wird die negative angezeigt } else if(b*b-4*(a*c) == 0) // Ist die Diskriminante 0, so ergibt die Gleichung für + und - das gleiche Ergebnis, daher: { cout<<endl<<"Es gibt genau eine Loesung: "<<endl; cout<<"x1 = "<<((b*-1)/2*a)<<endl; } else { cout<<"\nEs gibt keine Loesungen im reelen, da die Diskriminante < 0"<<endl<<endl; // scheitel cout<<endl<<"Scheitel liegt bei" <<((b*-1)/(2*a))<<"/"<<(c-((b*b)/4*a))<<")"<<endl; } // Else-Teil zu Ende } // Funktion zu Ende
Aber wie gesagt, das sind die grundlegensten C++ Kenntnisse und du scheinst auch in Termen mit Variablen, sowie in Programmierung in irgendeiner Sprache keine Erfahrung zu haben, daher würde ich dir für's erste von C++ abraten, die Sprache ist meiner Meinung nicht zu schwer für Anfänger, eher zu trocken, aber die Entscheidung liegt bei dir, jedenfalls solltest du dir den Code mal anschauen, überlegen und dann sagen, was du genau nicht kapierst.
Ansonsten: Kauf dir ein Buch oder lies ein Tutorial
So etwas supereinfaches wird dir niemand erklären.MfG Eisflamme
-
Wini schrieb:
* Hi! I'm a signature virus! Copy me into your ~/.signature to help me spread! *
Elender Nachmacher!
-
Mis2com schrieb:
b*-1
Schreibst du das auch so???
-
fang jez ja nich an meinen code zu bemängeln fritzi :>
uralt das ding und ich will ihn mir garnich genauer ansehen weil mir dann mit sicherheit schlecht wird.ich sagte ja bereits nich gerade elegant gelöst, was man an dem "b*-1" sieht, aber die richtigen werte kommen raus
- b*b könnte man mit z.b auch mit pow(b,2)
normal macht ma inna 9. zunächst quadratische gleichungen u. anschließend parabeln
bevor man php oder c++ lernt, wäre vllt. c keine schlechte sprache zum anfangen da der umstieg auf c++ leichter fällt & die syntax in php oder auch java ähnlich ist.
-
fasti schrieb:
- b*b könnte man mit z.b auch mit pow(b,2)
Ich denke nicht, dass das einen Unterschied macht.
-
Also danke erstmal an alle, auch an mis2com, mit hilfe deiner funktion hab ich das ding jetzt gecodet
@webfritzi, ich hab die schon länger
@mis2com
werde mir gleich mal deine erklärung durchlesem, bin mitte der acht, wurzeln ja, mitternachtsformel, nein
nur kannst du mir kutz nochmal das kürtzel sqrt erklären, wenn ihr wollt kann ich euch mal den quellcode von dem script schicen
-
Zu "was steht über dem Bruchstrich":
hier mal in LaTex:Zu sqrt, sqrt steht für Square Root, die Quadratwurzel. Gibt die Quadratwurzel einer positiven Zahl zurück:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wcecrt4/html/erlrfsqrt.asp
-
WebFritzi schrieb:
Mis2com schrieb:
b*-1
Schreibst du das auch so???
Ich habe den Code korrigiert und ihn nicht meinem Stil angepasst.
Dass ich statt b*(-1) b-2*b schreibe, ist ja wohl klar.nur kannst du mir kutz nochmal das kürtzel sqrt erklären, wenn ihr wollt kann ich euch mal den quellcode von dem script schicen
sqrt = square root (engl. Quadratwurzel)
sqrt(9) entspricht quasi √9
MfG Eisflamme
-
Mis2com schrieb:
Dass ich statt b*(-1) b-2*b schreibe, ist ja wohl klar.
Was bitte?