Informatica2021-L27: File (seconda parte)

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 ธ.ค. 2024

ความคิดเห็น • 9

  • @alessandroottone4365
    @alessandroottone4365 ปีที่แล้ว

    Salve Prof stavo seguendo la lezione sulle parole uniche ma non sono riuscito a capire la seguente riga lunghezze = [0]*(max_lunghezza+1) cosa farebbe in concreto ?max_lunghezza dovrebbe essere la parola piu' lunga del testo se non sbaglio, pero' non riesco ad capire il seguito di questa riga.
    Grazie prof per il suo tempo

    • @fulcorno
      @fulcorno  ปีที่แล้ว

      Questa istruzione crea una nuova lista con tanti valori pari a zero: [0, 0, 0, 0, 0, ..., 0], usando la scorciatoia [lista]*ripetizioni.
      Ogni posizione in quella lista rappresenta una lunghezza, quindi lunghezze[4] dovrà contare quante parole di 4 lettere sono state incontrate.
      Se la parola più lunga avesse 10 lettere, mi serve quindi una lista di 11 elementi (perché gli indici iniziano da zero), per questo sommo +1 per avere un numero di elementi sufficienti a contare le frequenze di tutte le lunghezze che incontrerò.
      Spero di averti chiarito il ragionamento che ho fatto nel risolvere questo punto.

    • @alessandroottone4365
      @alessandroottone4365 ปีที่แล้ว

      Grazie Prof ora è chiaro buona giornata

  • @vagnonivagnoni
    @vagnonivagnoni 2 ปีที่แล้ว

    Secondo me,😁😁😁😁PROFESSORE UNA SOLUZIONE PER I CONTATORI, DOVREBBE ESSERE L'UTILIZZO DELLA STRUTTURA DATI Set(), ovvero convertire array lunghezze in un insieme di elementi non ripetibili,e poi eseguire un ciclo di conteggio.

    • @fulcorno
      @fulcorno  2 ปีที่แล้ว

      non mi è del tutto chiaro il suggerimento. Se creassi un set di elementi, per definizione non ci sarebbero duplicati... ed allora come fai a fare il "conteggio" alla fine? devi ri-leggere il file da capo?
      Suggerirei di provare ad abbozzare lo pseudo-codice su replit.com e condividerlo.

    • @vagnonivagnoni
      @vagnonivagnoni 2 ปีที่แล้ว

      @@fulcorno il Set farebbe emergere le uniche lunghezze parola esistenti nell'Array senza supplicati.
      I contatori dopo un successivo ciclo di conta saranno es,parola di lunghezza 1=12, 2=6. Non ci saranno due o più contatori per il 2. Il Set serve a filtrare in anticipo le lunghezze corrispondenti semplificando il codice, ovviamente si dovrà creare un secondo Array, HA RAGIONE. grazie per la risposta.

    • @vagnonivagnoni
      @vagnonivagnoni 2 ปีที่แล้ว

      def testSet(arr):
      """Elimina lunghezza parole ripetute"""
      setArr = set(arr) #elimina duplicati
      nuovoArr = list(setArr) #nuovo array
      print(nuovoArr)
      #funzione chiama lunghezza parole testo
      testSet([len("pizza"), len("pizza"), len("casa"), len("macchina")])

    • @fulcorno
      @fulcorno  2 ปีที่แล้ว

      il tuo esempio fa una cosa diversa. Tu calcoli quali sono le lunghezze presenti, in questo caso stamperesti 5, 4, 8. Però ti sei perso l'informazion eche la parola lunga 5 compare 2 volte (che era ciò che volevamo sapere: qual è la frequenza delle varie lunghezze).

    • @vagnonivagnoni
      @vagnonivagnoni 2 ปีที่แล้ว

      @@fulcorno Ha ragione dovevo duplicare Array, e calcolare la frequenza sulla copia, dopo l'istruzione set(). Al fine di evitare 2 conteggi sulla lunghezza 5, dobbiamo essere sicuri che le lunghezze siano univoche.