Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Variabili globali

DRDLCN (8070 points)
29 68 104
in HW4bis by (8.1k points)
recategorized by
Non si possono usare variabili globali per hw4?
481 views

2 Answers

_andrea_ (45670 points)
13 42 297
by (45.7k points)
Non ricordo se è specificato nel testo ma credo di no. In che esercizio ti servirebbero e per fare cosa, di preciso?
DRDLCN (8070 points)
29 68 104
by (8.1k points)
Nel testo non è specificato, comunque le ho usate nel primo esercizio per farmi un contatore in una funzione ricorsiva, per trovare la foglia più vicina e quella più lontana
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Intendi per tenere conto dell'altezza? Non serve una variabile, puoi calcolarla usando una funzione apposta. Oppure se hai usato una classe Albero per organizzare le mosse, puoi salvare l'altezza in un attributo
DRDLCN (8070 points)
29 68 104
by (8.1k points)
Io uso una funzione apposta ma per trovare la distanza della foglia dalla radice mi serve per forza un contatore, conviene farlo con un metodo? Il fatto è io non uso proprio un contatore global ma utilizzo un comparatore, cioè una volta che sono arrivato alla foglia setto la distanza minima dell’alrezza Di quella foglia nel comparatore, trovo le altre radice e se l’altezza è minore di quella nel comparatore la sostituisco sennò no...ma senza global ho problemi con questo compratore, però ora che mi ci fai pensare per ogni nodo potrei fare un metodo altezza che mi ritorna la distanza dalla radice?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Tu parti dalla radice che ha altezza 0 e quando chiami la ricorsione crei nuovi oggetti Albero, ai quali assegni altezza 1 in un attributo. Da quelli partono altre ricorsioni che creano altri Alberi che avranno altezza 2, i cui figli avranno 3 ecc. Così non serve una variabile globale, basta usare un parametro che passi alla funzione, per esempio inizi con h=0, e quando chiami la ricorsione la chiami con h+1
DRDLCN (8070 points)
29 68 104
by (8.1k points)
Si ok ma per trovare la foglia più vicina devo comunque usare un comparatore

O comunque devo scorrere tutti i nodi , quando questi nodi non hanno figli (quindi sono foglie) controllo il parametro altezza, ma comunque devo compararle tra loro no?
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Si, sarebbe come calcolare l'altezza dell'albero ma prendendo quella minore. Altrimenti potresti risolvere mettendo tutti i nodi in un insieme e trovare il minore, considerando l'altezza come parametro. Così ti troveresti il nodo che ha altezza minore e potresti trovare a chi apparteneva il turno. Comunque nemmeno nel primo caso (quello che ti consiglio di usare) serve una variabile globale
DRDLCN (8070 points)
29 68 104
by (8.1k points)
Grazie provo, ti dico con le global mi funziona passo tutti i test ecc ma non mi piacciono molto perché non riesco a gestirle bene poi se è vietato ancora meglio
_andrea_ (45670 points)
13 42 297
by (45.7k points)
Va bene, dimmi se ti serve altro aiuto dopo
andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
NO                                       .