Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Parser_Matematico - Parser Matematico C#

Parser_Matematico

Sommario | Admin | Forum | Bugs | Todo | Files

Avatar
Carlo (Member)
Guru


Messaggi: 767
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 13:02
Mercoledì, 21/10/2020
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.
http://www.pierotofy.it/pages/sorgenti/dettagli/19622-Pars ...


Ultima modifica effettuata da Carlo il 21/10/2020 alle 13:06


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2019
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:08
Giovedì, 22/10/2020
non sò te ma ho diversi errori

Testo quotato


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



Testo quotato


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



Testo quotato


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





Testo quotato


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.



PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 767
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 18:43
Giovedì, 22/10/2020
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.
http://www.pierotofy.it/pages/projects/files.php?id=700

Ultima modifica effettuata da Carlo il 26/10/2020 alle 18:33


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 767
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 14:41
Martedì, 27/10/2020
caricata Ver 2.1. Progetto completo di esempio: http://www.pierotofy.it/pages/projects/files.php?id=700
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 il 30/10/2020 alle 16:58


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2019
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:47
Lunedì, 02/11/2020
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:


PM Quote