Questionario |
Questionario a risposte multiple: tempo 55 min | |
Auto-valutazione |
50 domande in 55 minuti |
Programmazione | Simulazione della prova di programmazione: tempo a disposizione 2 ore | La mia soluzione |
testo della prova | List.java ListIterator.java elementi.java | LL.java (nuova versione corretta!) ProvaLL.java |
Parte
Immazione |
Tipi di dati astratti e Strutture dati: Dizionari in Java | Una soluzione possibile |
Programmare tabelle | Si vuole memorizzare
un testo di parole (ogni parola caratterizzata da una sequenza di
caratteri
alfanumerici separati fra loro da uno o piu' spazi) assieme a
un'informazione accessoria definita
dalla parola chiave CAPITOLO racchiusa tra parentesi angolari
(<>). Si assume che le
parentesi angolari siano presenti solo nella parola chiave. La parola chiave <CAPITOLO> suddivide il testo in ingresso in capitoli la cui numerazione parte da 1. Per tale gestione si definisca la classe Testo la cui interfaccia pubblica e' riportata in Testo.html. Per verificare il funzionamento del programma si utilizzi il seguente metodo main(): public static void main(String args[]) { String libro = "<CAPITOLO> testo del primo capitolo " + "<CAPITOLO> testo del secondo capitolo " + "<CAPITOLO> testo del terzo capitolo"; Testo mioTesto = new Testo(); mioTesto.inserisciTesto(libro); for (int i = 0; i < mioTesto.capitoli(); i++) { System.out.println("Capitolo " + (i + 1)); System.out.println(mioTesto.leggiCapitolo(i + 1)); } } uso: $ java Testo Leggere prima di iniziare la realizzazione. |
Testo.java |
Programmare dizionari | Si vuole gestire un
database di studenti. Internamente uno studente e' definito da un
esemplare di classe Studente contenente le seguenti informazioni: - nome dello Studente - lista di esami sostenuti (ogni esame identificato da un nome) e corrispondente voto. L'interfaccia pubblica della classe Studente è definita nel file Studente.html. Piu' esemplari di classe studente saranno contenute nella classe Scuola la cui interfaccia pubblica è definita nel file Scuola.html. Viene richiesto di realizzare le classi Studente e Scuola come descritto. Il seguente metodo main puo' essere usato come test finale: public class Prova { public static void main(String args[]) { Scuola scuola = new Scuola(); scuola.aggiungiStudente("Rossi"); scuola.aggiungiStudente("Bianchi"); scuola.aggiungiStudente("Verdi"); scuola.aggiornaCurriculum("Rossi", "Fondamenti di Informatica 1", 22); scuola.aggiornaCurriculum("Rossi", "Matematica A", 19); scuola.aggiornaCurriculum("Rossi", "Fisica 1", 24); scuola.aggiornaCurriculum("Bianchi", "Fondamenti di Informatica 1", 18); scuola.aggiornaCurriculum("Bianchi", "Matematica A", 19); scuola.aggiornaCurriculum("Bianchi", "Fisica 1", 20); scuola.aggiornaCurriculum("Verdi", "Fondamenti di Informatica 1", 30); scuola.aggiornaCurriculum("Verdi", "Matematica A", 30); scuola.aggiornaCurriculum("Verdi", "Fisica 1", 27); scuola.stampa(); } } Versione originale del testo del compito. Si realizzi il dizionario in tre modi diversi: - con array non ordinato - con array ordinato - con tabella hash Per ciascuno dei metodi si indichi la complessita' temporale. Programmare l'ordinamento nella classe Scuola usando, in alternativa, i tre algoritmi di ordinamento studiati: - ordinamento per selezione - ordinamento per inserimento - ordinamento per fusione Leggere prima di iniziare la realizzazione. |
Studente.java ScuolaArrayNonOrdinato.java ScuolaArrayOrdinato.java ScuolaHashTable.java OrdinatorePerFusione OrdinatorePerSelezione OrdinatorePerInserimento |