Oppure

Loading
21/10/20 11:02
Carlo
In questo progetto un valutatore di espressione matematica scritto in C#.
Il codice non è un buon esempio di programmazione, non vengono usate le peculiarità OOP, me ne scuso è colpa del mio retaggio procedurale.
Restando confinati negli operatori supportati, l'affidabilità del risultato del mio codice è paragonabile a quella del parser contenuto nel Framework scritto dai programmatori Microsoft.

Ho provato altri parser scritti in modo molto più "elegante", ma poi falliscono nel risultato, se devono processare espressioni con combinazioni "particolari".

Il progetto è aperto, aiuti per renderlo OOP sarebbero graditi.
pierotofy.it/pages/sorgenti/dettagli/19622-Parser=Matematico/

Ultima modifica effettuata da Carlo 21/10/20 11:06
in programmazione tutto è permesso
22/10/20 10:08
Thejuster
non sò te ma ho diversi errori

Error    12    The name 'ris' does not exist in the current context ValutazioneEspressione.cs    125    57    ParserEspressioneMatematica


Error    5    The name 'contr' does not exist in the current context    ValutazioneEspressione.cs    103    61    ParserEspressioneMatematica


Error    2    The best overloaded method match for 'double.TryParse(string, out double)' has some invalid arguments     ValutazioneEspressione.cs    103    21    ParserEspressioneMatematica




Error    4    Only assignment, call, increment, decrement, and new object expressions can be used as a statement    ValutazioneEspressione.cs    103    61    ParserEspressioneMatematica




ed altri ancora.

mire.forumfree.it/ - Mire Engine
C# UI Designer
22/10/20 16:43
Carlo
Wow non me lo aspettavo uso VS2017, su win7 e su win10, a 32 e a 64 bit, nessun errore.:blush: L'exe funziona?

EDIT:
Provato su VS2012 ho i tuoi stessi errori perché VS2012 non supporta le dichiarazioni inline
Nelle righe 125 e 103, ho dichiarato inline le variabili ris e contr, ho corretto il codice togliendo le dichiarazioni inline che VS2017 propone come suggerimento...


Aggiornato progetto funzionante anche con VS2012.
pierotofy.it/pages/projects/…
Ultima modifica effettuata da Carlo 26/10/20 17:33
in programmazione tutto è permesso
27/10/20 13:41
Carlo
caricata Ver 2.1. Progetto completo di esempio: pierotofy.it/pages/projects/…
Sostituita funzione con Classe ClassParser:

//************************** PROPRIETA' ESPOSTE *************************
//* Decimali [String] es. "0.000000" (=6 decimali)
//* CulturaInfo [string] (restituisce l'interpretazione dei . e , decimali)
//* Progressione [List<string>] (progresso, cancellare prima di usare ParseEspressione)
//*********************************************************************

//*************************** METODI ESPOSTI ***************************
//* ClassParser
//* Tokenizza [String] (tokenizza l'espressione per la valutazione da ParseEspressione)
//* DeTokenizza [String] (detokenizza l'espressione)
//* ParseEspressione [String] (valuta un'espressione matematica tokenizzata)
//* AggiustaSegni [String] (valuta segni accoppiati, non serve al di fuori della classe)
//*********************************************************************
Ultima modifica effettuata da Carlo 30/10/20 15:58
in programmazione tutto è permesso
02/11/20 11:47
Thejuster
ah ecco.
Lo dico perché l'ho testato mentre ero al lavoro durante lo spacco e li abbiamo ancora Windows XP per diverse ragioni di compatibilità tra macchine e sistemi. :rotfl:

Anche se è sempre utile aggiornarsi conviene anche avere un piccolo riguardo di retro compatibilità.
Cmq ben fatto carlo :k:
mire.forumfree.it/ - Mire Engine
C# UI Designer