Exercicis Estrutures de dades

(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. Exercicis
    1. Map
      1. RoadSigns
        1. Input
        2. Output
      2. EmployeeById
        1. Input
        2. Output
      3. SchoolDelegatVoting
        1. Input
      4. Output
      5. CarByPlateNumber
        1. Input
        2. Output
    2. Set
      1. RepeatedAnswer
        1. Input
        2. Output
      2. Bingo
        1. Input
      3. Output
    3. Queue
      1. HospitalQueue
        1. Input
        2. Output
      2. HospitalQueueSimple
      3. Input
      4. Output
    4. Generals
      1. CountWords
        1. Input
        2. Output

Exercicis

Map

Crea un package cat.itb.elteuusuari(*).dam.m03.uf5.exercices.tads.maps

RoadSigns

Volem tenir registrats els diferents cartells que té una carretera. La carretera fa més del 1000km, i volem registrar el metre al que hi ha al cartell.
Posteriorment volem poder obtenir el cartell que hi ha a un metre determinat.

L'usuari primer introduirà el número de cartells, i per cada cartell el metre i el text.
Després introduirà el nombre de consultes i, per cada consulta un metre. S'ha d'imprimir el cartell o no hi ha cartell.

Input
3
103 Lorem
164829 Ipsum
36837 Dolor
3
97362
164829
103
Output
no hi ha cartell
Ipsum
Lorem

EmployeeById

Una empresa vol tenir enregistrada la informació els seus empleats. De cada empleat en vol tenir el seu dni, nom, cognoms i adreça. Vol poder accedir ràpidament a les dades dels empleats segons el seu DNI.

Fes un programa que llegeixi un conjunt d'empleats per pantalla (primer introduirà la quantitat d'empleats).
Després imprimeix les dades del empleats pel DNI entrat.
Acaba el programa quan introdueixi END.

Input
2
12345678Z
Mar
Puig
Av. Pi 42
87654321T
Ot
Pi
C. Mar 33
12345678Z
87654321T
87654321T
END
Output
Mar Puig - 12345678Z, Av. Pi 42
Ot Pi - 87654321T, C. Mar 33
Ot Pi - 87654321T, C. Mar 33

SchoolDelegatVoting

S'ha de votar el delegat de la classe, i per fer-ho has decidit fer un petit programa que conti els vots i imprimeixi el resultat.

Cada usuari introduirà el nom de l'estudiant al que vota. Quan ja no hi hagi més vots escriurà END.
Imprimeix els total de vots.

Input
Mar
Mar
Ot
Iu
Ona
Iu
Mar
Mar
END

Output

Mar: 4
Ot: 1
Iu: 2
Ona: 1

CarByPlateNumber

Un concessionari de cotxes de segona ma vol tenir la informació dels cotxes que té en estoc. De cada cotxe en vol guardar la matrícula, el model i el color.

Vol poder accedir ràpidament a la informació del cotxe usant la matrícula del cotxe.

Input
3
2322UUY Opel Blanc
4738URP Seat Groc
3798YHT Opel Verd
4738URP
3798YHT
END
Output
4738URP Seat Groc
3798YHT Opel Verd

Set

Crea un package cat.itb.elteuusuari(*).dam.m03.uf5.exercices.tads.sets

RepeatedAnswer

Volem fer un petit joc tipus Scatergories o "Un, Dos tres", on els diferents jugadors han de dir respostes a una pregunta, però no es poden fer repeticions.
Fes un programa que llegeixi la resposta per l'input i printi "MEEEC!" quan hi hagi una repetició. El programa s'acaba quan l'usuari escriu END

Input
poma
pera
ciera
pera
cindria
meró
cirera
END
Output
MEEEC!
MEEEC!

Bingo

Després de molts diumenges acompanyant a la teva àvia al bingo de la residència decideixes fer un petit programa que t'ajudi. Al Bingo de la residència no es canta línia, només Bingo.

L'usuari primer itrodueix 10 números, que són els de la targeta.
Després introdueix els números que es van cantant.
Després que cada número cantat indica quants t'en queden.
Quan s'hagin cantat tots els números imprimeix BINGO i finialitza el programa

Input
1 2 3 4 5 6 7 8 9 10
1 3 50 66 2 4 5 6 84 98 7 8 9 10

Output

Em queden 9 números
Em queden 8 números
Em queden 8 números
Em queden 8 números
Em queden 7 números
Em queden 6 números
Em queden 5 números
Em queden 4 números
Em queden 4 números
Em queden 4 números
Em queden 3 números
Em queden 2 números
Em queden 1 números
BINGO

Queue

Crea un package cat.itb.elteuusuari(*).dam.m03.uf5.exercices.tads.queues

HospitalQueue

Un hospital ens ha demanat que els hi fem un programa per a gestionar la cua d'accés a urgències. Cada pacient tindrà un nom i una prioritat de tipus enter (un valor més alt indica més prioritat).

Si la línia comença amb un 1 és que ha entrat un pacient a l'hospital.
Si la línia comença amb un 0 és que s'atén a un pacient.
Si la línia comença amb un -1 és que s'acaba el programa
Imprimeix per pantalla les crides dels diferents pacients

Input
1 25 Mar
1 60 Ot
0
1 10 Ona
0
-1
Output
Ot passi a consulta
Mar passi a consulta

HospitalQueueSimple

Degut a un problema en l'assignació de prioritats l'hospital ens demana que modifiquem el programa per a què l'ordre sigui estricte per arribada, sense a tenir en compte la prioritat (crea una copia de l'exercici anterior).

Input

1 25 Mar
1 60 Ot
0
1 10 Ona
0
-1

Output

Mar passi a consulta
Ot passi a consulta

Generals

CountWords

Conta quantes paraules diferents hi ha en un text.
Quan s'introdueixi la línia END és que s'ha acabat l'input.

Input
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Lorem Maecenas Lorem eu faucibus velit.
sit amet consectetur
END
Output
12 paraules