Title: Què més podem fer amb les llistes?
Course: Moodle Scratch 3: Dissenyem el nostre ScapeScratch (enigmes i pistes). > Section: Activitat 8: Treballem (encara més) amb les llistes

A l'activitat 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?

 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)

  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.

 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.

 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.

  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.

  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.

 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)

  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.

 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…”