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.

rettangolo cancella ese 2 hw 3

d
davide.scrimieri (2930 points)
4 16 39
in Es2 by (2.9k points)
closed by

Buonasera a tutti, ho un dubbio sulla definizione del metodo cancella della classe Rettangolo

La spiegazione del prof è questa:

- cancella(self) cancella le occorrenze del rettangolo da tutti gli skyline in cui e' presente.

La firma invece del metodo è:

def cancella(self):

Mi chiedo, per cancellare un rettangolo da tutti gli skyline non significa che io dovrei avere nel metodo

- in ingresso una lista di skylines

- con quale colore sostituire i pixel del rettangolo da cancellare?

Non riesco proprio a capire cosa dovrei fare in questo metodo...

525 views
closed with the note: answered

1 Answer

_andrea_ (45670 points)
13 42 297
by (45.7k points)
d
davide.scrimieri (2930 points)
4 16 39
by (2.9k points)
Il "fa in modo che il rettangolo sappia in quali skyline è presente" può voler dire tutto e niente. Mi sembra di ritornare da capo a dodici.

Quindi la domanda non cambia: se la firma del metodo è quella...l'unica alternativa, per non toccarla, sarebbe quella di aggiungere un attributo es. lista_skylines. Ma se aggiungo questo attributo poi devo cambiare il costruttore...

e sto da capo a 12 di nuovo...

che mi sto perdendo?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Beh non penso esista un modo più chiaro di dirlo, semplicemente il fatto è questo: devi solo fare in modo che ogni rettangolo tenga conto degli skyline in cui viene aggiunto. È una cosa che ogni oggetto di tipo rettangolo deve tenere conto da sé, lo puoi fare in vari modi. Ti assicuro che è una cosa per niente invasiva, una riga qui e una lì, non sconvolge niente. Alla fine si tratta di 3 righe in totale (per come l'ho fatto io)
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Esatto, un oggetto contiene uno stato ed i suoi metodi possono aggiornarlo.

Quindi ci si deve chiedere cosa mettere nello stato (attributi dell'oggetto) in modo che le informazioni necessarie siano presenti e permettano di eseguire le azioni richieste.
B
Barilla (1220 points)
3 17 29
by (1.2k points)
domanda: se quindi ho capito bene, supponiamo che io parto con un rettangolo definito dai 3 attributi richiesti; supponiamo che in un dato istante io prendo questo rettangolo e lo aggiungo ad un certo sk; è ammesso, nel momento che io aggiungo tale rettangolo, aggiungere un ulteriore attributo all'oggetto rettangolo?