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.

Test 'spars' HW6

a
andreaamici (1740 points)
11 12 21
in HW6 obbligatorio by (1.7k points)
edited by
Mi continuano a dire 'list out of range' a questi due test,che sarebbero quelli con tutti pixel verdi nell'angolo in basso a sinistra con pochissimi pixel rossi...

Avete suggerimenti?
538 views

8 Answers

AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
Quando effettui le operazioni evidentemente provi ad accedere ad elementi che non esistono trovandosi "fuori dal range" della matrice (ovvero eccedono le dimensioni), puoi evitarlo assicurandoti di svolgere le operazioni solamente quando effettuandole non superi la dimensione massima.

Quindi basta aggiungere un controllo subito prima tramite if o inserirlo in and a quello che già c'è se il problema si trova già su un confronto.
V
Vittorio (940 points)
7 8 16
by (940 points)
Potresti provare a gestire quest'eccezione.
plm (18850 points)
13 15 118
by (18.9k points)
Cerca di vedere in quali casi specifici hai l'index out of range e cerca di prevederli. Per esempio: se mi trovassi all'ultimo pixel verde (facciamo finta sia alla fine della riga) e cercassi di controllare se il pixel successivo è rosso sarei ovviamente Out Of Range. Ma io so perfettamente che l'ultimo pixel verde non avrà mai un pixel rosso vuoto visto che si trova al lato più esterno della griglia, per cui potrei tranquillamente evitare di fare questo controllo e quindi di andare out of range :)
Tommaso Sgroi (12990 points)
10 11 91
by (13.0k points)
Aggiungi un controllo per la lunghezza. Perché vai a cercare elementi fuori dal range della tua lista.
Andrea Sanchietti (3100 points)
5 7 40
by (3.1k points)
L'errore potrebbe essere dato dal fatto che i test hanno i punti verdi sul bordo destro dell'immagine e tu in qualche range vai a cercare oltre l'immagine

io ho fixxato quest errore aggiungendo un bordo nero all'immagine di spessore k ma può essere fatto meglio studiandosi dove far fermare i for
fc-dev (16450 points)
16 20 34
by (16.5k points)
Probabilmente stai cercando di controllare se c'è un quadrato verso destra partendo da pixel che sono già troppo a destra, e quindi esci fuori dall'immagine.
E
Edward (25950 points)
3 4 172
by (26.0k points)
Se non sbaglio in uno di quei test viene dato in input un K troppo grande, nel senso che non può esistere nessun quadrato avente K segmenti, poichè i segmenti sono di meno.

Puoi o gestire l'eccezione e restituire 0 in caso accada, oppure cosa migliore, controllare all'inizio se K è troppo grande oppure no.
J
Jan Rogala (7260 points)
4 4 37
by (7.3k points)
Potresti anche fare una verifica che ti permette di dire se quel pixel è presente nell'immagine prima di andarlo a prendere, se non è presente eviti quel pixel e vai avanti. E un'idea, ma la cosa piu sensata è controllare meglio i paramenti del for, magari andando a rivederli, passo per passo, sull'immagine