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.

Matrice confronto tra indici elementi

a.capobianco1 (16770 points)
11 54 165
in Info sul corso e sugli esami by (16.8k points)
Sappiamo che le immagini (png) sono interpretate come una lista di liste i cui elementi sono tuple che rappresentano il colore di ciascun pixel.

Come accade per qualsiasi matrice, per accedere ad un elemento basta fare Matrice[x][y].

1) Supponiamo di porre manualmente l'elemento [0][0] della matrice a (255,255,255)

2) Supponiamo di fare un doppio ciclo  x e y,  per iterare ogni elemento della matrice, partendo dall'elemento [x][y] che all'inizio sarà ovviamente [0][0].

Perché se faccio un IF tra Matrice[x][y].== Matrice[x-1][y] non mi da errore quando mi processa l'elemento [0][0]?

l'elemento minimo non è [0][0] ?

... mi sarei aspettato un fuori range quando tenta di leggere il valore [x-1][y] in quanto la x assume un indice negativo... mi legge forse l'ultimo elemento?

i'm confused.
428 views
closed

1 Answer

Best answer
_andrea_ (45670 points)
11 42 297
by (45.7k points)
selected by
Penso che -1 vada all'ultimo elemento, quindi al contrario. Viene interpretato come len-1 se non sbaglio
a.capobianco1 (16770 points)
11 54 165
by (16.8k points)
si ho appena fatto una prova... bella fregatura :-)
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Ma come fregatura?
a.capobianco1 (16770 points)
11 54 165
by (16.8k points)
Ho impostato un controllo che mi legge il colore del px precedente ma l'ultimo della riga non è il precedente... è l'ultimo!!

comunque per ovviare ho integrato la condizione in modo da verificare se [y-1] produce un valore negativo (quando y=0,  y-1 è ovviamente -1).e agisco di conseguenza.
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Oppure puoi direttamente evitare di leggere la prima riga in cerca del valore precedente?
a.capobianco1 (16770 points)
11 54 165
by (16.8k points)
edited by
ma.. non ho provato ma suppongo che la stessa cosa accada per ogni SUB lista della matrice... ogni volta che sottraggo 1 al primo elemento ottengo l'ultimo della SUB lista.. quindi credo che il controllo vada replicato ad ogni X lista (ovviamente tutto dipende dall'algoritmo che uno ha in mente...)

edit:

si.. se intendevi la prima colonna allora si.. posso evitarlo e risparmio un IF..ottimo consiglio tnx
_andrea_ (45670 points)
11 42 297
by (45.7k points)
Intendo sia la prima riga che la prima colonna. Puoi evitarle, tanto non hanno un precedente
a.capobianco1 (16770 points)
11 54 165
by (16.8k points)
si. ho capito cosa intendi. ho fatto così infatti...