allgemeine quadr. Funktionen
Übersicht

NForcerBetreff: allgemeine quadr. Funktionen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Moin Leutz,
ich hab mal aus langeweile wieder ein bisschen rumprogrammiert, ich hab nun nicht diiee große Erfahrung mit dem Programmieren ;), aber ich finde, mir ist mein Projekt, bis zum jetztigen Zeitpunkt relativ gut gelungen, würde jedoch mal Tips und Tricks von den Erfahrenen Profis einholen, wie man das hätte besser machen können etc. Also, zu meinem Projekt: Ich wollte mir ein Programm schreiben, das aus der allgemeinen quadratischen Funktion die Scheitelpunktsform rausformt und den Scheitelpunkt einer Funktion f(x) angibt und anschließend zeichnet mir das Programm den Graphen der Funktion ;). *soweit habe ich es bisher* Ich werde da noch weiter dran arbeiten und möglichst bedienerfreundlich gestalten, aber ich weiss nicht, was ich da jetzt noch so alles machen könnte,sodass es besser aussieht... (als nächstes werde ich wohl mal die Schnittpunkte mit der X und Y-Achse farbig markieren usw. , also schreibt mal, was ihr noch so alles haben wollen würdet) erstmal der Code: Code: [AUSKLAPPEN] ; allgemeine quadratische Gleichung: f(x) = ax² + px + q ; soll im 1. Schritt zur Scheitelpunktsform f(x) = a*(x-Xs)² + Ys umgeformt werden ; und Anschließend die Koordinaten des Scheitelpunktes S(Xs/Ys) ausgeben Graphics 800,600,32,3 SetBuffer BackBuffer() Print "Die allgemeine Quadratische Gleichung: ax² + px + q" Print "Hier können sie nun die Scheitelpunktsform,den Scheitelpunkt, und die Nullstelle anzeigen lassen" Global A# = Input("Geben sie den Streckfaktor 'a' an: ") Global P# = Input("Geben sie 'p' an: ") Global Q# = Input("Geben sie 'q' an: ") ;weitere Globals Global P_ausgeklammert# Global Q_ausgeklammert# Global Quadr_erg# Global Gesamt_abz# Global Xs# Global Ys# Allg_Quadr_Funkt() ;Hier wird einfach nochmal zur Kontrolle die allgemeine Quadratische Funktion angezeigt. Ausklammern() ;Im nächsten schritt muss der Streckfaktor (a) ausgeklammert werden um anschließend Scheitelpunksform() ;die Scheitelpunksform a(x-d)²+e Formel auszurechnen, mithilfe der quadratischen Ergänzung... (Mathe 9.Klasse) Scheitelpunkt() ;1. Endergebnis Repeat ;Cls Zeichnen() ;mx = MouseX() ;my = MouseY() ;Text mx,my, mx+","+my Flip Until KeyHit(1) Function Allg_Quadr_Funkt() If P# > 0 And Q# > 0 Print "Ihre eingebene Gleichung lautet: "+A#+"x²"+" + "+P#+"x"+" + " + Q# ElseIf P# > 0 And Q# < 0 Print "Ihre eingebene Gleichung lautet: "+A#+"x²"+" + "+P#+"x"+" - " + Q#*(-1) ElseIf P# < 0 And Q > 0 Print "Ihre eingebene Gleichung lautet: "+A#+"x²"+" - "+P#*(-1)+"x"+" + " + Q# ElseIf P# < 0 And Q < 0 Print "Ihre eingebene Gleichung lautet: "+A#+"x²"+" - "+P#*(-1)+"x"+" - " + Q#*(-1) EndIf End Function Function Ausklammern() ;If A = 1 Then If A = 0 Then Print "Sie haben eine lineare Gleichung eingegeben, kein bock da was auszurechnen!" ;If A > 1 Or A < 0 P_ausgeklammert# = P# / A# Q_ausgeklammert# = Q# / A# If P_ausgeklammert# > 0 And Q_ausgeklammert# > 0 Print "Die ausgeklammerte Gleichung lautet: "+A#+"[x²"+" + "+P_ausgeklammert+"x "+" + "+Q_ausgeklammert+"]" ElseIf P_ausgeklammert# > 0 And Q_ausgeklammert# < 0 Print "Die ausgeklammerte Gleichung lautet: "+A#+"[x²"+" + "+P_ausgeklammert+"x "+" - "+Q_ausgeklammert*(-1)+"]" ElseIf P_ausgeklammert# < 0 And Q_ausgeklammert# > 0 Print "Die ausgeklammerte Gleichung lautet: "+A#+"[x²"+" - "+P_ausgeklammert*(-1)+"x "+" + "+Q_ausgeklammert+"]" ElseIf P_ausgeklammert# > 0 And Q_ausgeklammert# > 0 Print "Die ausgeklammerte Gleichung lautet: "+A#+"[x²"+" - "+P_ausgeklammert*(-1)+"x "+" - "+Q_ausgeklammert*(-1)+"]" EndIf End Function Function Scheitelpunksform() Quadr_erg# = P_ausgeklammert# / 2 Quadr_abz# = (Quadr_erg# * Quadr_erg#) * (-1) Gesamt_abz# = A# * (Quadr_abz# + Q_ausgeklammert#) If Quadr_erg# > 0 And Gesamt_abz# > 0 Print "Scheitelpunktsform: "+A#+"(x"+" + "+Quadr_erg#+")²"+" + "+Gesamt_abz# ElseIf Quadr_erg# > 0 And Gesamt_abz# < 0 Print "Scheitelpunktsform: "+A#+"(x"+" + "+Quadr_erg#+")²"+" - "+Gesamt_abz#*(-1) ElseIf Quadr_erg# < 0 And Gesamt_abz# > 0 Print "Scheitelpunktsform: "+A#+"(x"+" - "+Quadr_erg#*(-1)+")²"+" + "+Gesamt_abz# ElseIf Quadr_erg# < 0 And Gesamt_abz# < 0 Print "Scheitelpunktsform: "+A#+"(x"+" - "+Quadr_erg#*(-1)+")²"+" - "+Gesamt_abz#*(-1) EndIf End Function Function Scheitelpunkt() Xs# = Quadr_erg#*(-1) Ys# = Gesamt_abz# Print "Der Scheitelpunkt liegt auf: P("+Xs+"/"+Ys+")" End Function Function Zeichnen() For i1 = 1 To 3 Line 200,i1+359,600,i1+359 ;Erstellen der X-Achse Next For i2 = 1 To 3 Line i2+399,100,i2+399,550 ;Erstellen der Y-Achse Next For i3 = 0 To 40 Line i3*10+200,357, i3*10+200,364 ;Skalierung auf der X-Achse! Next For i4 = 0 To 45 Line 397,i4*10+100 , 404,i4*10+100 ; Skalierung auf der Y-Achse Next For ix = -5 To 4 Line (ix*10)+(400+Xs*10),(A*ix^2)*-10+360+Ys*10 , (ix+1)*10+400+Xs*10,(A*(ix+1)^2)*-10+360+Ys*10 ;Zeichnen der Funktion f(x)=ax²+px+q Next End Function Wie man sehen kann, sieht der Graph nicht besonders toll aus... vllt. weiss jemand von euch, wie man ihn etwas besser abwandeln kann, so das er etwas mehr nach einer Parabel aussieht. als ich angefangen habe darüber nachzudenken, wie ich das mache, hab ich erstmal gar nicht über die Pixel nachgedacht - bis mir aufgefallen ist, das der Graph ziemlich beschissen aussieht, wenn man ihn nicht mit dem Faktor xi^2*10 skaliert (wie der Graph eben angelegt ist, dadurch entstehen aber leider sone geraden Linien von Punkt zu Punkt :(. Joar, das wars erstmal, würde mich über Antworten freuen. mfG NForcer edit: hab noch vergessen das (+Ys*10) an den Graphen zu legen ;) nun sollte es besser gehn. Aber dabei fiel mir jetzt noch ein, findet ihr die Skalierung so in Ordnung? sollte ich noch eine "Normalparabel" in einer anderen Farbe zum vergleich auf den Koordinatenursprung schreiben lassen? |
||
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würd die achsen nur 1 dick machen und in einer anderen farbe.
ausserdem die schrift löschen bevor du den graphen zeichnest. zudem kann ich aber keinen grossen nutzen in dem tool sehen ![]() mfg stfighter |
||
Denken hilft! |
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für Mathehausaufgaben "Hab ich auch alles richtig geamcht" XD | ||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube das würde viel einfacher (zumindest schneller..) durch das Formen der Ableitungen und der bildung des Extremwertes gehen ![]() Dann könnte man das auch auf beliebige Funktionen anwenden, nicht nur Quadratische. |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
![]() |
Seoman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde vllt auch nicht Print benutzen, das ist nicht schön ![]() |
||
In Australien...
Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig ![]() |
Darren |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und für mehr werte die koords berechnen um eien sauberen graphen zu erhalten va in der nähe des scheitels kenn mich noch nicht so mit funktionen aus bin erst in der 9.klasse wir ham auch grade quadratische funktionen dran | ||
MFG Darren |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group