Dubbio Risultati Test Programma 3

G
Giordano_Dionisi (3100 points)
12 38 58
asked Oct 26, 2018 in Es3 by Giordano_Dionisi (3,100 points)
closed Nov 7, 2018 by andrea.sterbini

Salve, volevo chiedere effettivamente come deve essere modificata la lista di input. Infatti io ho provato varie metodologie, ovvero ritorno la lista (ma mi dice che la lista che dovrebbe venire è [topo, gatto] e per lui io ritorno ([topo, gatto], gatto)) mentre se non la ritorno mi dice che la lista non è stata modificata, nonostante io utilizza i metodi corrispettivi delle liste. Ho fatto tutti gli esempi dei test sul mio programma e funzionano tutti, ma eseguendo normalmente i test mi dà questi errori qui sulla lista, quindi sicuramente il programma è giusto ma magari devo restituire o eseguire delle modifiche su ciò che passo alla funzione di testing.. Se mi poteste dire effettivamente cosa devo ripassare alla funzione di testing (io ritorno a fine del mio programma, una tupla che contiene la lista degli elementi che compaiono nel testo e la tupla contiene poi una stringa che equivale all'elemento che compare più volte nel testo e poi ritorno la lista o meno, ho fatto entrambe le prove). Quindi vi sarei immensamente grato se sapeste dirmi quale è il problema perchè è una mattinata che ci sto sbattendo la testa, dato che gli esempi e tutti i test fatti da me funzionano perfettamentecrying

239 views
closed with note: deadline passed

3 Answers

andrea.sterbini (172780 points)
513 935 1789
answered Oct 26, 2018 by andrea.sterbini (172,780 points)
I test da te fatti sono i nostri test o dei test tuoi?

Perchè non consegni così vedo i risultati dei test?
c
cristian (2770 points)
0 17 29
answered Oct 26, 2018 by cristian (2,770 points)
La funzione es3 deve avere un solo return:  una nuova lista delle parole che compongono il testo e la parola che ricorre più spesso; Ti viene anche chiesto di modificare la lista che viene passata come parametro togliendo le parole usate nel testo. Quindi devi fare due operazioni modficare lista iniziale e ritornare nuovaLista(con le parole che compongono il testo) , parolaRiccorente. Spero di essermi spiegato bene e di aver risolto il tuo dubbio
Auron (15880 points)
32 126 194
answered Oct 26, 2018 by Auron (15,880 points)

"Definire una funzione es3(lista, testo) che prende:
- una lista di parole (nessuna delle quali e' prefisso dell'altra)
- una stringa di testo. Il testo e' stato ottenuto concatenando alcune delle parole presenti nella lista 'lista'
  (una stessa parola puo' comparire piu' volte nella stringa di testo).
- restituisce una coppia (tupla) formata da:
        - la lista delle parole che, concatenate producono il testo
        - la parola che vi occorre piu' spesso;

[[...]]

Ad esempio: se lista=['gatto','cane','topo']
  - con  testo='topogattotopotopogattogatto' la risposta e' la coppia (['topo','gatto'],'gatto')
    e lista diviene ['cane']"

Come ben specificato nel testo, il return deve interessare SOLTANTO LA TUPLA.
La lista deve venir modificata come richiesto dalla traccia, ma non ha a che fare con il return... Il controllo sulla sua corretta modifica viene effettuato dal grader/tester in "background" (ma comunque viene effettuato).
Quindi, per rispondere alla tua domanda, il risultato che dovrai ritornare è nella forma ([x1, x2, ..., xn], xi), non un elemento di più.
Spero di averti aiutato :D
In caso di problemi assicurati che a ritornare il risultato finale sia la funzione "madre", quella da cui parti, e non una funzione definita da te per ridurre l'intricatezza.
Inoltre quando testi il programma rimuovi tutti gli input che magari hai inserito per fare delle prove rapide, o elementi simili che minano la correttezza dei test :)