Power-Lamer Geschrieben 25. September 2004 Geschrieben 25. September 2004 Moin, Wir müssen von der Schule aus eine Projektarbeit anfertigen. Mein Mathe-Lehrer hat mich angesprochen, ob ich nicht ein C++ Programm zum berechnen der Nullstellen für eine Funktion f(x) schreiben möchte. Wir haben in der Schule bisher nur einfache Programme geschrieben: If-Else-Anweisungen For und While-Schleifen Switch-Anweisungen und Grundlegende Rechenarten Meint ihr das es nicht zu viel ist für mich jetzt so ein Programm zu schreiben? Denn mir stellen sich noch ein paar Fragen: Wenn jemand für eine Funktion f(x) z.B. 3x eingibt, wie stelle ich das an, das er für x den schon vorher festgelegten Wert für x einsetzt und dann multipliziert (z.B. wurde vorher über cin für x 2 eingegeben, wie stelle es dann an das er nach der Eingabe der Funktion 3*2 rechnet?) Danke schonmal! Zitieren
Guybrush Threepwood Geschrieben 25. September 2004 Geschrieben 25. September 2004 Naja also auf Grund deiner Frage würde ich schon sagen das es etwas viel ist , wenn du noch nicht mal die Grundlagen kennst/beherschst. Als kleines Beispiel: int x,y; cin>>x; y=x*2; cout<<y; [/PHP] Zitieren
Klotzkopp Geschrieben 27. September 2004 Geschrieben 27. September 2004 Wieviel Zeit ist denn für die Projektarbeit geplant? So ein Nullstellensuchprogramm kann nämlich praktisch beliebig kompliziert werden. 1. Eingabe Soll der Benutzer die Funktionsvorschrift selbst eingeben können (d.h. du hast einen String "y = 2*x*x - 4") oder soll die Funktionsvorschrift als gültiger Code im Quelltext stehen? Im ersten Fall musst du einen Parser schreiben, der den String zerlegt und auswertet. Keine einfache Aufgabe, schon gar nicht für einen Anfänger. Im zweiten Fall bleibt dir das erspart, aber das Programm ist dadurch weniger benutzerfreundlich, und du nimmst dir die Möglichkeit der symbolischen Verarbeitung (siehe Punkt 2). 2. Verarbeitung Sollen die Nullstellen rein numerisch gesucht werden (d.h. durch wiederholtes Einsetzen und Ausprobieren) oder soll die Funktionsgleichung Null gesetzt und nach x aufgelöst werden? Im ersten Fall musst du mit Genauigkeitsproblemen rechnen. Im zweiten Fall (setzt einen Parser voraus) musst du die algebraischen Gesetze auf die vom Parser erzeugte Datenstruktur anwenden. Auch keine einfache Aufgabe. Was ganz gut funktionieren könnte: Du könntest dich auf bestimmte Arten von Funktionen beschränken, z.B. lineare. Der Benutzer kann nur die Koeffizienten eingeben (dadurch brauchst du keinen Parser). Wenn das gut läuft, kannst du noch quadratische Funktionen dazu nehmen. Alles andere dürfte den Rahmen der Projektarbeit sprengen. Zitieren
Power-Lamer Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 1. Eingabe Soll der Benutzer die Funktionsvorschrift selbst eingeben können (d.h. du hast einen String "y = 2*x*x - 4") genau das soll der benutzer eingeben. Wenn der String dann z.B. y=x²+3x-4 ist, soll da programm automatisch erkennen, das es hier mit der pq-formel forfahren kann und diese dann anwenden und das Ergebnis ausgeben. Zitieren
destroyer999 Geschrieben 28. September 2004 Geschrieben 28. September 2004 Also ich würde das so nciht machen, würde es in etwa so machen pq formel geht ja bekanntlich nur bei einer quadratischen funktion oderß wenn du x³ hast ist es ja doof das runter zu rechnen alsowürde ich dem programm das so vorgeben: f(x) = +- a2*x +-a1*x +- a0 dann kann er vorher auswählen bei welchem a ein plu soder ein minus kommt, ach und du musst auch beachten dass ein x negativ sein kann aber das dürfte mit grundkenntnissen zu machen sein! Geht aber leichter mit einem builder oder musst du konsole machen? wenn du hilfe brauchst ich habe sowas auch mal programmiert! Zitieren
Power-Lamer Geschrieben 28. September 2004 Autor Geschrieben 28. September 2004 Mit der Console, Builder werde wir nicht mit arbeiten, weil die Zeit zu knapp ist. Zitieren
Guybrush Threepwood Geschrieben 28. September 2004 Geschrieben 28. September 2004 Ohne dir jetzt den Mut nehmen zu wollen, glaube ich das es so wie du vorhast viel zu schwer ist. Aber vielleicht hilft dir ja folgendes Beispiel bei der entwicklung des Parsers Klick Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.