Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli
Dopo due settimane trascorse al volante della Dacia Spring 2026 possiamo raccontarvi tutto, dalle novità di motore e batteria, fino ai consumi in tutti le situazioni, compresa l'autonomia reale ad alta velocità
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: 559
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]); 
}
} 
}
__________________
PiccoliHotel.com è una guida indipendente dedicata ai piccoli hotel italiani: B&B, agriturismi e boutique hotel selezionati uno ad uno, senza pubblicità a pagamento.

viveredirete Guide, strategie e strumenti per guadagnare online davvero, ogni giorno.
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: 559
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]); 
}
} 
}
__________________
PiccoliHotel.com è una guida indipendente dedicata ai piccoli hotel italiani: B&B, agriturismi e boutique hotel selezionati uno ad uno, senza pubblicità a pagamento.

viveredirete Guide, strategie e strumenti per guadagnare online davvero, ogni giorno.
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 Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Hyundai Ioniq 9: dopo due settimane di test non avremmo voluto restituirla Hyundai Ioniq 9: dopo due settimane di test non ...
Download pirata di Odissea: attenzione a...
Condivisione Schermo di macOS sotto atta...
Debutta Freelander, il nuovo marchio di ...
Le migliori offerte Amazon di oggi: Appl...
Ecco l'auto della discordia, Voyah Passi...
Virgin Galactic posticipa la ripresa dei...
Apple AirPods Pro 3 a 199€: ANC evoluto,...
Insta360 Flow Pro a 65€: il gimbal per i...
IONIQ 3, parte da Izmit la produzione de...
Per il cofondatore di Arm l'IA non &egra...
Nove CEO dell'AI, nessuno si salva: il m...
OpenAI ha sciolto il team che valutava i...
Dreame Aqua10 Ultra, super calo di prezz...
Microsoft ritira Mico: dal 18 agosto Cop...
Oracle si prepara a nuovi licenziamenti ...
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: 15:35.


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