Risultati Grader diversi da Risultati ottenuti manualmente

G
GiorgioAgosta (2880 points)
5 24 42
asked Oct 22, 2017 in Es1 by GiorgioAgosta (2,880 points)
closed Oct 22, 2017 by GiorgioAgosta
Buongiorno, sta mattina ho finito l es 1 dopo i nuovi problemi sorti con l arrivo dei nuovi grader.
Il problema che ho riscontrato è il seguente :
Avviando il grader, il programma non passa nemmeno un test perché la variabile ls non risulta modificata ; se invece i valori li inserisco io manualmente, sia i valori primi che la lista ls risultano corretti.
Sapete dirmi qualcosa?
263 views
closed with note: Problema risolto

3 Answers

Best answer
LeonardoEmili (35740 points)
11 65 155
answered Oct 22, 2017 by LeonardoEmili (35,740 points)
selected Dec 4, 2017 by GiorgioAgosta

Ciao Giorgio!

Da come hai descritto il problema sembrerebbe che il programma prima (ovvero con il vecchio grader) andava correttamente a modificare la lista, oa invece con il nuovo Grader questo non lo fa più, è corretto? Posso dirti che in realtà se vai a vedere il codice dei nuovi Grader ti accorgerai che non sono altro, come ci aveva avvertito il professore, ti una versione più "stressante" dei nostri programmi al fine di testarne debolezze ed efficienze. Questo perché sarai d'accordo che in alcuni esercizi le differenze in tempi di esecuzione limano i centesimi di millesimi!

Pertanto il mio consiglio è di aggiornare sia i Grader che le testlib, puoi trovare i link cliccando sul box rosso a destra.

Altrimenti ciò che è plausibile credere è che senza volerlo tu abbia modificato una porzione di codice andando a non eseguire il codice che modifica la lista, o ancora più plausibile che tale condizione non sia verificata per qualche motivo legato al test.

Spero sinceramente che tu risolva il tuo problema, se riuscirai a fornirci maggiori info saremo felici di aiutarti!

Buon code !!

.

Leonardo Emili

francesco.dev (33560 points)
14 51 129
commented Oct 22, 2017 by francesco.dev (33,560 points)
Quoto anche te! :)
Neo (6720 points)
6 27 37
answered Oct 22, 2017 by Neo (6,720 points)

Ciao!

Nell'esercizio n.1 lo "pseudo-codice" che ci viene fornito per stendere il codice ci dice esattamente di: "Scrivere una funzione modi(ls,k) che, presa una lista ls di interi ed un intero non negativo k:
    1) cancella dalla lista ls gli interi che non hanno esattamente k divisori propri
    2) restituisce una seconda lista che contiene i soli numeri primi di ls.

Penso che l'errore sia nel primo punto in quanto come hai già detto tu, non vai a modificare la variabile "ls" ma ne crei una nuova! Prova semplicemente a eliminare gli elementi da "ls"! Forse nel grader il professore ha messo un controllo sulla variabile per farci utilizzare ad esempio alcuni metodi(del, remove, sort, ecc..) relativi a stringhe, liste e tutto il resto :D

francesco.dev (33560 points)
14 51 129
commented Oct 22, 2017 by francesco.dev (33,560 points)
Sicuro che modifichi realmente la lista iniziale e che non sia una copia? Dimmi di come la passi tramite parametro e che cosa fai su tale lista per eliminare gli elementi
G
GiorgioAgosta (2880 points)
5 24 42
commented Oct 22, 2017 by GiorgioAgosta (2,880 points)
In pratica le operazioni che faccio sulla lista ls sono queste :
All inizio la passo come parametro ad altre procedure, senza modificarne il contenuto.
Il risultato finale di queste procedure, ovvero i numeri che hanno k divisori, lo memorizzo in una variabile secondaria.
Fatto ciò svuoto ls con clear() e poi con la funzione copy(), copio il contenuto della lista secondaria in ls
francesco.dev (33560 points)
14 51 129
commented Oct 22, 2017 by francesco.dev (33,560 points)
Metti qualche print di verifica, mettine una dentro la funzione d'interesse ed altre al di fuori delle funzioni. Metti una print per verificare se una lista (che crei manualmente) si modifica quando torni nella parte principale, quindi fuori dal main.
Ti basterà inizalizzare e valorizzare una lista, es.: lista = [20, 30, 55].
Ora richiami la funzione modi passando tale lista e un numero k.
Vedi se dopo aver eseguito la funzione ti restituisce la lista con i valori tolti
G
GiorgioAgosta (2880 points)
5 24 42
commented Oct 22, 2017 by GiorgioAgosta (2,880 points)
Perfetto, grazie mille !!!! facendo così ho trovato la svista maledetta XD problema risolto !
francesco.dev (33560 points)
14 51 129
commented Oct 22, 2017 by francesco.dev (33,560 points)
Mi fa molto piacere! Comunque di niente, sono sempre disponibile per aiutare! :)
andrea.sterbini (172780 points)
513 935 1789
answered Oct 22, 2017 by andrea.sterbini (172,780 points)
Guardando il log dei test invece mi sembra che passi i primi 6 test e che durante il settimo vada in timeout.
Leggi bene il box a destra -------------->
G
GiorgioAgosta (2880 points)
5 24 42
commented Oct 22, 2017 by GiorgioAgosta (2,880 points)
Buongiorno, il file in questione non l ho ancora caricato in quanto mi sembra inutile sostituire un codice che non passa i test
andrea.sterbini (172780 points)
513 935 1789
commented Oct 22, 2017 by andrea.sterbini (172,780 points)
Ricordati di sostituire sia i grader che testlib.