Integral Programm programmieren für den GTR: Casio Fx-9759Gii

  • Sonstige

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Integral Programm programmieren für den GTR: Casio Fx-9759Gii

    Guten Tag,

    wir haben heute im Mathematikunterricht die Aufgabe bekommen ein Taschenrechner Programm für das bilden der Untersumme eines Graphen in einem bestimmten Intervall zu schreiben.
    Ich hab mich mit dem Thema schon auseinander Gesetzt und weis das ich im Grafik-Menü mir das Exakte Integral für ein bestimmtes Intervall anzeigen lassen kann,
    im Unterricht hatten wir aber die Vorrangehensweise, die Fläche durch das Einsätzen von Rechtecken unter dem Graphen zu bestimmen.
    Bsp. Gleichung: 2X+X²
    Daraufhin also ins Tabellen-Menü (Intervall ist von 0-2 und die Anzahl der "Unterintervalle" war 10.
    Folgende Werte sind rausgekommen:
    x - y
    0 - 0
    0,2 - 0,44
    0,4 - 0,96
    0,6 - 1,56
    0,8 - 2,24
    1 - 3
    1,2 - 3,84
    1,4 - 4,76
    1,6 - 5,76
    1,8 - 6,84
    2 - 8

    Die entsprechende Rechnung war dann: 0,2*(0,44+0,96+1,56+2,24+3+3,84+4,76+5,76+6,84) = 5,88 --> Die exakte Fläche aus dem Grafik-Menü ist 6,66.

    Das Programm habe ich auch schon mal angefangen und ein bisschen rumprobiert.
    Damit das wie ich es mir gedacht habe bis zu meinem Problem Punkt funktioniert, muss man erstmal die Gleichung in das Grafik-Menü in der Zeile Y1 (als Gleichung habe ich 2X+X² gewählt) eingeben.
    Nun zu dem was ich von dem Programm im Taschenrechner stehen habe.:

    ClrText
    "Obergrenze"
    ?->A
    ClrText
    "Untergrenze"
    ?->B
    A-B=C
    ClrText
    "Unterintervalle"
    ?->D
    C:D=F \\also C/D=F ich schreib das jetzt mal so wie es im Taschenrechner aussieht.
    Z=0
    Lbl 1
    Y1 (B+F) -> W
    F*W+Z=Z
    If B+F=A
    Then
    ClrText
    "Flaeche"
    W
    Else B+F=B
    Goto 1
    If End
    ______________________________________________________
    Die Enterzeichen auf meinem Rechner habe ich mit Absicht hier nicht eingefügt zum einen sind die denk ich hier unnötig zum anderen weis ich nicht wie man die hier
    schreibt.

    Nun zu meinem Problem:
    Wenn ich also das Programm starte, habe ich im Grafik-Menü in Zeile Y1: 2X+X² stehen.
    Dann gebe ich als Obergrenze 2, als Untergrenze 0 ein, und als Unterintervalle 10.
    Dann erscheint oben in der rechten Ecke das kleine schwarze Quadrat als Zeichen dafür das der GTR arbeitet, aber selbst nach 10 Minuten keine Änderung.

    Ich habe mich bereits etwas belesen, meine Kenntnisse sind trotzdem auf sehr geringem Niveau, ich habe zum einen Versucht Statt Lbl 1 und goto 1, goto 14 zu benutzen dann bekomme ich aber einen Syntax Error, ich habe auch andere Loops ausprobiert, sowie Statt IF End, stop benutzt. Ich habe auch ein paar Klassenkameraden aus anderen Mathe-Kursen gefragt die aber vor dem selben Problem stehen.

    Ich weis mittlerweile nicht mehr weiter und hoffe hier auf Hilfe zu stoßen.

    Ich würde mich freuen wenn mir hier jemand meinen Fehler darlegen kann, sowie diesen Korrigieren und dann die richtige Vorrangehensweise für mich erklären, denn wenn das Programm funktioniert und wir das erklären können, würden wir auch ein paar "Sympathie Punkte" bekommen, die uns in der nächsten Klausur zur besseren Note verhelfen könnten.

    Ich hoffe mir kann hier jemand Helfen, und ich bedanke mich schon einmal vorab dafür das sie sich Zeit für meinen Beitrag genommen haben.
    Vielen Dank für eure Untersützung und noch einen schönen Tag/Abend.


    Und ich entschuldige mich für etwaige Rechtschreibfehler, und fehlerhafte Interpunktion.

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Boah, geil. Sind diese GTR immer noch im Einsatz. Ist zwar erst bei mir 20 Jahre her, dass wir die bekamen, aber ich kann mich gut erinnern :D
    Der Thread-Tag ist falsch. Das ist ein ganz entfernter VB6-Cousin. Aber ganz weit. Ich hab mal versucht, für die anderen nach VB.Net zu übersetzen. Sollte ungefähr so enden:

    VB.NET-Quellcode

    1. Dim ObergrenzeAsString = Microsoft.VisualBasic.InputBox("Obergrenze?")
    2. If String.IsNullOrEmpty(ObergrenzeAsString) Then Exit Sub
    3. Dim Obergrenze = Integer.Parse(ObergrenzeAsString) 'A
    4. Dim UntergrenzeAsString = Microsoft.VisualBasic.InputBox("Untergrenze?")
    5. If String.IsNullOrEmpty(UntergrenzeAsString) Then Exit Sub
    6. Dim Untergrenze = Integer.Parse(UntergrenzeAsString) 'B
    7. Dim Strecke = Obergrenze - Untergrenze 'C
    8. Dim SchritteAsString = Microsoft.VisualBasic.InputBox("Zwischenschritte?")
    9. If String.IsNullOrEmpty(SchritteAsString) Then Exit Sub
    10. Dim Schritte = Single.Parse(SchritteAsString) 'D
    11. Dim IntervallsprungProSchleifenschritt = Strecke / Schritte 'F
    12. Dim Z = 0
    13. Dim AUC = 0.0 'Area under Curve
    14. 1: AUC = Y1(Untergrenze + IntervallsprungProSchleifenschritt) 'mir nicht klar, wie das auf dem GTR funktionierte
    15. Z = IntervallsprungProSchleifenschritt * AUC + Z
    16. If Untergrenze + IntervallsprungProSchleifenschritt = Obergrenze Then
    17. MessageBox.Show("Fläche: " & AUC.ToString())
    18. Else
    19. Untergrenze = Untergrenze + IntervallsprungProSchleifenschritt
    20. GoTo 1 '*
    21. End If

    Was ist bei Dir Z? Was stellst Du Dir darunter vor? Anstatt die Untergrenze zu verändern, wäre es besser, wenn Du eine Variable nutzt, die die aktuelle X-Position in der Kurve angibt, startend bei B und dann jeweils um F erhöhen, bis sie A erreicht hat:

    Quellcode

    1. S=0
    2. Lbl 1
    3. Y1 (B+F) -> W '<= mit der Zeile kann ich nix anfangen, ist zu lange her; aber müsste da nicht auch das schon bisher berechnete W mit rein?
    4. If S+F=A
    5. Then
    6. ClrText
    7. "Flaeche"
    8. W
    9. Else S+F=S
    10. Goto 1
    11. If End


    *Wehe, jemand motzt an der Stelle. Ne For-Schleife einzubauen wäre eine überflüssige Verwirrung für den TE. btw: @Mercy: Gibt es beim aktuellen GTR ne For-Schleife? While? Do?
    ― Eine häufig von mir verwendete Abkürzung: CEs = control elements (Labels, Buttons, DGVs, ...)
    ― Meine wichtigste Programmiererkenntnis: Mühsam erhängt sich das Eichhörnchen.
    ― If Not GrammarIsOk() Then AssumeThatCodeIsOk = False
    ― »Oh, großes Spaghetticodemonster. Bitte schicke mir Durchblick! Oder zumindest eine Gabel. Oder – wenn es kein Besteck mehr gibt – zumindest Glasnudeln.«

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo,

    Erstmal vielen dank für die Hilfe und tut mir leid das ich das falsche Tag genommen habe.
    Als ich mich belesen hatte, stand da das mein GTR eine for-schleife beherrschst.

    Jetzt nochmal etwas erklärend zu meiner idee.
    Die ausgabe also das ergebnis sollte Z sein, üalso sollte Z im Endeffekt die berechnete Fläche sein (im sinne von meiner beispiel Rechnung 0,2*0,44+Z=Z damit die fläche bei jedem loop wächst. Das w wird dann dafür benötigt damit ich den y-wert habe mit dem ich (im sinne vom obigen beispiel) 0,2 also F multiplizieren kann.
    Und du hattest recht mit das w muss da eigentlich mit rein, das problem lag also daran das ich das falsch aufgeschrieben hatte....
    Die Untergrenze ist ja der erste x-wert, und ich brauch ja immer von x+das jeweilige F, den y-wert der Gleichung damit ich etwas habe mit dem ich dann F multiplizieren kann.
    Da ich die Rechteck variante nehmen muss, ist F die breite und der Y-Wert die höhe. Das ist Multipliziert dann der flächeninhalt der rechtecke und die flächeninhalte müssen addiert werden.
    Ich habe mein programm eben auf zwei arten abgeändert, ersten statt dem B+F=A habe ich jetzt B+F größergleich A.
    Nach dieser änderung kam das programm zu einem ende, jetzt noch statt der W ausgabe die Z ausgabe gewählt.
    Jetzt ist das ergebnis aber 1..
    Also habe ich bei mir den endlos rechnungsfehler behoben aber das ergebnis stimmt nicht.
    Dein S=0 kann ich nur bei meiner beispiel aufgabe umsetzen, da ich das Programm aber für eigentlich alle arten von gleichungen schreiben soll muss ich da b nehmen, denn wenn das intervall von 2-5 geht ist es in der rechnung ja falsch wenn man sagt erst stoppen wenn es 0+F=5 ist.
    Während ich schreibe bastel ich auch am GTR, habe jetzt deine S-Variante benutzt und ich komme auf den selben wert wie bei mir:1.

    Das Ding ist jetzt es der GTR kommt zu einem Ergebnis, aber das ergebnis stimmt nicht.

    Also schonmal vielen Dank für die Hilfe, und hast du vielleicht sonst noch eine Idee warum das nicht klappt?

    Und noch einen schönen Tag/Abend.
    Ok, stimmt. Die Abbruchbedingung hätte bei mir lauten müssen: If B+S>=A
    Hm. Da ich schon lange keinen GTR mehr habe, machen wir das mal ganz klassisch mit der Fehlerfindung: lass die Schleife mit dem GoTo weg und

    1. Lass das Ergebnis des ersten Flächenstücks anzeigen.
    2. Prüfe das Ergebnis auf Richtigkeit.
    3. lass die Loop 2x durchlaufen und teste, ob die Summe korrekt ist, indem Du eine Variable Q = 0 einführst und nach dem Else Q = 1 setzt. Das Berechnungsende soll erfolgen, wenn Q = 1 ist => die Loop wird 2x durchlaufen.
    4. Prüfe die Summe auf Richtigkeit.

    So sollte sich der Fehler finden lassen.

    Leider gibt es keinen zugänglichen Softwareemulator für das Gerät.
    ― Eine häufig von mir verwendete Abkürzung: CEs = control elements (Labels, Buttons, DGVs, ...)
    ― Meine wichtigste Programmiererkenntnis: Mühsam erhängt sich das Eichhörnchen.
    ― If Not GrammarIsOk() Then AssumeThatCodeIsOk = False
    ― »Oh, großes Spaghetticodemonster. Bitte schicke mir Durchblick! Oder zumindest eine Gabel. Oder – wenn es kein Besteck mehr gibt – zumindest Glasnudeln.«
    Hallo,

    Ich habe es mittlerweile geschafft das dass Programm macht was ich möchte, deine Ideen haben dabei geholfen :).
    Also schonmal vielen Dank das du dir dafür Zeit genommen hast.
    Soll ich dann in einer neuen antwort das fertige Programm schicken, oder das thema jetzt wo ich die Lösung habe als abgeschlossen ansehen?
    Ich glaube zwar nicht, dass jemand nochmal ein GTR-Problem haben wird, aber editiere ruhig Deine letzte Antwort, füge dort die Lösung ein und markiere das Thema (ganz oben, kleines Feld anklicken oder über »Thema bearbeiten«) als erledigt.
    ― Eine häufig von mir verwendete Abkürzung: CEs = control elements (Labels, Buttons, DGVs, ...)
    ― Meine wichtigste Programmiererkenntnis: Mühsam erhängt sich das Eichhörnchen.
    ― If Not GrammarIsOk() Then AssumeThatCodeIsOk = False
    ― »Oh, großes Spaghetticodemonster. Bitte schicke mir Durchblick! Oder zumindest eine Gabel. Oder – wenn es kein Besteck mehr gibt – zumindest Glasnudeln.«