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.

Quadrato HW6 [poll]

M
MatteoB (1690 points)
10 16 21
in HW6 obbligatorio by (1.7k points)
Ciao ragazzi! Mi chiedevo come faccio a capire che ho trovato un quadrato?

Cioè mi trovo un pixel verde poi controllo che quello dopo sia rosso fino al prossimo verde e così via... Ma non riesco a capire come faccio a dirgli che ho trovato un quadrato
### no choices found for poll!
712 views

6 Answers

Lorenzo Cristini (10830 points)
0 0 27
by (10.8k points)
Ciao,

Considerando che per contare il quadrato, devi controllare che ogni lato abbia i pixel rossi all’interno e che sia di lunghezza k. Quindi puoi controllare ogni volta un singolo lato e quando hai verificato che ha i pixel rossi all’interno puoi passare a verificare un altro lato, sempre dello stesso quadrato! Questo finchè non ritorni al pixel di partenza
jngelena (4880 points)
2 2 9
by (4.9k points)

Da quel che hai scritto sembrerebbe che riesci a capire se il lato superiore del quadrato è valido, ma questa cosa potresti farla anche per gli altri tre lati, in particolare i due lati verticali devi andare al prossimo sottolista per controllare i pixel rossisurprise 

Franciscus (6350 points)
7 14 24
by (6.4k points)
Una volta che hai trovato il lato superiore controlli il lato che sta k righe sotto, poi controlli gli altri due, se tutti i lati sono rossi allora hai trovato un quadrato.
AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
Puoi ragionare sul fatto che partendo da due vertici opposti, ognuno di essi deve avere due lati di k segmenti validi per raggiungere i due vertici rimanenti.
Andrea Sanchietti (3100 points)
5 7 40
by (3.1k points)
Per capire se è un quadrato devi fare un for che ti scorre i segmenti e uno che scorre le colonne. Infatti se dal segmento che stai vedendo al segmento + k è tutto rosso  (ovviamente in mezzo ci sono i pixel verdi), quello che stai analizzando potrebbe essere il lato superiore del quadrato. Se trovi un possibile lato ti resta solo da controllare la riga (che si trova k segmenti sotto a quella che hai appena controllato), e i due lati sx e dx (che si trovano rispettivamente nella colonna del segmento che stai controllando con il for e nella colonna del segmento che stai controllando + k). Se tutti i segmenti sono rossi, allora è un quadrato.

Spero si capisca, buon lavoro
plm (18850 points)
13 15 118
by (18.9k points)

Ciao, basta applicare questo ragionamento:

Parto da un pixel verde (facciamo finta sia (0,0) ovvero (x,y)) e ti viene chiesto un quadrato di segmento 2. Questo significa che devi scorrere 3 pixel verdi e femarti al terzo (controllando se effettivamente esiste il segmento tra un pixel e l'altro) in posizione (3,0). Questo perchè un segmento è formato se connesso da due pixel verdi. Fai lo stesso controllo per il pixel in posizione (3,0) fino al pixel (3,2), ovvero dal vertice in alto a sinistra a quello in alto a destra proseguendo con il vertice in basso a destra, poi quello in basso a sinistra,fino a ritornare al pixel iniziale,. SE TUTTE le condizioni si VERIFICANO, allora esiste un quadrato.