Sessió 8. Treballem (encara més) amb les llistes

Pla de treball

  • Canvis d’elements a les llistes: afegir, esborrar.
  • Cerca d’element dins d’una llista.
  • Ordenació dels elements d’una llista.

Què més podem fer amb les llistes?

A la sessió anterior hem creat llistes de forma manual i automàtica i també hem “llegit” els continguts que guarda una llista. Però hi ha d’altres accions que es poden fer amb els elements que composen una llista.

Per exemple, com ho fem si després de creada una llista ens donem compte que l’ordre no és correcte? o si ens hem deixat algun element que cal afegir en una posició determinada?


Pas a pas Fem-ho pas a pas

  • Obrim de nou el projecte m3repte71 on tenim creades tres llistes: una que conté paraules, una altra que conté números i una tercera que conté missatges creats amb tres paraules triades a l’atzar de la primera llista.
  • Fem una còpia del projecte m3repte71 amb el nom de m3repte81.
  • Anem a afegir paraules a la primera llista, però no al final, sinó a alguna zona intermèdia. Per tant, les noves paraules tindran un índex que en aquests moments està fet servir per alguna altra paraula.
  • Per afegir una paraula en un lloc concret podem fer servir el bloc
  • La primera finestra indica quin contingut volem afegir i la segona la posició que ha de tenir el contingut afegit a la llista. El contingut pot ser introduït de forma manual directament o bé mitjançant una variable. La posició també es pot introduir de forma directa o bé mitjançant una variable o de forma aleatòria.
  • De la mateixa forma que ens podem haver deixat un element de la llista i l’hem d’afegir, també ens pot passar que volem esborrar un dels elements de la llista.
  • Per esborrar un element de la llista farem servir el bloc . En aquest cas hem d’indicar la posició a la llista de l’element que volem esborrar, de forma directa, mitjançant una variable o de forma aleatòria.
  • Una altra possibilitat és canviar algun o alguns elements de la llista.
  • Per fer un canvi, fem servir el bloc . En aquest cas hem d’indicar la posició de l’element que volem canviar (de forma directa, amb una variable o de forma aleatòria) i quin ha de ser el nou contingut (de forma directa o mitjançant una variable)

Icona repte Repte 1 A la llista de paraules del vostre projecte m3repte81 en teniu introduïdes 10. Genereu un programa que us demani 10 paraules i que es vagin afegint de forma automàtica a la llista en posicions a l’atzar. El resultat final ha de ser una llista de 20 paraules.

Icona pista Pista: com que es tracta de repetir 10 vegades la introducció d’una paraula, la pregunta ha d’estar dins d’un bucle. Per afegir la paraula a la llista en una posició a l’atzar, heu de tenir en compte que comenceu amb 10 objectes (per tant 10 índex) i que la posició a l’atzar només pot ser triada entre 1 i 11 la primera vegada, entre 1 i 12 la segona vegada,… i així successivament. És a dir, no podeu triar des del principi una posició a l’atzar entre 1 i 20 perquè les posicions van augmentant a mesura que afegiu paraules.


Pas a pas Fem-ho pas a pas

  • A una llista també és possible buscar un element en concret.
  • Per fer aquesta cerca, utilitzarem el bloc
  • Una altra informació que podem obtenir de les llistes és la seva longitud, és a dir, de quants elements està formada.
  • El bloc per conèixer aquesta llargada és
  • Tot i que la llargada d’una llista es pot veure quan la llista es visualitza a la pantalla, aquest bloc ens permet repetir operacions en bucles tantes vegades com sigui la llargada de la llista.

Icona repte Repte 2 Continuem amb el vostre projecte m3repte81 i la llista de 20 paraules que ara teniu creada. Afegiu un programa que ens pregunti una paraula i ens digui si està o no a la llista.


Icona repte Repte 3 Seguim treballant en el vostre projecte m3repte81 i la llista de 20 paraules que ara teniu creada. Ara el que volem és que la llista de paraules es barregi de forma aleatòria, és a dir, com si fossin una baralla de cartes, de forma que l’ordre de les paraules canvii.

Icona pista Pista: el procés de canvi d’una paraula per una altra segueix els passos següents:

  • Guardem un element de la llista (atzar) a una variable (x)
  • Agafem un altre element de la llista (N) i el col·loquem en el lloc de l’altre element (atzar)
  • Col·loquem la variable (x) en el lloc del segon element (N)


Icona repte Repte 4 Modifiqueu aquest programa de barrejar paraules per tal que en lloc de canviar l’ordre de les paraules de forma aleatòria el què aconseguim sigui que les paraules quedin ordenades alfabèticament.

Icona pista Pista: les cadenes, tal i com vam veure a la sessió 5, també es poden comparar entre elles. Per ordenar alfabèticament dues cadenes podem fer servir aquest bloc, que compara un element de la llista amb l’anterior. El símbol “<” entre els dos elements vol dir: “si un element és alfabèticament anterior (més petit) que l’element del davant…”


Icona projecte El nostre projecte creix…

Ara ja teniu tots els elements necessaris per controlar les pistes i els missatges que hauran de resoldre els jugadors de la vostra escape room. Reviseu la graella creada a la sessió anterior i feu els canvis que siguin necessaris.

Res us pot ja aturar per llançar-vos de cap a programar el vostre repte final. Ànims i a fer patir als jugadors !


Icona glosari Com que som programadors i programadores parlem de…
En aquesta sessió no afegirem cap terme nou, heu avançat tant que ja esteu convertint-vos en programadors i programadores de primera. Què us sembla si repasseu el que heu après fins ara?