================================================================
OPERAZIONI PRELIMINARI ( da effettuarsi subito, prima di iniziare ! ! ! )
================================================================
1) Copiare il file mips_turno1_dispari.s nel file risultato.s.
2) Copiare il file turno1.dispari.java nel file risultato.java.
3) Inserire nella prima riga di ciascuno dei due file un commento con l'indicazione del
COGNOME, NOME, PROFESSORE, NUMERO POSTAZIONE di lavoro.
================================================================
Esercizio MIPS
================================================================
La funzione sum_every_3 contenuta nel file risultato.s prevede in input i due vettori
vet e res ed effettua il seguente calcolo:
somma i primi tre elementi del vettore vet e memorizza il risultato ottenuto nella prima
posizione del vettore res; somma i successivi tre elementi del vettore vet e memorizza il
risultato ottenuto nella seconda posizione del vettore res; continua in questo modo fino ad
esaurire tutti gli elementi del vettore vet. Al termine la funzione ritorna il numero di elementi
inseriti nel vettore res.
Come esercizio si chiede di implementare tale funzione. Si può assumere che il vettore vet
abbia un numero di elementi multiplo di tre.
N.B. Non modificare né i dati specificati nella direttiva .data né il codice del main, pena la
non presa in considerazione della soluzione fornita.
================================================================
Esercizio JAVA
================================================================
L’interfaccia EdgeSet definisce il grafo G=(V,E) come un insieme di archi e la classe
MyEdgeSet implementa tale interfaccia. La classe IncidentEdgesIterator (contenuta
nel file risultato.java ) realizza un Iterator sull’insieme dei vertici adiacenti un dato
vertice del grafo G=(V,E).
La classe MyEdgeSet usa un array per rappresentare l’insieme di archi; di conseguenza gli
archi sono identificati nell’EdgeSet da un indice i crescente a partire da i=0.
Come
esercizio
si
chiede
di
fornire
l’implementazione
della
classe
IncidentEdgesIterator.
N.B. Il metodo main della classe Main contiene il codice per la costruzione di un esempio di
grafo e per la verifica del corretto funzionamento dell’implementazione dell’iteratore. Tale
codice è completo e non deve essere modificato in alcun modo, pena la non presa in
considerazione della soluzione fornita.
================================================================
N.B. Al termine della prova il candidato dovrà lasciare nella directory di lavoro i seguenti file:
- risultato.s soluzione dell’esercizio MIPS
- risultato.java soluzione dell’esercizio JAVA
N.B. I due files VENGONO CONSIDERATI E CORRETTI SOLO SE contengono come prima
riga un commento con l'indicazione del COGNOME, NOME, PROFESSORE, NUMERO
POSTAZIONE di lavoro.
================================================================
OPERAZIONI PRELIMINARI ( da effettuarsi subito, prima di iniziare ! ! ! )
================================================================
1. Copiare il file mips_turno1_pari.s nel file risultato.s.
2. Copiare il file turno1.pari.java nel file risultato.java.
3. Inserire nella prima riga di ciascuno dei due file un commento con l'indicazione del
COGNOME, NOME, PROFESSORE, NUMERO POSTAZIONE di lavoro.
================================================================
Esercizio MIPS
================================================================
La funzione remove_cif contenuta nel file risultato.s prevede in input due argomenti:
una stringa da elaborare ed un buffer in cui memorizzare il risultato dell’elaborazione.
La funzione copia nel buffer la stringa in input eliminando tutte le cifre.
Ad esempio:
- input
"nel 1957 il mese di febbraio aveva 28!"
- output
"nel il mese di febbraio aveva !"
Come esercizio si chiede di implementare tale funzione.
N.B. Non modificare né i dati specificati nella direttiva .data né il codice del main, pena la
non presa in considerazione della soluzione fornita.
================================================================
Esercizio JAVA
================================================================
L’interfaccia BinaryTree e la classe MyBinaryTree contenute nel file risultato.java
definiscono e implementano un albero binario. La classe ZigZagIterator realizza un
Iterator sugli elementi dei nodi dell’albero che si trovano nel cammino che parte dalla
radice e procede scendendo alternativamente prima a sinistra e poi a destra fino ad arrivare ad
un nodo esterno.
Come esercizio si chiede di fornire l’implementazione della classe ZigZagIterator.
N.B. Il metodo main della classe Main contiene il codice per la costruzione di un esempio di
albero binario e per la verifica del corretto funzionamento dell’implementazione dell’iteratore.
Tale codice è completo e non deve essere modificato in alcun modo, pena la non presa in
considerazione della soluzione fornita.
================================================================
N.B. Al termine della prova il candidato dovrà lasciare nella directory di lavoro i seguenti file:
- risultato.s soluzione dell’esercizio MIPS
- risultato.java soluzione dell’esercizio JAVA
N.B. I due files VENGONO CONSIDERATI E CORRETTI SOLO SE contengono come prima
riga un commento con l'indicazione del COGNOME, NOME, PROFESSORE, NUMERO
POSTAZIONE di lavoro del candidato.
================================================================
OPERAZIONI PRELIMINARI ( da effettuarsi subito, prima di iniziare ! ! ! )
================================================================
1. Copiare il file mips_turno2_dispari.s nel file risultato.s.
2. Copiare il file turno2_dispari.java nel file risultato.java.
3. Inserire nella prima riga di ciascuno dei due file un commento con l'indicazione del
COGNOME, NOME, PROFESSORE, NUMERO POSTAZIONE di lavoro.
================================================================
Esercizio MIPS
================================================================
La funzione split_vet contenuta nel file risultato.s prevede in input :
# Arg1 in $a0 - indirizzo base del vettore in input da suddividere
# Arg2 in $a1 - indirizzo base del vettore in output con valori <= pivot
# Arg3 in $a2 - indirizzo base del vettore in output con valori > pivot
# Arg4 in $a3 - valore del pivot
La funzione copia gli elementi con valore <= pivot nel primo vettore in output e gli elementi
con valore > pivot nel secondo vettore in output.
N.B tutti e tre i vettori contengono nella posizione di indice 0 il numero degli elementi in essi
contenuti e nelle posizioni successive gli elementi stessi.
Ad esempio l’istruzione successiva definisce un vettore di 11 elementi.
vet:
.word 11, 20, 80, 90, 10, 70, 60, 30, 23, 40, 22, 53
Come esercizio si chiede di implementare la funzione split_vet.
N.B. Non modificare né i dati specificati nella direttiva .data né il codice del main, pena la
non presa in considerazione della soluzione fornita.
================================================================
Esercizio JAVA
================================================================
L’interfaccia IntegerSet definisce un insieme di Integer e la classe MyIntegerSet
implementa tale interfaccia. La classe IntegerSubsetIterator (contenuta nel file
risultato.java ) realizza un Iterator sul sottoinsieme degli interi che terminano con una
cifra data. La classe MyIntegerSet usa un array per rappresentare l’insieme degli Integer; di
conseguenza gli elementi sono identificati nell’ IntegerSet da un indice i crescente a partire
da i=0.
Come esercizio si chiede di fornire l’implementazione della classe IntegerSubsetIterator.
N.B. Il metodo main della classe Main contiene il codice per la costruzione di un esempio di
insieme di Integer e per la verifica del corretto funzionamento dell’implementazione
dell’iteratore. Tale codice è completo e non deve essere modificato in alcun modo, pena la non
presa in considerazione della soluzione fornita.
================================================================
N.B. Al termine della prova il candidato dovrà lasciare nella directory di lavoro i seguenti file:
- risultato.s soluzione dell’esercizio MIPS
- risultato.java soluzione dell’esercizio JAVA
N.B. I due files VENGONO CONSIDERATI E CORRETTI SOLO SE contengono come prima
riga un commento con l'indicazione del COGNOME, NOME, PROFESSORE, NUMERO
POSTAZIONE di lavoro del candidato.
================================================================
OPERAZIONI PRELIMINARI ( da effettuarsi subito, prima di iniziare ! ! ! )
================================================================
1. Copiare il file mips_turno2_pari.s nel file risultato.s.
2. Copiare il file turno2_pari.java nel file risultato.java.
3. Inserire nella prima riga di ciascuno dei due file un commento con l'indicazione del
COGNOME, NOME, PROFESSORE, NUMERO POSTAZIONE di lavoro.
================================================================
Esercizio MIPS
================================================================
La funzione string_reverse contenuta nel file risultato.s rovescia la stringa il cui
indirizzo è passato come argomento.
Ad esempio la funzione muta la stringa "come quando fuori piove" nella stringa
"evoip irouf odnauq emoc" .
Come esercizio si chiede di implementare la funzione string_reverse.
N.B. Non modificare né i dati specificati nella direttiva .data né il codice del main, pena la
non presa in considerazione della soluzione fornita.
================================================================
Esercizio JAVA
================================================================
L’interfaccia WordSet definisce un insieme di parole (String) e la classe MyWordSet
implementa tale interfaccia. La classe WordSubsetIterator (contenuta nel
file
risultato.java ) realizza un Iterator sul sottoinsieme delle parole che iniziano con un
dato carattere.
La classe MyWordSet usa un array per rappresentare l’insieme delle parole (String); di
conseguenza le parole sono identificate nell’ WordSet da un indice i crescente a partire da
i=0.
Come esercizio si chiede di fornire l’implementazione della classe WordSubsetIterator.
N.B. Il metodo main della classe Main contiene il codice per la costruzione di un esempio di
insieme di parole e per la verifica del corretto funzionamento dell’implementazione
dell’iteratore. Tale codice è completo e non deve essere modificato in alcun modo, pena la non
presa in considerazione della soluzione fornita.
================================================================
N.B. Al termine della prova il candidato dovrà lasciare nella directory di lavoro i seguenti file:
- risultato.s soluzione dell’esercizio MIPS
- risultato.java soluzione dell’esercizio JAVA
N.B. I due files VENGONO CONSIDERATI E CORRETTI SOLO SE contengono come prima
riga un commento con l'indicazione del COGNOME, NOME, PROFESSORE, NUMERO
POSTAZIONE di lavoro del candidato.