Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta
Xiaomi Pad 8 Pro adotta il potente Snapdragon 8 Elite all'interno di un corpo con spessore di soli 5,75 mm e pannello LCD a 144Hz flicker-free, per un tablet che può essere utilizzato con accessori dedicati di altissima qualità. Fra le caratteristiche esclusive, soprattutto per chi intende usarlo con la tastiera ufficiale, c'è la modalità Workstation di HyperOS 3, che trasforma Android in un sistema operativo con interfaccia a finestre
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-01-2008, 17:50   #1
ghiltanas
Senior Member
 
L'Avatar di ghiltanas
 
Iscritto dal: Sep 2006
Messaggi: 27898
[Java] Probl con esercizio con ricorsione

Ciao a tutti, premetto che nn sono affatto esperto, però java mi interessa e nn mi riesce un esercizio, basato appunto sulla ricorsione, con cui ho qualche difficoltà. L' esercizio chiede di vedere se la parola data è palindroma mediante un metodo ricorsivo con intestazione nn modificabile:
"
public class Es60 {
public static boolean palindroma(char [] arr){
int from = 0;
int to = arr.length-1;
if (arr.length<=1)
return true;
else if (arr[from]==arr[to] && from<to){
from ++;
to ++;
return palindroma(arr);
} else
return false;

}}"

io avevo in mente una cosa del genere ma mi genera errore durante l'esecuzione del main (che è già dato) sulla riga dell'else if, e precisamente mi da errore quando va ad analizzare un array con + di un elemento. Poteti darmi qualche aiuto, e magari indicarmi dove trovare qualche spiegazione sulla ricorsione?perchè nn la digerisco molto
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT HD1: Sk Hynix Platinum p41 2TB HD2: Sabrent Rocket 1TB MONITOR: Xaomi Mi Curved 34"
ghiltanas è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 20:33   #2
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Quote:
Originariamente inviato da ghiltanas Guarda i messaggi
Ciao a tutti, premetto che nn sono affatto esperto, però java mi interessa e nn mi riesce un esercizio, basato appunto sulla ricorsione, con cui ho qualche difficoltà. L' esercizio chiede di vedere se la parola data è palindroma mediante un metodo ricorsivo con intestazione nn modificabile:
"
public class Es60 {
public static boolean palindroma(char [] arr){
int from = 0;
int to = arr.length-1;
if (arr.length<=1)
return true;
else if (arr[from]==arr[to] && from<to){
from ++;
to ++;
return palindroma(arr);
} else
return false;

}}"

io avevo in mente una cosa del genere ma mi genera errore durante l'esecuzione del main (che è già dato) sulla riga dell'else if, e precisamente mi da errore quando va ad analizzare un array con + di un elemento. Poteti darmi qualche aiuto, e magari indicarmi dove trovare qualche spiegazione sulla ricorsione?perchè nn la digerisco molto
Allora, non avendo il tuo metodo main, non saprei dirti di preciso perchè il tuo programma sbagli... però è probabile che l'errore stia nel passaggio ricorsivo stesso: è vero che tu aggiorni gli indici "from" e "to" prima di richiamare il metodo "palindroma" ma... non glieli passi! Quindi, ad ogni chiamata, il programma continua ad analizzare sempre gli stessi caratteri, per cui è verosimile che se gli passi un'array di char con il primo e l'ultimo carattere uguali, lo mandi in loop. Se non puoi cambiare i parametri della funzione, modifica direttamente l'array, passandogliene uno privo dell'inizio e della fine: prova così:

Codice:
palindroma(Arrays.copyOfRange(arr, from, to))
Funziona solo con Java 6: se hai una versione più vecchia, devi costruirti la copia di arr, priva del primo e dell'ultimo elemento, a mano e poi passarla a "palindroma".

Inoltre c'è un errore anche nell'aggiornamento degli indici: il puntatore di "fine array" va decrementato, non incrementato come fai tu (devi scrivere "to--", e non "to++").

Forse queste correzioni dovrebbero bastare.
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN

Ultima modifica di Mixmar : 23-01-2008 alle 20:41. Motivo: Consecutio temporum
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 21:16   #3
ghiltanas
Senior Member
 
L'Avatar di ghiltanas
 
Iscritto dal: Sep 2006
Messaggi: 27898
Quote:
Originariamente inviato da Mixmar Guarda i messaggi
Allora, non avendo il tuo metodo main, non saprei dirti di preciso perchè il tuo programma sbagli... però è probabile che l'errore stia nel passaggio ricorsivo stesso: è vero che tu aggiorni gli indici "from" e "to" prima di richiamare il metodo "palindroma" ma... non glieli passi! Quindi, ad ogni chiamata, il programma continua ad analizzare sempre gli stessi caratteri, per cui è verosimile che se gli passi un'array di char con il primo e l'ultimo carattere uguali, lo mandi in loop. Se non puoi cambiare i parametri della funzione, modifica direttamente l'array, passandogliene uno privo dell'inizio e della fine: prova così:

Codice:
palindroma(Arrays.copyOfRange(arr, from, to))
Funziona solo con Java 6: se hai una versione più vecchia, devi costruirti la copia di arr, priva del primo e dell'ultimo elemento, a mano e poi passarla a "palindroma".

Inoltre c'è un errore anche nell'aggiornamento degli indici: il puntatore di "fine array" va decrementato, non incrementato come fai tu (devi scrivere "to--", e non "to++").

Forse queste correzioni dovrebbero bastare.
il ++ li nn so come c'è finito , cmq nell'esercizio è scritto correttamente --...avevo pensato anch'io al fatto che in realtà nn passassi i parametri aggiornati from e to, infatti andava in loop l'eecuzione..il main ha array di caratteri predefiniti...cmq provo con la copia dell'array, anche se mi tocca farlo manualmente perchè sto usando java 5.0. grazie per l'aiuto
__________________
CPU: Ryzen 5700x COOLER: Noctua NH-D15S MOBO: Gigabyte b550 Professional RAM: 4x8 @3600 GPU: XfX Qick319 Rx6700XT HD1: Sk Hynix Platinum p41 2TB HD2: Sabrent Rocket 1TB MONITOR: Xaomi Mi Curved 34"
ghiltanas è offline   Rispondi citando il messaggio o parte di esso
Old 23-01-2008, 21:51   #4
astorcas
Senior Member
 
L'Avatar di astorcas
 
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
Codice:
public class Es60 {
public static boolean palindroma(char [] arr){
int from = 0;
int to = arr.length-1;
if (arr.length<=1)
return true;
else if (arr[from]==arr[to] && from<to){ 
//from < to a cosa serve? from è sempre minore di to quando si arriva a questo controllo
char[] newArr=new char[arr.lenght-2];
System.arraycopy(arr,1,newArr,0,arr.length-2);
return palindroma(newArr);
} else
return false;

}}"
Senza cambiare firma questo è ciò che mi viene in mente! Poi col sonno che ho....
astorcas è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Unitree H1: il robot umanoide vicino al ...
GPU esterne: PCI-SIG porta le prestazion...
Per Lenovo i giocatori sono ricchi: Legi...
Polaroid lancia la nuova stampante Hi-Pr...
Da Kyndryl un gemello digitale per il di...
La Cina si prepara a una nuova missione ...
Climatizzatore Inverter A++ con Wi-Fi a ...
NZXT Flex, lo 'scandalo' del PC gaming a...
Robot lavavetri in offerta su Amazon: EC...
Attenti a questo update fake di Windows ...
NIO chiede la standardizzazione di batte...
Da 80 mesi-uomo a poche ore: l'AI cambia...
In 2 settimane senza social il cervello ...
Amazon top 7 di oggi: 2 portatili intere...
SteamGPT trapela dal client Steam: ecco ...
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: 00:14.


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