Domanda

Sono un c # newbie.Voglio scrivere un'applicazione di calcolatrice in C #.Gli alberi di espressione sarebbero un buon modo per andare per il coraggio di esso?(Cioè, la parte che prende una serie dipressioni e trasformali in un'espressione che la calcolatrice può valutare e visualizzare sullo schermo... O grafico.)

Voglio includere le funzioni matematiche standard, incluso trig, trig, registri, esponenti, ecc.

È stato utile?

Soluzione

Dal momento che la tua lingua per le espressioni matematiche sarà sicuramente molto, molto più semplice di c #, sospetto che il tentativo di riutilizzare le classi dell'albero di espressione quadro rappresenti il tuo ASTS sarà eccessivo e probabilmente una ricetta per la frustrazione;Se guardi quelle classi, vedrai molte proprietà e funzionalità che sarebbero totalmente irrilevanti alla tua piccola lingua.Ti avrei rotolato se fossi in te.

Altri suggerimenti

Potresti essere in grado di imparare da questo progetto, ci sono buoni tutorials aobut come è stato fatto

Hai visto http://ncalc.codeplex.com ?

È estensibile, veloce (ad esempio ha la sua cache) consente di fornire funzioni personalizzate e varaibles in fase di esecuzione maneggiando eventi di valutazione function / EvaluateParameter. Esempio di espressioni che può analizzare: Espressione e= nuova espressione ("round (pow (POW (PI, 2) + POW ([PI2], 2) + x, 2)");

E.Parameters ["PI2"]= nuova espressione ("pi * pi"); e.parameters ["x"]= 10;

E.evalue Reparameter += Delegate (nome stringa, parametrica ARGS) { IF (NAME=="PI") args.result= 3.14; };;

debug.assert (117.07== e.evaluate ());

Gestisce anche Unicode e molti tipi di dati in modo nativo. Viene fornito con un file antler se vuoi cambiare il grammer. C'è anche una forchetta che supporta la DEF per caricare nuove funzioni.

Supporta anche operatori logici, stringhe di data / ora e se le dichiarazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top