Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Builder+Interpreter+Composite

    Salve,
    sto realizzando un progetto didattico relativo ad ingegneria del software.. Vi posto parte della traccia:

    Si considera un semplice linguaggio per la formulazione di espressioni condizionali, ossia espressioni booleane i cui operandi sono generati da un confronto di due espressioni aritmetiche, con un operatore di relazione. Le espressioni aritmetiche si intendono costruite su numeri senza segno, manipolati dagli operatori addizione, sottrazione, moltiplicazione, divisione (quoziente), resto della divisione intera, elevamento a potenza. Nelle espressioni aritmetiche, l’elevamento a potenza è il più prioritario, seguono gli operatori moltiplicativi (moltiplicazione e divisione) ed infine quelli additivi (somma e sottrazione). Nelle espressioni booleane, NOT è l’operatore più prioritario, segue AND, quindi OR. Gli operatori di relazione sono più prioritari degli operatori booleani.

    Esempi di espressioni condizionali:

    a<=b && c>1 || a==4 che è equivalente a: (a<=b && c>1) || a==4
    a%b==0 && (a>2 || b-12>0)

    L’obiettivo del progetto, basato sui pattern Composite, Builder (ricorsivo) e Interpreter, è quello di acquisire da input un’espressione condizionale, farne l’analisi sintattica e costruire l’albero sintattico (composite) corrispondente. A partire dall’albero occorre valutare il risultato della condizione sulla base di un contesto o ambiente (fornito esternamente mediante un file properties), che stabilisce i valori delle variabili intere usate nelle espressioni aritmetiche (se una variabile non è presente nel contesto, si assume che il suo valore sia 0). Occorre altresì predisporre le operazioni di stampa in ordine simmetrico e postfisso del composite di una condizione.

    Ho "progettato" una bozza di soluzione, costruendo l'albero sintattico tramite Composite, costruendo un'interfaccia generale Espressione e poi le sottoclassi Espressione Booleana ed EspressioneAritmetica ed infine le classi che rappresentano gli operatori finali And, od, Plus, minus ecc. Adesso vi chiedo, come posso costruire il composite con il builder ed interpreter?!!?!?!?
    Maria

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da mariella_88
    Ho "progettato" una bozza di soluzione, costruendo l'albero sintattico tramite Composite, costruendo un'interfaccia generale Espressione e poi le sottoclassi Espressione Booleana ed EspressioneAritmetica ed infine le classi che rappresentano gli operatori finali And, od, Plus, minus ecc. Adesso vi chiedo, come posso costruire il composite con il builder ed interpreter?!!?!?!?
    Riporta il codice scritto sino ad ora o le sue parti salienti e potremo suggerirti come modificarle e/o integrarle.

    Il forum non risolve esercizi su commissione (che sia gratuita o retribuita).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ciao..Puoi chiudere la discussione perchè ho risolto..
    grazie mille lo stesso e scusa se sono stata poco precisa e se ho infranto qualche regola del forum..
    Maria

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da mariella_88
    Ciao..Puoi chiudere la discussione perchè ho risolto..
    Io chiudo, ma sottolineo che non è questo il modo di utilizzare il forum: nell'affrontare un problema preciso occorre postare la soluzione affinché tutti gli utenti possano giovare della discussione qualora dovessero trovarsi in futuro nella medesima situazione.

    Invito quindi a tenere in considerazione le indicazioni fornite in questa occasione per le prossime discussioni.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.