Candidats

Guardem en una llista de tuples els vots rebuts pels candidats a
l’ajuntament d’un municipi. El primer component de cada tupla és un
string que conté el nom i cognoms del candidat i el segon és el nombre
de vots. Per exemple:

    [("Joan Pere Jorbina Palau", 570), ("Niceto Brunildo Fornells", 679),
     ("Mariona Puig Peix", 701), ("Adriana de Tor Quemada", 451)]

Es demanen els codis de diverses funcions. Seguiu el format dels
exemples que es mostren a sota. Suposseu que a l’estructura sempre hi ha
almenys un candidat.

1.  Feu una funció @votsMinim :: [([Char], Int)] -> Int -> Bool@ en que,
    donada una llista de tuples com la descrita i donat un enter,
    retorni True si hi ha algun candidat que no hagi assolit un nombre
    de vots superior a l’enter donat i False en cas contrari.

2.  Feu una funció @candidatMesVotat :: [([Char], Int)] -> [Char]@ en
    que, donada una llista de tuples com la descrita, retorni el nom i
    cognoms del candidat mes votat. Per resoldre aquest problema
    utilitzeu les funcions comparing i maximumBy incloses en els mòduls
    Data.Ord i Data.List respectivament.

3.  Una llista de tuples d’ingressos representa els ingressos anuals de
    les persones del municipi. La primera component de la tupla és un
    string que conté el nom i cognoms de la persona i la segona són seus
    ingressos anuals expressats en euros. Per exemple:

        [("Mariona Puig Peix", 15456), ("Arnau Osorio Lucas", 27654), 
         ("Arnau Brigat Pelfred", 18654), ("Niceto Brunildo Fornells", 14567)]

    Feu una funció @votsIngressos :: [([Char], Int)] -> [([Char], Int)]
    -> [[Char]]@ en que, donades una llista de tuples de vots i una
    d’ingressos, retorni la llista dels candidats del que es desconeix
    els ingressos, és a dir, els que són a l’estructura de vots però no
    a la d’ingressos.

4.  Feu una funció @rics :: [([Char], Int)] -> [([Char], Int)] ->
    [[Char]]@ en que, donades una llista de tuples de vots i una
    d’ingressos, generi i retorni una llista amb els noms de les tres
    persones més riques del municipi. A més, per cadascuna d’aquestes
    persones que sigui un candidat al costat del nom hi ha d’haver un
    asterisc (‘*’). La llista ha d’estar ordenada de més a menys
    ingressos. Per resoldre aquest problema utilitzeu les funcions
    comparing i sortBy incloses en els mòduls Data.Ord i Data.List
    respectivament.

Les dues primeres funcions valen 20 punts i les altres dues 30.

Observació

Aquest problema és el problema "Candidats" creat per professors del
departament de Ciències de la Computació amb docència a l’ETSEIB. Podeu
consultar l’original a:

http://gie.cs.upc.edu/fi/temes/diccionaris/Candidats.html

Informació del problema

Autoria: Gerard Escudero i professors de l&#x27;ETSEIB del departament
de CS

Generació: 2026-01-25T11:59:09.862Z

© Jutge.org, 2006–2026.
https://jutge.org
