AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Differenzieren??

Ein Thema von herklotz · begonnen am 1. Okt 2008 · letzter Beitrag vom 3. Okt 2008
Antwort Antwort
herklotz

Registriert seit: 15. Sep 2008
12 Beiträge
 
#1

Differenzieren??

  Alt 1. Okt 2008, 14:00
Hallo ich bin's mal wieder!

Wir sollen uns nun für die Schule die Woche über mit Differnzieren von Gleichungen beschäftigen.
Leider habe ich im Moment überhaupt keinen Ansatz.
Wir sollen das in etwa so machen:
Der Nutzer soll z.B. eine f(x)=mx²+c Funktion eingeben und daraus vom Programm in y:=m*x*x+c;
umgewandelt werden.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Differenzieren??

  Alt 1. Okt 2008, 14:10
Zitat von herklotz:
Hallo ich bin's mal wieder!

Wir sollen uns nun für die Schule die Woche über mit Differnzieren von Gleichungen beschäftigen.
Leider habe ich im Moment überhaupt keinen Ansatz.
Wir sollen das in etwa so machen:
Der Nutzer soll z.B. eine f(x)=mx²+c Funktion eingeben und daraus vom Programm in y:=m*x*x+c;
umgewandelt werden.
Sollte es nicht so aussehen:

f(x)=mx^2+c -> f'(x)=2mx

Wenn mich meine Mathekenntnis nicht ganz verlassen haben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Differenzieren??

  Alt 1. Okt 2008, 14:12
Ich glaube, er meint nicht "differenzieren" (was ja ableiten heißen würde), sondern parsen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#4

Re: Differenzieren??

  Alt 1. Okt 2008, 14:17
Wie kommt man von "parsen" bzw. "Gleichung auseinanderziehen" zu "differenzieren"? ôO
Florian Heft
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#5

Re: Differenzieren??

  Alt 1. Okt 2008, 14:19
Ich glaube er meint, er muss eine Funktion parsen, um sie differenzieren zu können.

Ich weiß nicht wie weit ihr seid, aber wenn ihr am Anfang seid würde ich ein paar Edits hinklatschen.

m*x^n+c

Ein Edit für m, ein Edit für n und ein Edit für c.

Oder aber nur ein Edit und du parst es. Musst aber bei bedenken, dass es passieren kann, dass jemand Vorzeichen verwendet, Mal-Zeichen weglässt.

Das wird sicher lustig und ein Haufen Arbeit.
  Mit Zitat antworten Zitat
herklotz

Registriert seit: 15. Sep 2008
12 Beiträge
 
#6

Re: Differenzieren??

  Alt 1. Okt 2008, 15:01
Danke ersteinmal! Ja ich hatte mich wohl ein bisschen falsch ausgedrückt.
So ist's richtig:
1. nur ein Editfeld (z.B. f(x) = x^2 soll rein)
2. dann parsen, damit mit eingesetzten x-Werten rechnen kann
3. dann Ableitungsfunktion (in dem Fall f'(x) = 2x)

Hierbei ist mir eigentlich nur ein Denkanstoß wichtig, um aus 'f(x) = x^2' im Programm etwas rechenbares zu machen.
Schritt 3 kann ich dann alleine.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#7

Re: Differenzieren??

  Alt 1. Okt 2008, 15:52
Zitat von herklotz:
Danke ersteinmal! Ja ich hatte mich wohl ein bisschen falsch ausgedrückt.
So ist's richtig:
1. nur ein Editfeld (z.B. f(x) = x^2 soll rein)
2. dann parsen, damit mit eingesetzten x-Werten rechnen kann
3. dann Ableitungsfunktion (in dem Fall f'(x) = 2x)

Hierbei ist mir eigentlich nur ein Denkanstoß wichtig, um aus 'f(x) = x^2' im Programm etwas rechenbares zu machen.
Schritt 3 kann ich dann alleine.
Also ich bin da sicher keine große Hilfe. Aber als Anfang:

Auf Kleinschreibung umstellen LowerCase und Leerzeichen entfernen (Trim?). Dann hast du es erstmal einfacher. *-Zeichen könntest du auch entfernen, wenn nicht jemand eingibt f(x) = 2x + (3 * 2).

Dann suchst du mittels Pos X. Wenn X Pos1 ist, ist m (mx+n) = 1, wenn X An Position 2 ist, dann prüfst du, ob die 1. Position - ist (das wäre dann -x + ...). In dem Falle wäre m - 1. Wenn das alles nicht zutrifft ist m der Wert, der vor dem X steht.

Ganz einfach und umständlich.
  Mit Zitat antworten Zitat
ThomasNds

Registriert seit: 16. Sep 2008
4 Beiträge
 
Delphi 5 Standard
 
#8

Re: Differenzieren??

  Alt 2. Okt 2008, 22:51
Mögliche Denkanstöße:

http://www.bestcode.com/html/tbcparser.html
http://www.delphipraxis.net/internal...t.php?p=486614
http://www.efg2.com/Lab/Library/Delp...ns/Parsers.htm
http://www.delphi-forum.de/viewtopic...ht=matheparser (die Antwort)
http://www.delphi-forum.de/viewtopic...onen+auswerten
http://www.heise.de/kiosk/archiv/ct/95/02/234
http://www.jkrieger.de/programming/jkmath/jkmath.html
http://www.flashforum.de/forum/showthread.php?t=246436

Bäume sind berechenbar
Rekursiver Formel-Parser mit Baumstruktur
Harald Lipke
Know-how, Binärbaum
c't 12/89, S. 250 (it)


Suchwörter für Yahoo/Google: Formelparser, Formelauswerter, (mathematical expression parser, Matheparser, Formelparser


Hoffe geholfen zu haben.


Tom
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Differenzieren??

  Alt 3. Okt 2008, 00:17
Ich habe auch schon mal irgendwann sowas geschrieben. Vorgegangen bin ich damals in etwa so:
- Operatorenreihenfolge feslgegen
- Operator mit der höchsten Priorität in dem String suchen
- Als Wurzel in einen Baum einfügen
- Reststrings (je nach parameteranzahl des Operators/der Funktion) als Child-Knoten eingefügt
- das ganze für die Kinder und alle anderen Operatoren wiederholen
- Nachdem alles aufgeteilt wurde in der untersten Ebene anfangen zu berechnen

Wesentlich einfacher wird das ganze, wenn du nur wenige Operatoren und möglichst mit gleicher Parameteranzahl nimmst.
Noch einfacher ist es, wenn du PostFix-Schreibweise für Funktionen/Operatoren vorgibst
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz