Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
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: 560
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.


Maldive per due: I resort delle Maldive raccontati isola per isola dagli esperti del viaggio in due: l'atollo, la villa, il transfer e la stagione giusti, con i prezzi veri a notte.
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: 560
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.


Maldive per due: I resort delle Maldive raccontati isola per isola dagli esperti del viaggio in due: l'atollo, la villa, il transfer e la stagione giusti, con i prezzi veri a notte.
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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Hyundai IONIQ 3: l'abbiamo guidata per l...
Ricarica wireless dinamica fino a 150 kW...
Troppi report invalidi generati dall'IA:...
Furto di identità su scala nazion...
HPE vende i primi sistemi AMD Helios per...
Suno AI nel mirino dell'Antitrust: conte...
Xiaomi avrebbe cancellato il suo prossim...
WINDTRE BUSINESS rinnova l’offerta mobil...
BMW inaugura la fabbrica di batterie da ...
Googlebook apre al modding: bootloader s...
Denuvo non molla, vuole scoprire chi &eg...
Il miglior portatile tuttofare a basso p...
Gli agenti di OpenAI hanno mandato in ti...
Follie Amazon Prime: Zenbook è un...
MicroSD SanDisk in offerta Prime Day: Ul...
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: 03:03.


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