Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

HW2 es.2 problema test 4 e 5

Jury Francia (7520 points)
25 76 100
in Es2 by (7.5k points)
closed by
Ciao ragazzi, purtroppo questo esercizio 2 non ne vuole sapere di passare i test. Sono riuscito a risolvere qualche problema e finalmente almeno 3 test li passa. L'ordinamento è corretto dato che era uno dei problemi che avevo, in pratica trovo tutti i sub compiti con il ciclo for, il programma li trova andando a cercare di volta in volta se il sub compito trovato ne ha altri, quindi al termine del ciclo uso [::-1] per rigirare la lista così da avere in ordine i compiti da svolgere. Cambiando questa cosa ho risolto i primi tre test infatti l'ordinamento è corretto.

Invece mi ritrovo il problema opposto nei test 4 e 5. Vi scrivo i risultati di una sola chiave, la mia lista è esatta ma al contrario

mio risultato:

{"1582": ["28374", "35331", "12318", "18794", "32866", "3879", "2430", "8066", "19660"]}

risultato grader:

{"1582": ["19660", "8066", "2430", "3879", "32866", "18794", "12318", "35331", "28374"]}

EDIT:

Ho notato che se non rigiro la lista con [::-1] e controllando i risultati dei file test e file testRisultato, i miei file test del 1,2,3 esercizio giustamente sono al contrario e non passano i test, e neanche i test 4 e 5. Ma se rigiro la lista i valori nei miei file 1,2,3 cambia e infatti passa i test, mentre quelli dei file 4 e 5 non cambiano..

Ok ho passato i parametri del grader 4 direttamente e il problema non è che non li ordina, ma che non ci arriva alla parte dell'ordinamento perché va in errore prima. Ecco l'errore che mi riporta:

Traceback (most recent call last):

  File "program02.py", line 141, in <module>

    print(pianifica('file02_50000_100.txt', set([str(i) for i in range(1000,2001)]),'test4.json'))

  File "program02.py", line 81, in pianifica

    subCompito=trovaSubCompiti(dizionarioCompleto, valore)

  File "program02.py", line 133, in trovaSubCompiti

    lista+=dizionarioCompleto[numero]

KeyError: '2240167422989517574790343682117243861'

EDIT!!:

Ragazzi ho sistemato da solo, era un piccolo errore, ora funziona tutto!
386 views
closed with the note: Risolto

2 Answers

G
GiuseppeLaRocca (1170 points)
4 15 28
by (1.2k points)
Ciao, ti consiglio di utilizzare il metodo 'insert' delle lista, aggiungendo così all'indice 0 i compiti da svolgere preliminarmente fino ad arrivare a quello che non dipende da nessun altro compito (che si troverà ovviamente in posizione 0).
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)
Ciao!
Da quello che leggo mi viene da pensare che tale comportamento sia dovuto a due azioni distinte. Mi spiego meglio, è possibile che tu assegni i valori alla lista in base a condizioni? Se è così è molto probabile che in determinati casi gli assegni dei valori (corretti) con un ordine, ad esempio col metodo list.append() e in altri con list.insert(). Tale comportamento giustificherebbe questo ordine "invertito" di elementi.
Fammi sapere
Leonardo Emili
Jury Francia (7520 points)
25 76 100
by (7.5k points)
Ciao guarda ho editato la domanda, purtroppo il problema non è più l'ordinamento
Jury Francia (7520 points)
25 76 100
by (7.5k points)
Ciao guarda ho editato la domanda, purtroppo il problema non è più l'ordinamento