Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere?
HONOR Magic V6 è arrivato in Italia a 2.299,90 euro con una promessa precisa: unire 4 mm di spessore da aperto (8,75 mm chiuso nel modello White, 9 mm negli altri colori) a una batteria da 6.660 mAh, la più capiente mai vista su un pieghevole. Lo abbiamo usato per oltre una settimana in versione Red 16/512 GB per capire se lo Snapdragon 8 Elite Gen 5 tiene testa alla concorrenza anche fuori dai benchmark ufficiali
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-05-2003, 20:17   #1
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Date un occhiatina a questa semplice funzione...

Salve ragazzi ho implementato questa funzione per determinare la profondità di un albero binario, il codice è pascal:function

function profondita_albero(p: nodo): integer;
begin
if p <> NIL then
if (p^.sx <> NIL) or (p^.dx <> NIL) then
profondita_albero:=max(profondita_albero(p^.sx), profondita_albero(p^.dx))+1;
end;

cos'ha che non va visto che mi da risultati assurdi?Grazie
PS: se tolgo il controllo sull'albero dx e sx e lascio solo p <> NIL funziona ma mi dà la profondità maggiorata di 1...
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 00:53   #2
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Re: Date un occhiatina a questa semplice funzione...

Il primo consiglio che ti do e' quello di scrivere il codice tra
Codice:
 e
per evitare di perdere la formattazione D
Il secondo e' di controllare cosa restituire quando p = NIL, fatto questo puoi tranquillamente togliere il secondo controllo.
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 08:55   #3
fabio309
Senior Member
 
L'Avatar di fabio309
 
Iscritto dal: Feb 2003
Città: Lucca
Messaggi: 294
prova con questo...che è molto simile

Codice:
if p<>nil then
     profondita_albero:=max(profondita_albero(p^.sx), profondita_albero(p^.dx))+1;
else
     profondita_albero:=0;
non ricordo bene la sintassi del pascal, vedi un pò come aggiustarlo

Ciao ciao
__________________
very very cool
very very coooool
fabio309 è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 09:12   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: Date un occhiatina a questa semplice funzione...

Codice:
function profondita_albero(p: nodo): integer;
begin
  if p <> NIL then
    if (p^.sx <> NIL) or (p^.dx <> NIL) then
  profondita_albero:=max(profondita_albero(p^.sx), profondita_albero(p^.dx))+1;
end;
Manca la condizione di arresto...cioè se p = NIL devi ritornare 0...a quel punto l'if sul valore del punt. di sx e di dx non ha senso metterlo...
Il codice postato da fabio309 va benissimo...

Fare una funzione ricorsiva è molto simile a fare una dimostrazione per induzione... Prima metti la condizione di arresto (quando la ricorsione deve terminare)... Poi ti immagini di essere ad un nodo generico della tua struttura e scrivi il codice relativo a come devi comportarti in quel caso (senza fare supposizioni sulla forma della struttura)...
E dopo la funzione viene da sè...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 11:47   #5
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Dunque il problema non è che la procedura non funziona(la condizione d'arresto è "if p<>NIL", aggiungendo il ramo else ovviamente ci assicuriamo che passando un albero vuoto la procedura ritorni 0 com'è giusto che sia...
Forse mi spiego meglio con una figura:
guardate l'albero allegato...la procedura, passata la radice di tale albero dovrebbe restituirmi una profondità pari a 2, invece restituisce 3, per questo avevo aggiunto la condizione if (p^.sx <> NIL) or (p^.dx <> NIL) in modo tale che venga richiamata solo quando il nodo ha almeno un figlio...ma non vuole saperne di funzionare e dà risultati sballati...
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 11:51   #6
/\/\@®¢Ø
Bannato
 
L'Avatar di /\/\@®¢Ø
 
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
Quote:
Originally posted by "marcus81"

Dunque il problema non è che la procedura non funziona(la condizione d'arresto è "if p<>NIL", aggiungendo il ramo else ovviamente ci assicuriamo che passando un albero vuoto la procedura ritorni 0 com'è giusto che sia...
Forse mi spiego meglio con una figura:
guardate l'albero allegato...la procedura, passata la radice di tale albero dovrebbe restituirmi una profondità pari a 2, invece restituisce 3, per questo avevo aggiunto la condizione if (p^.sx <> NIL) or (p^.dx <> NIL) in modo tale che venga richiamata solo quando il nodo ha almeno un figlio...ma non vuole saperne di funzionare e dà risultati sballati...
L'errore e' proprio il caso p = NIL !
Se ho un puntatore a NIL non ho un albero di altezza zero ! L'albero di altezza zero ce l'ho quando ho un solo nodo (una foglia). La soluzione e' quindi ritornare -1 quando ho un puntatore nullo (in quel modo le foglie ritornano max(-1,-1) + 1 ovvero 0 )
/\/\@®¢Ø è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 15:26   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "/\/\@®¢Ø"


Se ho un puntatore a NIL non ho un albero di altezza zero ! L'albero di altezza zero ce l'ho quando ho un solo nodo (una foglia). La soluzione e' quindi ritornare -1 quando ho un puntatore nullo (in quel modo le foglie ritornano max(-1,-1) + 1 ovvero 0 )
Questo non me lo ricordavo...credevo che altezza zero implicasse l'albero vuoto...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 15:32   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "marcus81"

Dunque il problema non è che la procedura non funziona(la condizione d'arresto è "if p<>NIL", aggiungendo il ramo else ovviamente ci assicuriamo che passando un albero vuoto la procedura ritorni 0 com'è giusto che sia...
La condizione di arresto non p <> NIL, ma p == NIL...e non è la stessa cosa perchè nel modo in cui l'hai fatto te la condizione di arresto è il ramo else... Con l'if che hai messo te che controlla il figlio di dx e il figlio di sx non è una condizione di arresto...anche perchè nel caso che solo uno dei due puntatori sia NIL viene richiamata la funzione passandogli un puntatore NIL e la tua funzione non gestisce questo caso... Inoltre nel caso che uno dei due puntatori sia NIL profondita_albero non ha un valore di ritorno valido...a meno che il Pascal non gli assegni zero di default...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 17:46   #9
goldorak
Senior Member
 
Iscritto dal: Apr 2003
Messaggi: 16462
Secondo me una soluzione potrebbe essere :
Codice:
function profondita_albero(p:^nodo):integer;
begin
if p==NIL then profondita_albero:= -1 
else profondita_albero:=max(profondita_albero(p^.sx),profondita_albero(p^.dx))+1;
end
goldorak è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 17:52   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo...tra l'altro è la stessa proposta da fabio309...tranne che per il -1...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-05-2003, 23:23   #11
marcus81
Senior Member
 
L'Avatar di marcus81
 
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
Quote:
Originally posted by "/\/\@®¢Ø"


L'errore e' proprio il caso p = NIL !
Se ho un puntatore a NIL non ho un albero di altezza zero ! L'albero di altezza zero ce l'ho quando ho un solo nodo (una foglia). La soluzione e' quindi ritornare -1 quando ho un puntatore nullo (in quel modo le foglie ritornano max(-1,-1) + 1 ovvero 0 )
La soluzione proposto dal mio omonimo funziona a meraviglia.Thanks
Grazie a tutti per essere sempre disponibili
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
marcus81 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
SBS annuncia la nuova gamma Laptop con t...
Gli italiani sono interessati alla sicur...
Galaxy Watch 9, chip più veloce f...
Steam ha appena chiuso un semestre molto...
I nuovi iPhone 18 Pro potrebbero essere ...
Huawei realizzerà chip di nuova g...
La JAXA ha eseguito un test del prototip...
Netflix, ritorna la prova gratuita per i...
Il satellite LINK per salvare il telesco...
Il nuovo iPhone 18 Pro Max costerà...
Il tredicesimo volo del razzo spaziale S...
Pagare il parcheggio è sempre pi&...
Torvalds: 'Non sono più un progra...
Xiaomi lavora alla nuova Smart Band 11, ...
Inabissato in Grecia, iPhone 16 Pro sopr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v