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 16:43
Carlo
Wow non me lo aspettavo uso VS2017, su win7 e su win10, a 32 e a 64 bit, nessun errore.
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