Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando
Abbiamo giocato a lungo a Battlefield 6, abbiamo provato tutte le modalità multiplayer, Redsec, e le numerose personalizzazioni. In sintesi, ci siamo concentrati su ogni aspetto del titolo per comprendere al meglio uno degli FPS più ambiziosi della storia dei videogiochi e, dopo quasi due mesi, abbiamo tirato le somme. In questo articolo, condividiamo con voi tutto ciò che è Battlefield 6, un gioco che, a nostro avviso, rappresenta esattamente ciò che questo genere attendeva da tempo
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-05-2003, 21: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, 01: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, 09: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, 10: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, 12: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, 12: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, 16: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, 16: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, 18: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, 18: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 29-05-2003, 00: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


Due mesi di Battlefield 6: dalla campagna al battle royale, è l'FPS che stavamo aspettando Due mesi di Battlefield 6: dalla campagna al bat...
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
'L'UE dovrebbe essere abolita': la spara...
Non solo smartphone: Samsung sta lavoran...
Nessuno vuole comprare iPhone Air: il va...
Porsche Taycan 2027 elettrica con cambio...
Roscosmos: stazione spaziale russa ROS a...
Auto 2035, sei governi UE (c'è l'...
Chernobyl: la cupola di contenimento non...
SSD come CPU: queste memorie sono in gra...
La previsione di CATL: barche elettriche...
Stangata in arrivo: PC e notebook coster...
Lian Li si è inventata il primo a...
Amazon in raptus sconti: ogni 24 ore nov...
44 idee regalo sotto i 50€: con le offer...
Super Sconti Amazon Haul: ribassi fino a...
Cloudflare ha bloccato 416 miliardi di r...
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: 22:05.


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