Fondamenti di Informatica - a.a. 2002 - 2003 Compito del 17.12.2002 Coppie di Stringhe e Traduttori =============================== La seguente classe Java definisce un contenitore di coppie di stringhe nel quale e' possibile inserire una coppia oppure, data la stringa parola1 cercare l'altra. public class TR { // TR.java, traduttore che memorizza coppie di stringhe // parte privata public void aggiungi (String parola1, String parola2){...} public String traduci (String parola1) {...} public void stampa () {...} } Il metodo "aggiungi (parola1, parola2)" inserisce la coppia di stringhe (parola1, parola2) nel contenitore; il metodo "traduci (parola1)" restituisce una stringa s tale che la coppia (parola1, s) e' nel contenitore o null se tale parola1 non e' contenuta, il metodo "stampa ()" stampa su standard output le coppie memorizzate nel contenitore. Si realizzi la classe TR. Si usi la classe TR per memorizzare un traduttore da una lingua a un'altra: ad es. in ogni coppia la prima stringa e' una parola italiana mentre la seconda e' la sua traduzione in inglese. Scrivere una classe Main che crei un esemplare di TR (traduttore), e che 1) legga da un file un elenco di coppie di parole e le memorizzi nel traduttore. Nel file ogni riga sia formata da una coppia di parole (la prima in italiano, l'altra in inglese) separate da un spazio. Il nome del file sia passato nella riga di comando. 2) Si realizzi, successivamente il seguente algoritmo di interrogazione e aggiornamento del traduttore: - leggere una parola italiana dallo standard input; - se la parola e' presente nel traduttore, stampare su standard output la sua traduzione, altrimenti stampare la stringa "*SCONOSCIUTA*", richiedere la corrispondente traduzione e memorizzare la nuova coppia nel traduttore. La traduzione deve essere ripetuta finche' non viene passata da standard input una stringa nulla (null) o vuota (""). 3) Stampare su standard output il contenuto del traduttore. La classe TR deve essere ottimizzata per l'operazione di traduzione e non deve contenere altri metodi pubblici oltre a quelli definiti sopra. Il candidato ha a disposizione il file provaIn.txt come esempio di dati di ingresso al programma. Al termine della prova il candidato dovra' lasciare nella directory di lavoro i seguenti file: - TR.java classe che realizza l'interfaccia TR - Main.java il programma di prova ed eventuali altre classi ritenute utili per la soluzione. I file TR.java e Main.java dovranno contenere come prima riga un commento con l'indicazione del nome e cognome del candidato, numero di matricola, data della prova d'esame e numero della postazione di lavoro. Nella realizzazione delle classi TR e Main è consentito utilizzare solo le seguenti classi della libreria Java: - tutte le classi del pacchetto java.lang; - tutte le classi del pacchetto java.io; - la classe java.util.StringTokenizer.