Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Programmazione
 
hi
Clicca QUI per vedere il messaggio nel forum
klajdit
Salve sono un nuovo entrato in forum è mi e piaciuto l'organizazzione del forum.Ma ho un problema non riescho a risolvere un programino in java percio chiedo il vostro aiuto se qualcuno sa programare in java mi da una mano.Vi ringrazio klajdit.
Adesso vi mandi il testo..



Definire una classe Java, chiamata Espressione, per la rappresentazione di semplici espressioni letterali, lette da input in notazione Polacca prefissa. Un'espressione può quindi avere una delle seguenti forme:
- una lettera 'x' o 'y', senza sottoalberi;
- +ab oppure *ab, dove a e b sono espressioni.

Ogni espressione si può vedere come un albero, che consiste di un solo nodo se l'espressione è una lettera, o ha la forma come in figura sottostante:




dove a e b sono alberi che rappresentano il primo ed il secondo argomento delle operazioni + o *, e le espressioni corrispondenti hanno la rispettiva forma +ab e *ab.

Per esempio, l'espressione +*xx*yy è corrisponde all'albero:




La classe Espressione dovrà contenere:
- un attributo privato op, il cui valore è una lettera 'x' o una lettera 'y' o uno dei simboli di operazione '+' o '*';
- due attributi privati (di tipo Espressione) che hanno come valore le rappresentazioni degli argomenti se il valore dell'attributo op è un simbolo di operazione, altrimenti hanno come valore null.

Includere nella classe:
- un costruttore che legge da input standard un'espressione e ne costruisce l'albero corrispondente, istanza della classe Espressione;
- opportuni metodi di incapsulamento;
- un metodo che visita un albero, istanza di Espressione, e ne scrive il contenuto su output standard in notazione usuale, usando parentesi e scrivendo i simboli di operazione tra i due argomenti. Per esempio, l'espressione in notazione Polacca prefissa +*xx*yy viene scritta su output standard come ((x*x)+(y*y));

Provare la classe Espressione utilizzando il main contenuto nella classe Esercizio scaricabile da qui.



Un suggerimento: Il metodo per la costruzione di un albero a partire da un'espressione deve leggere da input il minimo numero di simboli (a partire dalla posizione corrente di lettura) che definiscono un'espressione; così, ad esempio, se si legge la lettera x si può costruire subito l'albero corrispondente, mentrese il simbolo letto è + o *, allora quello che segue avrà la forma ab, dove a e b sono espressioni. Quindi il costruttore sarà un metodo ricorsivo.

morganhk
Originally posted by klajdit
Salve sono un nuovo entrato in forum è mi e piaciuto l'organizazzione del forum.Ma ho un problema non riescho a risolvere un programino in java percio chiedo il vostro aiuto se qualcuno sa programare in java mi da una mano.Vi ringrazio klajdit.
Adesso vi mandi il testo..



Definire una classe Java, chiamata Espressione, per la rappresentazione di semplici espressioni letterali, lette da input in notazione Polacca prefissa. Un'espressione può quindi avere una delle seguenti forme:
- una lettera 'x' o 'y', senza sottoalberi;
- +ab oppure *ab, dove a e b sono espressioni.

Ogni espressione si può vedere come un albero, che consiste di un solo nodo se l'espressione è una lettera, o ha la forma come in figura sottostante:




dove a e b sono alberi che rappresentano il primo ed il secondo argomento delle operazioni + o *, e le espressioni corrispondenti hanno la rispettiva forma +ab e *ab.

Per esempio, l'espressione +*xx*yy è corrisponde all'albero:




La classe Espressione dovrà contenere:
- un attributo privato op, il cui valore è una lettera 'x' o una lettera 'y' o uno dei simboli di operazione '+' o '*';
- due attributi privati (di tipo Espressione) che hanno come valore le rappresentazioni degli argomenti se il valore dell'attributo op è un simbolo di operazione, altrimenti hanno come valore null.

Includere nella classe:
- un costruttore che legge da input standard un'espressione e ne costruisce l'albero corrispondente, istanza della classe Espressione;
- opportuni metodi di incapsulamento;
- un metodo che visita un albero, istanza di Espressione, e ne scrive il contenuto su output standard in notazione usuale, usando parentesi e scrivendo i simboli di operazione tra i due argomenti. Per esempio, l'espressione in notazione Polacca prefissa +*xx*yy viene scritta su output standard come ((x*x)+(y*y));

Provare la classe Espressione utilizzando il main contenuto nella classe Esercizio scaricabile da qui.



Un suggerimento: Il metodo per la costruzione di un albero a partire da un'espressione deve leggere da input il minimo numero di simboli (a partire dalla posizione corrente di lettura) che definiscono un'espressione; così, ad esempio, se si legge la lettera x si può costruire subito l'albero corrispondente, mentrese il simbolo letto è + o *, allora quello che segue avrà la forma ab, dove a e b sono espressioni. Quindi il costruttore sarà un metodo ricorsivo.


Non ho capito che tipo di aiuto ti serve......hai postato solamente il testo dell'esercizio.... :-)

Se hai bisogno di qualche ripetizione ti posso aiutare io altrimenti cerca di essere più preciso riguardo i tuoi dubbi

Ciao

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate