AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Taschenrechner mit natürlicher Eingabe
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner mit natürlicher Eingabe

Ein Thema von Chronm · begonnen am 26. Okt 2012 · letzter Beitrag vom 28. Okt 2012
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Taschenrechner mit natürlicher Eingabe

  Alt 26. Okt 2012, 19:42
Wie arbeitet dein Parser? Baut er einen Baum auf? Dann koenntest du dir ueberlegen, einfach den Zeichenkontext (das Bitmap, Zeichenkoordinaten und evtl. noch Schriftgroesse (Exponenten kleiner)) durchzureichen und jeden Knoten sich selbst zeichnen zu lassen.
Wuerde ich in zwei Methoden aufteilen: Eine, die die Groesse des benoetigten Zeichenbereiches zurueckgibt und eine, die tatsaechlich zeichnet.

In Pseudocode koennte die Additions-Zeichen-Methode z.B. so aussehen:
Code:
Additionsknoten::zeichne(ACanvas: TCanvas, AStartpunkt: Koordinate, ASchriftgroesse: Zahl)
{
  ErsterBereich: Rechteck := ErsterUnterbaum->zeichen_groesse(ASchriftgroesse);
  ZweiterBereich: Rechteck := ZweiterUnterbaum->zeichen_groesse(ASchriftgroesse);
  OperatorBereich: Rechteck := ermittle_text_groesse("+", ASchriftgroesse);
  ErsterBereich->zeichne(ACanvas, AStartpunkt, ASchriftgroesse);
  AStartpunkt->verschiebe(ErsterBereich->X, 0);
  Canvas->zeichne_text("+", ASchriftgroesse, AStartpunkt);
  AStartpunkt->verschiebe(OperatorBereich->X, 0);
  ZweiterBereich->zeichne(ACanvas, AStartpunkt, ASchriftgroesse);
}
Bei Zahlen-Knoten musst du eben nur die enthaltene Zahl zeichnen, bei Bruch-Knoten musst du Bruchstriche zeichnen etc., aber alles nach gleichem Schema.
  Mit Zitat antworten Zitat
Chronm

Registriert seit: 3. Apr 2011
7 Beiträge
 
#12

AW: Taschenrechner mit natürlicher Eingabe

  Alt 26. Okt 2012, 20:06
@Implementation:
ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe. Meinst du das so? http://www.delphipraxis.net/832386-post2.html. Wenn nicht bitte berichtigen
Das wäre zur Not eine Alternative gewesen, lieber wäre mir das wie im Bild.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

AW: Taschenrechner mit natürlicher Eingabe

  Alt 26. Okt 2012, 20:46
der die vom Benutzer eingegebenen Daten natürlich darstellt, also nicht sqrt(...) sondern das Wurzelzeichen
Also darstellen wäre wohl schon noch möglich.
Hier wäre z.B. LaTex zu nennen, das Formeln grafisch so aufbereiten kann dass man es in mathematischen Büchern gebrauchen kann.
Hier ne kleine Übersicht wie das aussieht: http://www.hosi.de/latex/mathe.htm

Schon allein dieser Sourcecode, der aus einem LaTex-Dokument einen grafischen Output erzeugt ist schon ziemlich hardcore.

Noch schwieriger wäre ein Editor, der die Formel in der für Mathematiker geläufigen Form anzeigt und ein direktes Ändern erlaubt.

Sagen wir mal es würde eine Formel in dieser Schreibweise vorliegen:
Code:
y = (sin(x)/x) ^ 2
Mit einigem Aufwand wäre es vielleicht möglich, diesen String in ein LaTex-Format zu überführen; aber das wird nicht einfach.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Taschenrechner mit natürlicher Eingabe

  Alt 26. Okt 2012, 20:55
@Implementation:
ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe. Meinst du das so? http://www.delphipraxis.net/832386-post2.html. Wenn nicht bitte berichtigen
Das wäre zur Not eine Alternative gewesen, lieber wäre mir das wie im Bild.
Nein, das meine ich nicht. Die interne Darstellung (wie der Ausdruck im Speicher liegt) soll eine Baumstruktur sein, und mithilfe dieser zeichnest du dann dein gewuenschtes Bild (rekursiv)

Zitat von sx2008:
Mit einigem Aufwand wäre es vielleicht möglich, diesen String in ein LaTex-Format zu überführen; aber das wird nicht einfach.
Wenn man schonmal eine Baumstruktur hat, ist auch das ganz schnell umzusetzen. Ohne ist das natuerlich eine harte Sache.

Geändert von implementation (26. Okt 2012 um 20:58 Uhr)
  Mit Zitat antworten Zitat
Chronm

Registriert seit: 3. Apr 2011
7 Beiträge
 
#15

AW: Taschenrechner mit natürlicher Eingabe

  Alt 27. Okt 2012, 00:48
Also das mit LaTeX geht auf jeden Fall in die richtge Richtung, danke dafür. Ich werd mich mal damit beschäftigen, mal gucken was dabei rum kommt. Ich komme bestimmt aber nochmal auf euch zu sprechen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#16

AW: Taschenrechner mit natürlicher Eingabe

  Alt 27. Okt 2012, 02:52
Also ich versuche das Ganzen evtl. aus einer neuen Richtung zu betrachten. Einen Parser zu Progen die diese geilen LaTeX Formenln, oder wie sie auch aussehen sollen, direkt interpretiert, ist wahrscheinlich keine gute Idee. Was du evtl. angehen solltest ist zuerst einen normalen Formelparser zu progen, der diese häßlichen sqrt statt Wurzelzeichen interpretiert. Hast du einen stabilen Formelparser programmiert, hast du das halbe Problem hinter dir. Der zweite Teil deines Programms wäre dann einen grafischen Formeleditor zu programmieren. Hast du das geschafft, was an für sich schon etwas Arbeit ist, programmierst du einen Parser der die grafische Formeln in in die häßliche normale Formel umsetzt, also die mit sqrt.

In dem Fall wäre das Problem zweigeteilt. Ein Programmteil das sich um die grafische Darstellung kümmert, der zweite Teil der die Berechnung durchführt.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
736 Beiträge
 
#17

AW: Taschenrechner mit natürlicher Eingabe

  Alt 28. Okt 2012, 12:24
wolframalpha.com bekommt das ganz gut hin:

http://www.wolframalpha.com/input/?i...28x%29%29+^+2+

und es gibt auch eine API dafür:

http://products.wolframalpha.com/developers/
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#18

AW: Taschenrechner mit natürlicher Eingabe

  Alt 28. Okt 2012, 13:41
Also wenn es um Formeldarstellung geht, würde ich mal gucken, wie es andere Programme machen, die LaTeX interpretieren und darstellen.
Davon gibt es viele in JavaScript, aber auch in C und Java ... eine Websuche wird da genug Quellcode finden (auch unter nicht-Copyleft-Lizenzen).

Wenn es nicht so schön wie LaTeX werden soll, würde ich einfach an den Blättern deines Formelbaumes anfangen und die dort gerenderten Formeln als Boxen betrachten, die du dann in die jeweils höhere Darstellung einbaust.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 00:31 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