Académique Documents
Professionnel Documents
Culture Documents
3
Corso
d i
p rogrammazione
O rientata
a gli
O ggetti
BIAR2
( Ing.
I nformatica
e
A utomatica)
A.A.
2 014/2015
1 Introduzione
Si
vuole
realizzare
un
modulo
Java
per
la
gestione
delle
espressioni
algebriche
basate
su
numeri
binari.
Per
fare
questo
si
richiede
limplementazione
di
una
gerarchia
di
seguito
specificata.
2 Progettazione
ed
implementazione
Tutte
le
classi
seguenti
devono
essere
immutabili.
Il bit meno significativo (LSB) si trova bella posizione con indice 0 del vettore.
public
String
toString():
ritorna
la
versione
stampabile
delloggetto.
Per
ogni
sottoclasse
viene
descritto
il
formato
di
ritorno.
public
boolean
equals(Object
o):
verifica
luguaglianza
profonda
ed
in
particolare
ritorna
true
solo
se
loggetto
this
ed
il
riferimento
sono
dello
stesso
tipo
ed
hanno
gli
stessi
valori
nei
campi
di
istanza.
public Bin32 not(): restituisce il negato del valore binario passato come parametro.
Costruttore
ad
un
argomento
di
tipo
int
che
prende
un
valore
intero
e
lo
memorizza
in
forma
binaria
a
32
bit
public String toString(): ritorna la stampa del numero binario a 32 bit con 0 e 1.
Il
metodo
Bin32
calcola()
throws
NumberFormatException
in
questo
caso
non
dovr
mai
rilanciare
eccezioni
(ERRORE
NEL
TESTO
IGNORARE)
Se
larray
di
valori
ha
lunghezza
minore
di
due
rilanciare
leccezione
public
String
toString():
ritorna
la
stampa
dellespressione
nella
forma
(prestando
attenzione
alle
parentesi
tonde
e
allo
spazio
in
mezzo)
(OPERANDO_1 OPERATORE OPERANDO_2 OPERATORE
OPERANDO_N)
in
cui
al
posto
di
operatore
si
stamper
il
testo
AND,
OR,
XOR
a
seconda
dei
casi.
Il
metodo
Bin32
calcola()
throws
NumberFormatException
in
questo
caso
non
dovr
mai
rilanciare
eccezioni
Nota:
La
classe
estende
Bin32
e
quindi
rappresenta
anchessa
un
numero
binario
che
corrisponde
al
risultato
delloperazione
stessa.
un
costruttore
a
due
argomenti
Bin32
o1,
EnumOperazioneAritmetica
op,
Bin32
o2
che
costruisce
una
operazione
aritmetica
del
tipo
specificato
da
op,
applicata
ai
due
argomenti
o1
ed
o2.
o
Il
metodo
Bin32
calcola()
throws
NumberFormatException
deve
rilanciare
una
eccezione
con
messaggio
overflow
nel
caso
di
overflow
delloperazione
public
String
toString():
ritorna
la
stampa
dellespressione
nella
forma
(prestando
attenzione
alle
parentesi
tonde
e
allo
spazio
in
mezzo):
o
Nota:
La
classe
estende
Bin32
e
quindi
rappresenta
anchessa
un
numero
binario
che
corrisponde
al
risultato
delloperazione
stessa.
2.10 Valutazione
A
titolo
di
esempio
viene
fornito
insieme
al
presente
documento
la
classe
java
HWooP03Prova
(contenuta
nel
file
HWooP03Prova.java)
contenente
un
main
di
prova
che
effettua
alcuni
test
di
correttezza
sulla
classe
da
inviare.
Si
tratta
di
test
case
differenti
da
quelli
utilizzati
poi
per
leffettiva
valutazione
del
lavoro
svolto
e
non
coprono
tutte
le
casistiche
dinteresse.
Gli
studenti
sono
quindi
invitati
ad
effettuare
i
test
che
ritengono
opportuni
in
totale
autonomia.
La
verifica
finale
dellhomework
avverr
su
una
batteria
di
test
non
pubblici,
opportunamente
predisposta
dal
docente:
si
considerer
superato
lhomework
se
almeno
l95%
dei
test
dar
esito
positivo.