Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

20302 Informtica (Programaci I)

Curs 2010 2011


Examen final. 28 de gener de 2011 Temps: 3 hores
Escala de paraules (Word Ladder) s un joc inventat per Lewis Carroll, l'autor de llibres com Alcia al Pas de les Meravelles o Alcia a travs de l'Espill. Les normes del joc sn: El jugador rep una paraula d'inici i una paraula objectiu. Per guanyar el joc, el jugador ha de convertir la paraula d'inici en la paraula objectiu, creant una paraula real a cada pas. Per fer aix, el jugador pot triar una de les segents opcions a cada pas: Afegir una lletra Treure una lletra Canviar una lletra Utilitzar les mateixes lletres en ordre diferent (anagrama) Per aix volem tenir un programa tal que per un determinat fitxer de text que contingui una seqncia de paraules miri si entre elles formen una escala de paraules. Aix s, que entre una paraula i la seva segent, s'hagi aplicat una de les regles anteriors, a ms de que no s'hagi repetit cap paraula i que totes les paraules siguin al diccionari. Pregunta 1 (2 punts). Definiu un classe Paraula com una taula de 20 carcters i un enter que indiqui la seva longitud i un mtode d'aquesta classe tal com: public boolean unaLletraMes(Paraula p) que ens digui per qualsevol objecte Paraula si ha estat format afegint una lletra a la paraula p que passa per parmetre. S'ha de tenir en compte que afegir una lletra no noms vol dir afegir-la al final, sin que tamb es pot fer a un altre lloc. Per exemple: banca branca la paraula branca s el resultat d'afegir una lletra a la paraula banca i la sortida del mtode hauria de ser vertader. Pregunta 2 (2 punts). Suposant un classe Paraula definida a la pregunta anterior, escriure un mtode d'aquesta classe tal com: public boolean ordreDif(Paraula p) que ens digui per qualsevol objecte Paraula si ha estat format canviant d'ordre totes o algunes lletres de la paraula p que passa per parmetre. Per exemple: tanc cant la paraula cant s el resultat de canviar d'ordre les lletres t i c de la paraula tanc i la sortida del mtode hauria de ser vertader. Pregunta 3 (2 punts). Suposant que tenim un fitxer de text anomenat

diccionariCatala.txt on hi tenim totes del paraules en catal una a cada lnia, per exemple de l'estil:
bac abac abacallanar-se abacial abaciologi abadal ... zumzejar zum-zum zwitteri

Escriure el programa que gestioni el diccionari i permeti saber si una determinada paraula pertany o no al diccionari. Podeu suposar que es t una classe Paraula amb un mtode com: public boolean esIgualA(Paraula p) que ens indica si una paraula s igual a una altra p que ens passa per parmetre. Raonau si es convenient o no definir una classe especfica per gestionar el diccionari, la relaci del diccionari amb les paraules i amb els fitxers de paraules. Raonau tamb com afectaria a tot el problema que ens ocupa si volgussim fer el mateix en angls. Pregunta 4 (1 punt). A tots els mtodes esmentats a les preguntes anteriors passam una paraula per parmetre. No s el cas, per, qu passaria si dins algun d'ells canvissim el contingut de la paraula? Com afectaria aix als programes que han invocat aquests mtodes. Relaciona la teva resposta amb els conceptes de variable local i d'atribut de classe. Pregunta 5 (3 punts). Escriure el programa que donat un fitxer de text amb una llista de paraules (per exemple una a cada lnia) ens indica si la llista s una escala de paraules. Aix vol dir que no hi ha cap paraula repetida, totes les paraules pertanyen al diccionari i cada paraula excepte la primera est formada de l'anterior aplicant alguna de les regles del joc. En cas contrari gestionar les excepcions pertinents. Noms s'ha d'escriure el programa principal que treballa amb les paraules, no tots els subprogrames que intervenen, com els descrits a les preguntes anteriors. Exemples de funcionament: Fitxer:
mala mal tal talc tanc cant

Fitxer:
mala mal txl

Sortida:
Paraula 1: mala Paraula 2: mal una lletra menys Paraula 3: txl no s al diccionari 1: 2: 3: 4: 5: 6: mala mal una lletra menys tal una lletra diferent talc una lletra ms tanc una lletra diferent cant ordre diferent No s una escala, falla a la paraula: 3

Sortida:
Paraula Paraula Paraula Paraula Paraula Paraula

Fitxer:
mala mallorqu

s una escala de 6 paraules

Sortida:
Paraula 1: mala Paraula 2: mallorqu no cumpleix cap de les regles per ser una escala No s una escala, falla a la paraula: 2

You might also like