Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-07-2004, 11:11   #1
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
[java] altro problema stupido

class es78 {
public static void main(String []args) {

int i;
double[] a=new double[10];

for (i=0; i<=a.length-1; i++)
a[i]= Leggi.unDouble();
System.out.println(a[i]);
}
}


con questo prpgrama con javac nn mi da errore ma eseguendolo. dopo aver iserito i valori mi da questo errore:


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10 at es78.main(es78.java:9)


__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 11:16   #2
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
ma le parentesi del for?? metticele e funzia tutto :P


Codice:
class es78 { 
public static void main(String []args) { 

int i; 
double[] a=new double[10]; 

for (i=0; i<=a.length-1; i++) {
a[i]= Leggi.unDouble(); 
System.out.println(a[i]); 
}
} 
}
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 11:20   #3
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
gia provato!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 11:22   #4
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
forsenn mi sono spiefato bene....devo prima inserirli tutti e poi stamparli tutti...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 13:04   #5
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 13:07   #6
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 556
il codice qui sotto funzia alla perfezione. Anche quello che ti ho postato prima funzionava benissimo. L'unico errore puo' essere in Leggi.unDouble(); che non fa il suo dovere tutto qui.
al limite posta la classe Leggi... ciao


Codice:
class es78 { 
public static void main(String []args) { 

int i; 
double[] a=new double[10]; 

for (i=0; i<a.length; i++) {
a[i] = Leggi.unDouble();
}

for(int k=0;k<a.length;k++){
System.out.println(a[k]); 
}
} 
}
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 13:36   #7
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Nel codice postato inizialmente da michelev83 il problema è nella linea

System.out.println(a[i]);

Il ciclo for infatti aumenta il valore di "i" partendo a 0 e arriva fino a 10.

Quando arriva a 10 la condizione del ciclo (i <= a.length -1) risulta "false" e il ciclo viene interrotto con i che vale 10.

La linea successiva al blocco for richiede l'accesso all'elemento di indice i ( = 10) di un array che ha 10 elementi (indice max = 9) e frappete, va tutto a schifio.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 13:41   #8
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
si e qual e la solozione

grazie!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 14:03   #9
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
questo e il testo dell esercizio

Scrivete un programma che legge in input 10 valori di tipo double, li memorizza in un array e li visualizza. Usate il ciclo for e il ".length".
Modificate il programma usando il while invece del for.
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 15:02   #10
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Il secondo post di mazza2 mi sembra corrispondere alla soluzione dell'esercizio (in versione for). Il primo ciclo legge, il secondo stampa.

Tenendo conto che il while è un for senza inizializzazione ed incremento, che l'inizializzazione deve essere fatta una sola volta, prima del primo uso e l'incremento dopo la verifica, una volta per ogni passaggio nel ciclo, dovresti risolvere con poche modifiche anche la richiesta di usare while al posto di for.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 12-07-2004, 15:20   #11
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
grazie ora prvo ! nn avevo notato quel post!

coem farei senza di voi !
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 10:08   #12
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
Scrivete un programma che legge in input 10 valori di tipo double, li memorizza in un array e li visualizza in ordine invertito (dall'ultimo al primo).

Scrivete un programma che ha lo stesso effetto del precedente, ma i valori vanno memorizzati nell'array a partire dall'ultima posizione (e visualizzati sempre in ordine invertito dall'ultimo letto al primo).


come si fannoo

nn hocapito niente dei for anndati
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 10:27   #13
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Stando al testo non devi usare dei cicli annidati (un ciclo dichiarato all'interno del corpo di un altro ciclo), semmai usi due cicli in successione (uno per leggere e memorizzare, uno per stampare). Si tratta in buona sostanza di un esercizio sugli indici degli array.

dichiari e inizializzi un array di 10 double;
for(int i = 0; i < 10;i++) -> leggi un double e lo infili nell'array in posizione i;
//un altro for, non annidato
for(int i = 9; i >= 0; i--) -> stampa a video array[i];

Il secondo è identico, solo che il primo ciclo deve comportarsi come l'ultimo (cioè andare da 9 a 0 incluso).

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 10:33   #14
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
si sto capendo! grasie!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 10:40   #15
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Non ho capito se la risposta sia sarcastica o se tu stia capendo davvero.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 12:12   #16
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
no no sto capendo davvero! davvero graziwe!
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 12:44   #17
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
altro probelmino devo fare un rpgrammino che dice se due array char sono uguali
class es711{

public static void main(String[]ags){
int i;
int k;
int j;
System.out.println("inserisci dimesione array");
i= Leggi.unInt();
char[] a= new char[i];
char[] b= new char [i];
System.out.println("inserisci array 1");
for (k=0; k<=a.length-1; k++)
a[k]= (char) Leggi.unChar();
System.out.println("inserisci array 2");
for (j=0; j<=a.length-1; j++)
b[j]= (char) Leggi.unChar();

if ((a[k])==(b[j]))
System.out.println("uguali");
else
System.out.println("diversi");


}
}


ecco al javac mi da che e esatto quando lo eseguo inserisco gli array e dopo mi da l erroee

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at es711.main(es711.java:18)


grazie di nuovo a tutti quelli che mi aiutano
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 13:33   #18
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Nelle espressioni di accesso agli elementi di un array Java la validità dell'indice è valutata a tempo di esecuzione. Potresti scrivere array[-1000] e javac non farebbe una piega.

Il problema è qui.

if ((a[k])==(b[j]))

Quando termina il ciclo k vale a.length, ma l'indice massimo di un array è array.length - 1. Lo stesso per j.

Non so perchè ma hai il vizietto di riciclare gli indici dei cicli .

In condizioni normali (quindi, salvo speciali esigenze, che qui non ci sono) un for include dichiarazione ed inizializzazione dell'indice (nel tuo codice dichiari l'indice all'esterno, lo inizializzi nel for e poi lo ricicli nell'istruzione che ho riportato sopra). Dovresti seguire la forma standard che tra l'altro migliora la leggibilità.
Codice:
for(int k = 0; k < a.length; k++) {
        ecc. ecc.
}
Dovendo poi verificare che gli array a e b contengano gli stessi elementi, dovresti controllarli elemento per elemento. Di vuole un altro ciclo. a e b hanno la stessa lunghezza, quindi:

for(da 0 ad a.length -1) -> se a[i] è diverso da b[i] -> gli array non contengono gli stessi elementi -> esci dal ciclo (basta un elemento diverso a rendere diversi gli array).

Per sapere, una volta terminato il ciclo, se la serie di confronti abbia dato esito positivo o negativo dovresti usare un valore di controllo che inizializzi prima di entrare nel ciclo. Ad esempio:

boolean sonoUguali = true;
for(...) se a[i] è diverso da b[i] -> sonoUguali = false -> break;

terminato il ciclo se "sonoUguali" è "true" allora il ciclo si è "estinto" naturalmente, quindi tutti gli elementi sono uguali.

se vale "false" è perchè, incontrando un elemento diverso, ha eseguito la tua istruzione condizionale che diceva "se incontri due elementi diversi imposta sonoUguali a false ed esci".

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 18:31   #19
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
questonn ho capito molto...

mo lo rileggo uan decian di volte...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
Old 18-07-2004, 18:40   #20
michelev83
Senior Member
 
L'Avatar di michelev83
 
Iscritto dal: May 2003
Città: udine
Messaggi: 1625
[quote]Originariamente inviato da PGI

Quando termina il ciclo k vale a.length, ma l'indice massimo di un array è array.length - 1. Lo stesso per j.

Non so perchè ma hai il vizietto di riciclare gli indici dei cicli .

In condizioni normali (quindi, salvo speciali esigenze, che qui non ci sono) un for include dichiarazione ed inizializzazione dell'indice (nel tuo codice dichiari l'indice all'esterno, lo inizializzi nel for e poi lo ricicli nell'istruzione che ho riportato sopra). Dovresti seguire la forma standard che tra l'altro migliora la leggibilità.
Codice:
for(int k = 0; k < a.length; k++) {
        ecc. ecc.
}
ok fin qua ho cpaito...e cheil prof c diceva di usare cosi perhce epiu capible...vabbe le robe che n capisco io son altre ma lui le da per scontate...
__________________
Cosa metto in firma?

http://www.turbotechmoto.com
michelev83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Bombe Apple su Amazon: iPhone di scorsa ...
Micron: memoria HBM4 a 11 Gbps e patto d...
NVIDIA rende Audio2Face open source: ecc...
Logitech Signature Slim Solar K980+: 10 ...
Disney Plus aumenta i prezzi: si parte d...
Intel XeSS con Multi Frame Generation: u...
iPhone 16 a soli 700€ su Amazon: stile e...
Signature Slim Solar+ K980, la nuova tas...
Logitech MX Master 3S, il mouse perfetto...
Borderlands 4 per Switch 2 rinviato a te...
Reddit studia con Google una partnership...
La Ferrari elettrica che sembra una DeLo...
Xiaomi presenta una miriade di nuovi pro...
Xiaomi presenta la 15T Series: prezzi da...
È ufficiale: le auto elettriche d...
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: 21:35.


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