• Non ci sono risultati.

EXE su strutture dati elementari

N/A
N/A
Protected

Academic year: 2021

Condividi "EXE su strutture dati elementari"

Copied!
4
0
0

Testo completo

(1)

EXE su strutture dati elementari

INFORMATICA III

Parte B - Progettazione e Algoritmi

Patrizia Scandurra patrizia.scandurra@unibg.it

Università degli Studi di Bergamo a.a. 2010-11

(2)

Valutazione di espressioni in notazione postfissa

• Consideriamo la forma POSTFISSA:

11 22+33* notazione POSTFISSA equivale a:

(11+22)*33 notazione INFISSA

• Non sono necessarie parentesi per controllare l'ordine delle operazioni

• La PILA è la struttura dati che con maggior naturalezza supporta la valutazione di

espressioni algebriche

2

(3)

Algoritmo di valutazione di espressioni algebriche intere

Ipotizzando che l'espressione in input sia in forma postfissa:

1. Crea una pila vuota

2. Scorre l’espressione DA SINISTRA VERSO DESTRA esaminando ogni elemento (operando o operatore):

• se l’elemento è un operando (un intero) lo inserisce nella pila;

• se il termine è un operatore estrae dalla pila il numero di operandi previsto per l'operatore, elabora il risultato dell'operazione su di essi e inserisce il risultato nella pila (ad es. se l’elemento è '+' estrae due elementi dalla pila, li somma e inserisce il risultato nella pila)

– Se la pila contiene meno del numero di operandi richiesti dall’operatore (ad es.

meno di 2 nel caso della somma) viene lanciata un'eccezione di tipo IllegalArgumentException;

3. Se dopo aver esaminato tutta l’espressione ricevuta come argomento la pila contiene un solo elemento si restituisce il valore corrispondente;

4. se invece la pila è vuota o contiene più di un elemento si lancia

un'eccezione di tipo IllegalArgumentException. 3

(4)

Esercizio

a. Si implementi e si collaudi in Java un valutatore di espressioni in notazione postfissa con operatori binari di somma + e moltiplicazione * su numeri interi.

b. Valutare la complessità tempo dell’implementazione dell’algoritmo così fornito.

[Suggerimento: definire una classe ValutaEspressione comprendente un solo metodo statico valuta con firma public int valuta (String[]

expr) che ricevendo in un array di stringhe (ad esempio da linea di comando) l’espressione in notazione postfissa, la valuti seguendo l'algoritmo descritto nel lucido precedente.]

4

Riferimenti

Documenti correlati

In compenso, proprio perché i calcoli sono effettuati in compilazione, non è possibile utilizzare una variabile come indice per accedere a un

ðper ogni nuovo modulo eseguito, la memoria viene disposta come un nuovo piatto sulla pila (in fondo alla pila). ðgli spazi vengono rilasciati nell’ordine in cui compaiono

Simbolo letto dall’ingresso (pu` o non leggere nulla) L’automa a pila passa alla configurazione successiva:. cambiando

4 Sezioni e viste impalcato rampa entrata - scala 1:50 Sezioni travi, traversi e pile rampa entrata - scala 1:50 Piante e sezioni fondazioni rampa entrata - scala 1:50 Piante, viste

2) Scalpellatura e rimozione zone cls ammalorato in fase di rigonfiamento o distacco ove necessario, pulizia delle superfici per eliminare residui di polvere, bonifica delle

"ARENA S.ANTONIO" E DELLE RAMPE DELLO SVINCOLO "VOMERO".

Tesi di Laurea - Progetto di un ponte in calcestruzzo armato precompresso costruito per conci.

Volta notò però che l'esperimento riusciva bene se l'archetto era formato da metalli diversi (per esempio zinco e rame) e ipotizzò il contrario, che la carica elettrica fosse