Italian subtitles

← 04-05 Soluzione ad Aggiungi all'Indice

dummy description

Get Embed Code
5 Languages

Showing Revision 2 created 08/01/2014 by Fran Ontanaya.

  1. Ci sono diversi modi con i quali possiamo definire "addtoindex"
  2. eccone uno che funziona.
  3. Andremo a creare una procedura, che chiameremo "addtoindex"--
  4. che riceve 3 parametri-- l'indice, la parola chiave, e l'URL--
  5. Quello che dobbiamo fare è aggiungere ad "index" è per prima cosa vedere se la parola chiave è già inserita
  6. Per fare questo dobbiamo cercare su tutte le voci di "index"
  7. Normalmente si fa ciò usando un ciclo "for".
  8. Definiremo la procedura "addtoindex"--
  9. riceve tre parametri, "index", "keyword", "url"--
  10. per aiutarci a tenere traccia di quello che stiamo facendo,
  11. disegnerò un promemoria di quello che è la struttura dati di "index"
  12. Ricordate che si tratta di una lista di voci
  13. e ciascuna voce è essa stessa una lista
  14. la cui prima parte è una parola chiave e la seconda parte è una lista di URL
  15. Ecco la nostra struttura dati
  16. che ci aiuterà a capire cosa fare per definire "addtoindex"
  17. La prima cosa che dobbiamo fare
  18. è verificare se la parola chiave esiste già nell'indice
  19. Se la possiamo trovare, bene, allora vogliamo modificare quella voce, piuttosto che crearne una nuova.
  20. Il modo naturale per farlo è usare un ciclo "for"
  21. Itereremo attraverso gli elementi di "index"
  22. Chiameremo ciascuno elemento "entry" per usarlo nel blocco
  23. Questo è quello che sarà "entry"
  24. La prima volta che attraversiamo il ciclo, il valore di "entry" sarà un riferimento alla lista qui--
  25. che è il primo elemento della lista in "index"
  26. Ora dobbiamo trovare la parola chiave
  27. La parola chiave è proprio qui--è l'elemento a posizione zero di "entry"
  28. Verificheremo se il valore a posizione zero su "entry"
  29. è identico a quello della parola chiave ricevuta
  30. useremo l'operatore di comparazione == per verifcare ciò--
  31. Se è uguale, allora abbiamo una corrispondenza--
  32. il che vuole dire che vogliamo aggiungere l'URL alla lista di URL associati con quella voce
  33. Per ottenere quella lista di URL
  34. vogliamo trovare "entry[1]"--che è il valore a posizione 1 di "entry"
  35. e vogliamo accodare quel nuovo URL
  36. Qui abbiamo trovato una voce che corrisponde alla parola chiave che stavamo cercando--
  37. il che significa che la parola chiave è già nell'indice
  38. abbiamo aggiunto il nuovo URL agli URL associati a quella parola chiave
  39. abbiamo finito, non abbiamo altro da fare.
  40. Quello di cui vogliamo essere sicuri, è che non continuiamo e non facciamo altro.
  41. Un approccio sarebbe usare "break"--che terminerebbe il ciclo--
  42. quello che invece vogliamo fare è terminare l'intera procedura.
  43. Se interrompiamo con "break", avremmo ancora il problema di come affrontare il caso
  44. nel quale la parola chiave non è stata trovata.
  45. Quindi semplicemente useremo "return"--
  46. abbiamo finito con "addtoindex", abbiamo aggiunto l'URL al posto giusto.
  47. Ora dobbiamo pensare a cosa fare nel caso dove
  48. la parola chiave non esiste già nell'indice
  49. Se questo è il caso, allora ci troveremo alla fine del ciclo senza avere mai trovato quella voce
  50. Se arriviamo alla fine del ciclo
  51. significa che non abbiamo trovato alcuna voce nell'indice che corrisponde alla parola chiave
  52. quello che vogliamo fare è aggiungere una nuova voce--
  53. e detta nuova voce avrà, come suo valore,
  54. una lista che contiene 2 elementi, la parola chiave--
  55. e come secondo elemento
  56. avrà una lista che contiene l'URL che abbiamo trovato che ha quella parola chiave
  57. Fino ad ora ne abbiamo uno--l'URL ricevuto come parametro di "addtoindex"
  58. Come facciamo?
  59. Per aggiungere un nuovo elemento ad "addtoindex" utilizziamo "append"
  60. Ci serve qualcosa da passare ad "append"-- vale a dire la struttura che vogliamo aggiungere
  61. Tutto questo è quello che vogliamo aggiungere--
  62. quindi, ecco una lista che contiene il valore di "keyword" come primo elemento
  63. e come secondo, è una lista che contiene un singolo URL
  64. Ecco quello che vogliamo aggiungere
  65. Nel caso in cui non abbiamo trovato la parola chiave nell'indice